rwxrwxr-x
권한이 설정된 디렉터리가 있습니다 -s-
. 사용자 A가 이 폴더에 파일을 생성하면 해당 파일은 권한을 얻고 rw-rw-r--
사용자 B는 권한을 얻게 됩니다 rw-r--r--
. 파일이 처음 생성될 때 정확히 어떻게 권한이 설정되는지 혼란스럽습니다...
내가 해야 할 일에 더 집중하기 위해 디렉터리에는 사용자 A와 B가 포함된 그룹 G가 있으며 두 사람 모두 동일한 디렉터리의 모든 파일에 대해 작업할 수 있기를 원합니다. 따라서 둘 다 파일을 생성하면 rw-rw-r--
할 수 있습니다 . 따라서 간섭 없이 이러한 파일을 처리할 수 있습니다(삭제하고 다시 생성하거나 편집하기만 하면 됩니다).
답변1
새 파일의 권한은 (1) 호출에 설정된 권한과 open()
(2) 생성 프로세스가 수정되어 umask
설정된 비트가 umask
지워지는 방식으로 설정됩니다. 즉, 권한 비트는 둘 다 허용되는 경우에만 설정되며 비트를 반전시키기만 하면 됩니다 umask
.
귀하의 경우 사용자는 서로 다른 umask를 가질 수 있습니다. 즉, A는 umask 0002
(다른 사용자에 대한 쓰기 비트만 지움)를 가지고 있는 것처럼 보이지만 B는 umask 0022
(그룹 및 다른 사용자 모두에 대한 쓰기 비트를 지움)를 가지고 있는 것 같습니다. umask는 쉘 시작 파일에 있거나 pam_umask
.
디렉터리에 ACL, 특히 기본 ACL이 설정된 경우 상황은 약간 다릅니다. 이 경우 umask는 무시되고 기본 ACL이 파일의 ACL에 복사되지만 시스템 호출에 설정된 권한 비트만 보존됩니다.
이 질문에 대한 답을 찾고 있을 수도 있습니다.