"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
여기서 중요한 팁은 디렉터리 소유자가 디렉터리를 삭제하려는 사용자와 다르다는 것입니다.