2개의 파일이 있는 디렉토리 시험이 있습니다. 파일을 삭제해야 하는데 권한이 거부되었습니다. rm -rf
명령 으로도 이러한 파일을 삭제할 수 없습니다. 저는 루트로 로그인했습니다.
답변1
루트 사용자의 파일 속성 확인
# lsattr
i
(불변) 또는 a
(추가 전용)이 발견되면 다음 속성을 제거하세요.
# man chattr
# chattr -i [filename]
# chattr -a [filename]
답변2
rm
파일 삭제 권한이 없다고 불만을 제기하는 가장 일반적인 이유는 디렉터리의 권한으로 인해 파일을 삭제할 수 없기 때문입니다. 파일을 삭제하려면 해당 디렉터리에 대한 쓰기 권한이 필요합니다. 파일의 권한은 관련이 없습니다( rm
읽기 전용 파일을 삭제하기 전에 확인 메시지가 표시되지 않지만 이는 제한 사항이 아니라 확인일 뿐입니다). -f
OSX(Linux는 아님)와 같은 일부 Unix 변형에서는전방십자인대파일 삭제를 방지하기 위해 파일에 ACL 항목이 있으면 ls -l
권한 필드 끝에 표시됩니다.@
루트로 액세스하면 권한이 무시되므로 루트는 읽기 전용 디렉터리에서도 파일을 삭제할 수 있습니다.
출력은 권한 열 끝에 표시됩니다 ls -l
. .
이는 파일에 SELinux 보안 컨텍스트가 있음을 나타냅니다. 기본 권한 및 ACL과 달리 파일의 SELinux 보안 컨텍스트는 파일 삭제가 허용되는 사람을 제어합니다. 또한 SELinux는 항상 루트로 우회할 수 있는 것은 아닙니다(사용자 ID 0으로 실행되는 프로세스가 있을 수 있지만 SELinux 정책 설계자가 선택한 권한만큼 적음). SELinux 컨텍스트를 통해 수행할 수 있는 작업을 보려면 를 실행하세요 ls -lZ . exam_a
.
파일이 삭제되는 것을 방지할 수 있는 또 다른 방법은 해당 파일 또는 해당 파일이 포함된 디렉터리에 추가 전용 또는 불변 속성이 있는 경우입니다.리눅스 속성. lsattr -d . exam_a
Linux 속성을 보려면 실행하세요 . a
또는 속성이 켜져 있으면 파일을 삭제하려면 i
이를 삭제해야 합니다( chattr -a -i . exam_a
). 루트만 이를 수행할 수 있습니다. 루트는 파일을 삭제하기 위해 이러한 속성을 우회할 수 없으므로 먼저 꺼야 합니다.
파일 삭제를 방지하는 또 다른 방법은 파일 시스템이 읽기 전용으로 마운트된 경우이지만 이 경우 다른 오류 메시지가 표시됩니다.