다음 폴더 구조를 상상해 보세요.
../문서
../문서/템플릿
두 개의 사용자 그룹이 있습니다.
- 편집하다
- 관리자
두 그룹의 사용자는 다음을 수행할 수 있어야 합니다.
- 새 파일 만들기
- 모든 파일 수정
- 모든 파일 삭제
../문서에서.
또한 두 그룹 모두 ../documents/templates의 모든 파일을 읽을 수 있어야 합니다.
"관리자" 그룹의 사용자만 다음을 수행할 수 있습니다.
- 새 파일 만들기
- 모든 파일 수정
- 모든 파일 삭제
../문서/템플릿에 있습니다.
"../documents/templates" 디렉토리는 두 그룹 모두에서 삭제할 수 없습니다!
어떻게 해야 하나요? 두 그룹의 사용자가 생성/삭제/수정할 수 있도록 허용하는 "문서"에 대해 g=rwx를 설정해야 하기 때문에 Linux에서는 이것이 불가능하다는 결론에 도달했습니다(POSIX ACL의 경우에도).어느해당 디렉토리에 있는 파일...하지만 +w를 사용하면 하위 디렉토리 "templates"도 삭제할 수 있으며 이를 거부할 수 있는 방법은 없습니다.
답변1
../documents/templates
다른 콘텐츠가 포함되어 있으면 누구도 삭제할 수 없습니다. 따라서 권한이 ../documents/templates/.hidden
있는 하위 디렉터리를 만들고 000
그 안에 빈 파일을 넣을 수 있습니다(음,앞으로당연히 000
권한을 설정하세요.) 그러면 rmdir ../documents/templates
실패할 것이고, 또한 실패할 것이다 rmdir ../documents/templates/.hidden
.
편집: 삭제된 다른 답변에서 빌려오면 슈퍼유저라면 이 작업을 수행할 수 있습니다. 이는 좀 더 간단합니다.
cd ../documents/templates
touch .locked
chattr +i .locked
( chattr
수퍼유저로 실행해야 합니다.)