그룹 manager
과 사용자가 있습니다 user1
.
user1
예제를 통해 웹서버 경로에 디렉터리가 생성됩니다 /var/www/user1Project
.
그룹이 manager
소유한 디렉토리에서 읽고 쓸 수 있도록 하려면 어떻게 해야 합니까 user1
?
manager
. 에 그룹을 추가하려고 시도했지만 user1
문제가 해결되지 않았습니다. 그룹의 사용자는 manager
쓰기가 허용되지 않습니다 user1Project
. 이유는 모르겠습니다.
답변1
이는 매우 구체적이며 Unixoid 시스템의 레거시 권한 아키텍처를 사용하여 관리할 수 없습니다. 귀하의 의도에 가장 가까운 방법은 다음을 사용하는 것입니다.ACL. 다음 명령을 실행합니다(선택적으로 수퍼유저로):
setfacl -d -R -m g:manager:rwx /dir/of/user1
setfacl -R -m g:manager:rwx /dir/of/user1
첫 번째 명령은 user1이 새로 만든 파일에 적용되도록 디렉터리에 대한 기본 권한을 설정합니다. 두 번째 명령은 폴더와 파일에 대한 실제 사용 권한을 재귀적으로 설정합니다.
ACL 인프라는 Apache 웹 서버에서 작동하지 않습니다. Apache는 레거시 권한(사용자/그룹/기타 권한)에만 관심을 갖습니다. 따라서 네트워크 폴더 내에서 모든 파일/폴더는 해당 www-data
그룹에 있어야 하며 모든 파일에는 인덱스 검색을 위한 실행 권한이 www-data
있어야 합니다 .www-data
고쳐 쓰다:
디렉터리에 새로 생성된 파일이 디렉터리 그룹을 상속하도록 하려면 디렉터리의 gid 비트를 설정하세요.
chmod g+s /web/directory
내부에 새로 생성된 파일이 /web/directory
이 그룹을 상속합니다./web/directory
답변2
이 그룹의 일부가 되는 것 외에도 디렉터리에 대한 쓰기 권한도 설정해야 합니다.
chmod 770 /var/www/user1Project/example_dir
(전세계에 읽기 권한을 부여하려면 775를 사용하십시오. 이는 웹 디렉토리에서 더 가능성이 높습니다.)
또한 사용자 관리자는 그룹에 추가된 후 다시 로그인해야 한다는 점에 유의하세요 user1
.
user1
그룹이 생성한 모든 디렉토리를 그룹 구성원이 쓸 수 있도록 하려면 다음 user1
을 설정할 수 있습니다.
umask 0002
이렇게 하면 권한이 있는 디렉토리가 생성됩니다 rwxrwxr-x
.
답변3
디렉터리 그룹을 관리자로 설정합니다.
chgrp -hR manager /your/target/directory/path
그런 다음 권한에 set-GID-bit를 추가하면 user1
변경 사항이 있을 경우 그룹에서 다시 쓸 수 있습니다.
chmod g+s /your/target/directory/path
답변4
setfacl
당신에게 가장 좋은 것 같습니다. 설치 되어 있는지 확인하세요 acl utilities
. 이미 설치되어 있는지 확인
Redhat 기본 시스템에서 다음 작업을 수행합니다.
yum list acl
Debian 기반 시스템의 경우
dpkg -l acl
Redhat 기반 시스템의 경우 아직 설치되지 않은 경우 다음을 수행하십시오.
yum install acl.x86_64 # Or use dnf for later versions of Fedora and so
Debian 기반 시스템의 경우
dpkg install acl
파일 시스템에서 acl을 활성화하려면 /etc/fstab을 수정합니다.
UUID=your_uuid_here /partition filesystemtype options,acl 0 2
참고 ,acl
는 추가된 유일한 부분입니다. 이제 파티션을 다시 마운트하십시오.
mount -o remount /your_partition_here
acl
( 이미 설치되어 있으면 완료하지 않았을 수도 있는 설정 부분이 완료됩니다 .)
setfacl 적용
setfacl -m g:manager:rw file /var/www/user1Project #you need root privileges
이제 가도 돼