이 파일 및 폴더 권한 시나리오를 구현하는 방법:
다음 폴더를 고려하세요.
폴더 A: 640 root apache /var/www/A/
폴더 www: 640 root apache /var/www/
및 이 Linux 사용자:
id user1
:uid=1000(user1) gid=1000(user1) groups=1000(user1)
user1
Linux 사용자에게 읽기/쓰기 액세스를 허용하고 싶습니다.오직폴더 A로,하지만폴더 A의 소유자나 그룹을 변경하지 마십시오.
다음 시나리오를 시도했지만 어느 것도 이상적이지 않았습니다.
user1
그룹에 추가apache
:
단점:user1
에 있는 다른 파일을 읽을 수 있습니다/var/www/
.user1
집에 있는 폴더(예: 폴더 B)를/var/www/A/
A 대신 폴더 B에 하드 링크하고 적절한 권한을 설정합니다.
단점: 여러 장치에서 디렉터리에 대한 하드 링크가 불가능합니다.- 추가 :
user1
단점 : 복잡성 과 더불어 사람의 실수로 인해 폴더 A의 소유자/그룹 정책 및/또는 권한이 위반될 가능성이 있습니다.sudoers
user1
user1
어떤 아이디어가 있나요?
답변1
user1
다음을 통해 관리되는 콘텐츠에 액세스하고 있으므로 /var/www/A에 대한 액세스 권한을 부여하고 싶다고 가정합니다.user1
http://도메인 이름/A? 아파치가 콘텐츠를 사용자의 홈 디렉터리 아래 디렉터리로 리디렉션하도록 허용하지 않는 이유는 무엇입니까?
Alias /A/ /path/to/users/homedir/A
이렇게 하면 /path/to/users/homedir/A의 그룹/사용자 소유권/권한을 변경하지 않고도 결과를 얻을 수 있습니다.
하지만 파일 권한을 통해 이를 수행하려는 경우에만 이를 달성할 수 있습니다.통과/var/www의 소유권/권한 변경그리고/var/www/A.
"새 그룹"( groupadd
대부분의 UNIX에서 제공되는 명령)을 만들고 여기에 apache 및 user1을 추가합니다. /var/www/A의 그룹 소유권을 이 "새 그룹"으로 변경합니다( chown
또는 사용 chgrp
). chmod 711 /var/www
/var/www 디렉토리에 대한 "새 그룹" 및 "다른 사용자"의 rw 액세스를 거부하도록 권한을 설정하고 ( ) /var/www/A에 "새 그룹" 액세스를 부여합니다( ) chmod g+rwx /var/www/A
.
인용하다:
답변2
그룹을 생성하고 및 을 group1
추가한 후 다음과 같이 소유 그룹을 사용 으로 변경합니다.apache
user1
group1
/var/www/A
group1
chgrp
# use `-R' if you want to do this recursively, that is grant `group1' access to
# all sub-directories of `A' as well as access to `A' itself.
# as a regular user with sudo rights:
sudo chgrp -R group1 /var/www/A
# as root
chgrp -R group1 /var/www/A
따라서 user1
apache의 구성원이 아니므로 읽을 수는 없지만 /var/www
여전히 읽을 수 있고 /var/www/A
apache도 계속 읽을 수 있습니다 /var/www/A
.
마지막으로 아래와 같이 그룹 구성원에게 read/write
액세스 권한이 있는지 다시 확인하세요.chmod
# use `-R' at your own discretion--it acts the same way as `-R' in `chgrp'
# as root
chmod -R g=rw /var/www/A
# as a regular user with sudo rights
sudo chmod -R g=rw /var/www/A
또는 그런 것.