파일 생성을 위해 Linux에서 기본 사용자를 어떻게 설정합니까?


3

예를 들어 디렉토리를 만들고 싶습니다.

/ public / all

그러나 파일을 모두 만들면 소유자가 루트이지만 / public / all 폴더에 액세스 할 수있는 사람은 누구나 파일을 삭제 / 편집 / etc 할 수 있으며 권한을 변경하지 않아야합니다. (필요한 경우 자체 생성 된 "setx"응용 프로그램을 사용하여 실행 값을 변경합니다.)

그 이유는 다른 사용자가 / public / all의 파일에 대한 쓰기 / 읽기 액세스를 거부 할 수 있기를 원하지 않습니다. 디렉토리의 setuid가 작동하지 않는다고 들었습니다.

답변:


7

너는 이것을 못해; 초기 소유자는 항상 개체의 작성자입니다.

할 수있는 일은 모든 사람이 자동으로 읽기 / 쓰기를 허용하도록 기본 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 $@/$#

chmod말은 실행 플래그를 제거합니다. 하위 디렉토리가 아닌 한 이러한 디렉토리에서이 효과가 필요할 수 있지만, 언급 할 것이라고 생각했습니다.
다니엘 벡

아, 잊어 버렸습니다. chmod ugo=rwX작동해야합니다.
grawity
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.