그룹의 모든 사용자가 쓸 수 있는 폴더를 만들고 싶으므로 먼저 다음과 같이 새 그룹을 만듭니다.
sudo groupadd newGroup
그런 다음 user1과 user2를 다음과 같이 그룹에 추가했습니다.
sudo usermod -a -G newGroup user1
sudo usermod -a -G newGroup user2
이 사용자가 다음 그룹에 속하는지 확인합니다.
getent group newGroup
그런 다음 내 폴더에서 다음과 같이 그룹에 소유권을 부여합니다.
sudo chown :newGroup myfile
그룹의 모든 사람이 다음을 사용하여 폴더에 쓸 수 있도록 권한을 770으로 변경합니다.
sudo chmod 770 myfile
그런데 그룹의 user2를 사용하여 폴더를 열려고 하면 열 수 없습니다! 파일을 소유한 사용자인 user1을 통해서만 열 수 있습니다. 내가 무엇을 놓치고 있나요?
편집하다
ls la 파일 결과
$ ls -la | grep myfile
-rwxrwx--- 1 user1 newGroup 3819 Jan 16 10:21 myfile
편집 2
효과를 적용하려면 로그아웃했다가 로그인하기만 하면 됩니다.
답변1
새 그룹에 추가된 내용을 적용하려면 사용자(예제에서는 user1 및 user2)가 로그아웃했다가 다시 로그인해야 합니다.
사용자 U와 그룹 G1 및 G2 id
의 구성원에 속하는 프로세스 P(예: 셸)는 다음을 수행합니다.아니요usermod
본 계약의 변경 사항(예: 또는 이와 유사한 변경 사항) 으로 인해 영향을 받습니다 . 특히 사용자 U가 그룹 G3에 추가되면 프로세스 P는 이를 알지 못합니다. 마찬가지로 그룹 G2를 삭제하면 P는 이를 알지 못합니다. 이는 ID 속성이 상속되기 때문에 하위 프로세스에도 적용됩니다. 따라서 프로세스 P1이 사용자 U에 대해 시작되고 U가 G1 및 G2의 구성원이고 U가 G2에서 제거된 다음 P1이 P2를 포크하면 P2는 여전히 G1에 있습니다. 그리고 G2. 이것이 바로 사용자 U가 로그아웃했다가 다시 로그인해야 하는 이유입니다. ID 속성이 와 같은 것에 의해 결정되기 때문입니다 login
.
답변2
다음 경로를 통해 새 폴더를 생성하려는 경로의 권한을 확인하시기 바랍니다.
ls -ld .
새 폴더가 그룹 액세스 권한이 없는 경로에 있지만 새 폴더에 필요한 권한을 부여한 경우. 작동하지 않습니다.
첫 번째 사용자 집합은 새 폴더의 경로에 액세스할 수 있어야 하기 때문입니다. 그런 다음 새 폴더 디렉터리로 이동해야 합니다.
새 폴더가 위치할 경로를 750 이상 제공하십시오. 따라서 그룹 사용자는 해당 경로에 이를 입력할 수 있습니다.