/var/www/
승인된 사용자만 수정하려면 이 디렉토리(및 그 안의 모든 항목)가 필요합니다 .
내가 시도하는 방법은 다음과 같습니다.
sudo groupadd webmasters
sudo usermod -G webmasters pi # My user is pi
sudo chown -R root:webmasters /var/www/
sudo chmod -R ug+rw /var/www/
...하지만 그 안에 있는 어떤 것도 수정할 수 없으며 /var/www/
새 파일을 만들 수도 없습니다.
내가 뭘 잘못했나요? 필요한 방식으로 어떻게 설정하나요?
내 생각은 다음과 같습니다
- 그룹의 모든 사람
webmasters
이 파일을 생성, 삭제, 편집할 수 있습니다./var/www/
- 새로 생성된 모든 파일/폴더는 다음에 속합니다.
root:webmasters
- 새로 생성된 모든 파일에는 775 권한이 있습니다.
-rwxrwxr-x
- 이슬람 국가필요한저것아무도승인 없이 쓰기 액세스 또는 모든 유형의 Setuid/Setgid 기능을 가질 수 있는 능력. (쓰기 권한은 루트에서만 부여할 수 있습니다.)
내가 이것에 대해 잘못된 접근 방식을 취하고 있습니까? 내 생각은 맞았는데, 그냥 망쳐버린 걸까? 무엇이 잘못되었나요?
답변1
/etc/group
명령을 통해 파일의 그룹에 사용자를 추가하는 것만으로는 충분하지 않습니다 usermod -G
. 이렇게 하면 "데이터베이스"가 업데이트되지만 이 업데이트 이전에 생성된 모든 셸/프로세스는 이를 소유한 사용자가 pi
이 새 그룹에 추가되었음을 반영하지 않습니다.
getent
id
일반적으로 쉘을 조사할 때 명령을 사용하기보다는 명령 , 더 구체적으로는 을 사용하기를 원합니다 id -a
.
예
saml
여기서는 그룹에 내 사용자 이름을 추가했습니다 newgrp
. 이 명령은 getent
다음을 확인합니다.
$ getent group newgrp
newgrp:x:10000:saml
그러나 이 명령은 id -a
이미 열려 있는 셸에서 다른 내용을 알려줍니다.
$ id -a
uid=500(saml) gid=501(saml) groups=501(saml),502(vboxusers),503(jupiter)
새 쉘을 시작하면 다음이 표시됩니다 newgrp
.
$ ssh localhost
Last login: Fri Jun 28 00:17:13 2013 from localhost.localdomain
$ id -a
uid=500(saml) gid=501(saml) groups=501(saml),502(vboxusers),503(jupiter),10000(newgrp)