이러한 파일의 올바른 소유권을 어떻게 설정합니까?

이러한 파일의 올바른 소유권을 어떻게 설정합니까?

/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이 새 그룹에 추가되었음을 반영하지 않습니다.

getentid일반적으로 쉘을 조사할 때 명령을 사용하기보다는 명령 , 더 구체적으로는 을 사용하기를 원합니다 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)

관련 정보