그룹이 디렉터리에 있는 파일을 읽고 쓸 수 있도록 디렉터리 권한을 어떻게 설정합니까? (누가 파일을 만들었는지에 관계없이)

그룹이 디렉터리에 있는 파일을 읽고 쓸 수 있도록 디렉터리 권한을 어떻게 설정합니까? (누가 파일을 만들었는지에 관계없이)

이 그룹에 속하는 디렉토리를 만들었습니다 www-data. 파일을 만든 사람이 누구인지에 관계없이 그룹 구성원이 파일에 쓸 수 있기를 바랍니다. 내 사용자 이름은 입니다 pi.

mkdir ./shared
sudo chown pi ./shared
sudo chgrp www-data ./shared
sudo chmod -R 770 ./shared
sudo chmod g+sw ./shared

로 확인해 보면 ls -l다음과 같습니다.

drwxrws--- 2 pi   www-data 4096 sept 28 17:10  shared

그 안에 새 파일을 만들었습니다.

cd ./shared
touch ./test.txt

그런데 확인해 보니 그룹에 새로운 쓰기 권한이 없습니다.test.txt

-rw-r--r-- 1 pi www-data 0 sept 28 17:10 test.txt

나한테 무슨 문제라도 있는 걸까? 할 수 없습니다 sudo chmod -R 770 ./shared. 스크립트/웹 서버는 실행할 때마다 디렉토리에 새 파일을 생성합니다.

특정 파일을 만든 사람에 관계없이 소유자와 그룹 구성원이 파일에 대한 읽기 및 쓰기 권한을 갖는 공유 디렉터리를 만드는 방법은 무엇입니까?

답변1

시스템 및 파일 시스템이 posix-draft-type ACL을 지원하는 경우 다음을 수행할 수 있습니다.

setfacl -m d:g::rw ./shared

umask이 그룹에는 파일을 생성한 프로세스가 일반적으로 이러한 권한을 부여하지 않는 경우에도 새로 생성된 파일에 대한 읽기+쓰기 권한이 자동으로 부여됩니다 .

chmod그럼에도 불구하고, 이는 사용자가 이후에 이러한 권한을 사용/제거하는 것을 막지는 못합니다 setfacl.

관련 정보