쓰기 금지된 일반 파일을 삭제하는 방법은 무엇입니까?

쓰기 금지된 일반 파일을 삭제하는 방법은 무엇입니까?

Linux(기본적으로 Ubuntu이지만 이는 모든 배포판에 적용된다고 생각합니다)의 파일 처리에 대해 제가 알아차린 내용을 명확히 하고 싶습니다.

홈 디렉토리에서 루트로 파일을 생성하면 해당 파일이 다음과 같이 간주된다는 것을 알았습니다.보호된 일반 파일 쓰기일반적인 방법으로 삭제하려고 하면 다음과 같은 메시지가 표시됩니다.

$ sudo touch ~/test.txt
$ ls -l ~/test.txt 
-rw-r--r-- 1 root root 0 Nov 24 10:27 /home/xxx/test.txt
$ rm ~/test.txt 
rm: remove write-protected regular empty file '/home/gorfanidis/test.txt'? y
$ ls -l ~/test.txt 
ls: cannot access '/home/gorfanidis/test.txt': No such file or directory

확인하지 않으면 y파일이 삭제되지 않습니다 ( -f예를 들어 이 메시지를 건너뛸 수 있다는 것을 알고 있지만 그렇게 하라고 요구하는 것은 아닙니다).

어쨌든 폴더 소유자가 루트인 다른 곳에서 동일한 작업을 시도했습니다(차이가 있는 것 같지만 확실하지는 않습니다)./usr/

$ sudo touch /usr/test.txt
$ rm /usr/test.txt 
rm: remove write-protected regular empty file '/usr/test.txt'? y
rm: cannot remove '/usr/test.txt': Permission denied

그래서 내 질문은 다음과 같습니다.

  1. 보호된 일반 파일을 작성한다는 것은 정확히 무엇을 의미합니까? 예를 들어, 어떤 문서가 틀에 얽매이지 않습니까? 잘 모르겠습니다. 이 경우 쓰기 방지는 root명시된 대로 소유자(권한)를 의미합니다.여기예를 들어.
  2. 쓰기 금지된 파일을 실제로 삭제할 수 없는데(루트 폴더에 있는 루트 파일의 경우처럼) 쓰기 금지된 파일을 삭제하기 위한 권한을 요청하는 의미는 무엇입니까?
  3. Linux 시스템에서 사용자가 실제로 파일을 삭제할 권한이 있는지 여부를 결정하는 메커니즘은 무엇입니까? 파일이 있는 폴더의 권한입니까? 더 자세한 내용은 없나요?

답변1

  1. 일반 파일은 다른 파일 시스템 표현이 아닌 실제로 자체 데이터를 포함하는 모든 파일입니다(참조:UNIX 권한 및 파일 유형 이해더 알아보기).

    rmWindows의 관점 에서 볼 때 쓰기 금지된 파일은 현재 사용자가 쓸 수 없는 모든 파일입니다. 귀하의 경우 파일은 소유자만 쓸 수 있으며 현재 사용자는 소유자가 아닙니다. 파일이 소유되어 있다는 사실은 root아무것도 추가하지 않습니다.

  2. rm먼저 파일 자체가 쓰기 가능한지 확인하고 그렇지 않은 경우 사용자에게 메시지를 표시합니다. 그런 다음에만 실제로 파일 삭제를 시도하며, 이때 OS는 rm사용자에게 파일을 삭제할 권한이 없다고 "알립니다"("권한 거부" 오류로 인해 삭제가 실패함). rm파일 삭제가 허용되는지 여부를 미리 결정하려는 시도는 이루어지지 않습니다. 그렇게 시도하더라도 검색은 활성화되고 불완전하며 삭제가 허용된다고 생각하지만 운영 체제가 달리 결정하는 경우를 처리해야 합니다. .

  3. 파일을 삭제하려면 상위 디렉터리에 쓸 수 있는 권한이 필요합니다. 예.

관련 정보