chmod, setfacl 실행시 "Operation not permitted" 에러 발생

root 로 chmod 나 setfacl 등을 실행시 Operation not permitted 에러가 발생하는 경우가 있다.


다음과 같은 원인이 있을 수 있으니 순서대로 확인후 해결해 보자.


immutable bit 설정

파일 속성에 immutable 비트가 설정되어 있으면 소유자라 해도 삭제할 수 없다. 설정 확인은 lsattr 명령어로 한다.

# lsattr test
----i--------e- test

immutable 비트가 설정되어 있을 경우 위와 같이 i 필드가 표시된다.

비트 변경은 chattr 명령어로 하며 -(마이너스) 에 삭제할 비트를 적으면 삭제, +(플러스)에 추가할 비트를 적으면 추가가 된다.

immutable  비트 삭제시 다음과 같이 실행한다.

# chattr -i test
# lsattr test
-------------e- test


파일 시스템이 read-only 로 mount.

읽기 전용으로 마운트되면 속성 변경을 할 수 없으니 에러가 발생한다. read-write 가 가능하게 다시 마운트를 하면 된다.

# mount -o remount,rw /


mount 시 noacl 로 마운트.

mount 할 경우 noacl 로 마운트 될 경우 setfacl 이 동작하지 않는다. 위 2 가지 방법이 통하지 않으면 /etc/fstab 에 명시적으로 acl 옵션을 주고 다시 마운트를 하면 해결될 수 있다.

/etc/fstab

/dev/mapper/vg_server-lv_root /                       ext4    defaults,acl        1 1 

# mount -o remount   /