특정 디렉터리 내에 생성된 파일에 대한 그룹 및 권한을 강제하려면 어떻게 해야 합니까?

특정 디렉터리 내에 생성된 파일에 대한 그룹 및 권한을 강제하려면 어떻게 해야 합니까?

다음에서 생성된 파일의 경우테스트 사용자/var/www 디렉토리에 계정이 있어야 합니다.g+rwx권한으로www-데이터그룹으로.

어떻게 이를 달성할 수 있나요?

SSH를 통해 파일을 생성하고 있습니다.

답변1

/var/www그룹 을 설정하려면설정조금:

chgrp www-data /var/www
chmod g+s /var/www

하위 디렉터리도 조정하려면 다음을 수행하세요.find /var/www -type d -exec chmod g+s {} +

이렇게 하면 새로 생성된 모든 파일이 사용자 대신 상위 디렉터리의 그룹을 상속하게 됩니다.


기본 그룹 권한을 설정하려면 다음을 사용해야 합니다.ACL. "기본" ACL을 설정합니다.

setfacl -m "default:group::rwx" /var/www

하위 디렉터리도 조정하려면 다음을 수행하세요.find /var/www -type d -exec setfacl -m d:g::rwx {} +

참고: 파일 시스템에는 ACL 지원이 활성화되어 있어야 합니다. 때로는 기본적으로 켜져 있습니다. ~에ext3또는ext4"작업이 지원되지 않습니다"라는 메시지가 표시될 수 있으며, 이 경우 수동으로 활성화해야 합니다.

  • 현재 마운트된 파일 시스템의 경우:mount -o remount,acl /

  • 영구적으로 –하나아래 방법 중:

    • fstab 수준에서: 옵션 필드에 /etc/fstab포함되도록 편집하세요.acl

    • 파일 시스템 수준에서:tune2fs -o acl /dev/diskname

답변2

이로 인해 몇몇 사람들은 setgid에 대한 'grawity' 답변에 갇혔을 수 있습니다. 폴더의 그룹이 자신의 그룹과 다른 경우 chmod를 루트로 실행해야 할 수도 있지만 이 작업을 수행해야 한다는 오류는 발생하지 않습니다.

$ ls -ld dir
drwxrwxr-x 2 luke testgroup 4096 Mar  9 10:44 dir

$ chmod g+s dir                                    #no errors

$ ls -ld dir
drwxrwxr-x 2 luke testgroup 4096 Mar  9 10:44 dir  #but nothing changed

$ touch dir/nosudo && ls -l dir/
-rw-rw-r-- 1 luke luke 0 Mar  9 10:51 nosudo       #and the group is still wrong


$ sudo chmod g+s dir

$ ls -ld dir
drwxrwsr-x 2 luke testgroup 4096 Mar  9 10:44 dir  #the setgid bit is now on

$ touch dir/withsudo && ls -l dir/
-rw-rw-r-- 1 luke luke      0 Mar  9 10:51 nosudo
-rw-rw-r-- 1 luke testgroup 0 Mar  9 10:51 withsudo #and group is set

답변3

사용자가 생성하는 파일 그룹은 해당 사용자의 그룹입니다(/etc/group에 있음). 권한은 UMASK 매개변수에 의해 제어됩니다. 이것 좀 봐

관련 정보