답변:
아니요, 불가능합니다. 일반 사용자가 파일을 삭제하는 것은 불가능합니다.
사용자가 sudo
파일을 삭제하지 못하게 해야 합니다. 관리자는 항상 파일을 삭제할 수 있습니다.
sudo chattr +i test
삭제를 방지 할 수 있지만 필요합니다 sudo
. 간단 sudo chattr -i test
하게 파일을 제거 할 수 있습니다. admin 이외의 다른 사용자는 사용할 수 없습니다 chattr
.
그리고 ... 단순히 재부팅하고 복구 모드로 들어가면 해당 사용자가 해당 파일을 삭제할 수 있습니다. 파일을 절대 삭제할 수없는 방법이 있다면 보안 위험이 있습니다.
약간 조잡하지만 가까이에 있습니다. 디렉토리에서 쓰기 권한을 제거하면 그 안의 파일을 삭제할 수 없습니다. 그리고 sudo
소유하고 있으면 필요하지 않습니다 .
=^_^= izkata@izein:~$ mkdir test
=^_^= izkata@izein:~$ touch test/delme
=^_^= izkata@izein:~$ chmod a-w test
=^_^= izkata@izein:~$ echo 'Hello' > test/delme
=^_^= izkata@izein:~$ cat test/delme
Hello
=^_^= izkata@izein:~$ rm test/delme
rm: cannot remove `test/delme': Permission denied
따라서 원하는 파일 자체에 대한 권한을 설정할 수 있습니다.
또한 @Rinzwind가 언급했듯이 그 주위에는 많은 방법이 있습니다.
파일을 삭제하려면 해당 파일이 연결된 모든 디렉토리에 대한 쓰기 권한이 필요합니다. 한 디렉토리에서 링크를 해제하려면 해당 디렉토리에 대한 쓰기 권한이 필요합니다.
파일에 대한 쓰기 권한 (또는 소유권)을 부여 하지만 파일이 연결된 디렉토리 나 디렉토리에 대한 쓰기 권한을 부여 하지 않는 한 해당 파일을 삭제할 수 없습니다.
이를 달성하는 가장 좋은 방법은 해당 파일을 루트가 소유하고 누구도 쓸 수없는 디렉토리에 링크하는 것입니다. 대신 당신이 그것을 소유 할 수 있습니다. 즉, 당신과 루트 모두 삭제할 수 있습니다.
그래도 다른 사용자가 해당 파일을 다른 디렉토리에 링크 한 후 링크를 해제 할 수는 있지만, 자신의 디렉토리에서 링크를 해제 할 수 있기 때문에 파일을 삭제할 수는 없습니다.
이 기능이 완전히 작동하려면 파일에 대한 모든 경로 구성 요소의 쓰기 권한이 제어되어야합니다. 예를 들어 파일이 /a/b/the-file
있고 /a/b
다른 사람이 쓸 수는 없지만 모든 사람이에 쓰기 권한을 가지고 있으면 다른 것으로 /a
이름 /a/b
을 바꾸고 자신을 다시 /a/b
만들고 자신 을 만들 수 /a/b/the-file
있습니다.