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 /