예를 들어 디렉토리를 만들고 싶습니다.
/ public / all
그러나 파일을 모두 만들면 소유자가 루트이지만 / public / all 폴더에 액세스 할 수있는 사람은 누구나 파일을 삭제 / 편집 / etc 할 수 있으며 권한을 변경하지 않아야합니다. (필요한 경우 자체 생성 된 “setx”응용 프로그램을 사용하여 실행 값을 변경합니다.)
그 이유는 다른 사용자가 / public / all의 파일에 대한 쓰기 / 읽기 액세스를 거부 할 수 있기를 원하지 않습니다. 디렉토리의 setuid가 작동하지 않는다고 들었습니다.
답변
너는 이것을 못해; 초기 소유자는 항상 개체의 작성자입니다.
할 수있는 일은 모든 사람이 자동으로 읽기 / 쓰기를 허용하도록 기본 ACL을 설정하는 것입니다.
setfacl -m default:u::rwx,default:g::rwx,default:o::rwx /public/all
또한 선택적으로 기본 그룹을 설정하십시오.
chown :nobody /public/all
chmod g+s /public/all
그러나이 중 어느 것도 소유자가 나중에 권한 을 변경 하지 못하게합니다 .
다른 해결책은 inotify를 사용하여 디렉토리를 모니터링하고 (사용 incron
) chown
생성시 자동으로 실행 하는 것입니다. 이것을 incrontab에 넣으십시오.
/public/all IN_CREATE chown nobody:nobody $@/$#; chmod 0666 $@/$#