사용자가 디렉토리를 삭제하는 것을 방지하는 방법은 무엇입니까?

사용자가 디렉토리를 삭제하는 것을 방지하는 방법은 무엇입니까?

"chattr +i DIRNAME"을 시도했는데 훌륭했지만 chattr 이후 DIR에 파일을 만들 수 없었습니다. 사용자가 디렉토리를 삭제하는 것을 방지하려면 어떻게 해야 합니까?

root@HOST ~] mkdir test
[root@HOST ~] chattr +i test
[root@HOST ~] cd test
[root@HOST ~/test] touch sth
touch: cannot touch `sth': Permission denied
[root@HOST ~/test] cd ..
[root@HOST ~] chattr -i test
[root@HOST ~] cd test
[root@HOST ~/test] touch sth
[root@HOST ~/test] 

업데이트: 디렉터리 삭제만 중요하므로 디렉터리에 있는 파일을 삭제해야 합니다.

답변1

".protected" 파일을 생성하고 루트로 실행합니다.

chattr +i .protected

그러면 .protected이 디렉터리를 제외한 모든 파일을 삭제할 수 있으므로 다른 사용자는 디렉터리를 삭제할 수 없습니다.

답변2

chattr +a

일을 해야 합니다. 그 안에 파일을 생성할 수는 있지만 삭제할 수는 없습니다.

답변3

그렇다면 간단한 chown/chmod의 문제점은 무엇입니까? :

cd /tmp
mkdir question
sudo chown root:root question
[sudo] password for user: 
chmod 777 ./question
touch sth
rm sth
cd ..
rm question -rf
rm: cannot remove `question': Operation not permitted

question글쎄요, 무엇이 문제인지 말씀드리겠습니다. 모든 사용자는 허가로 인해 디렉토리에 있는 모든 파일에 접근할 수 있습니다 777. 즐겨

  • 새 그룹 만들기groupadd question
  • mkdir question
  • chown root:question ./question
  • chmod 770 ./question
  • 파일에 대한 액세스 권한이 있어야 하는 사용자를 새 그룹에 추가합니다.usermod -G group user

여기서 중요한 팁은 디렉터리 소유자가 디렉터리를 삭제하려는 사용자와 다르다는 것입니다.

관련 정보