그룹 권한은 허용하지만 여전히 권한 거부


43

ext4 파티션이 있고 모든 하위 디렉토리의 그룹 소유자를 mygroup으로 설정했습니다.

# chgrp -R mygroup /mount/abc
# chmod -R g+swrx /mount/abc

내 사용자는 해당 그룹의 일부입니다. 해당 파티션 안에는 'nobody'사용자가 소유 한 폴더가 있으며 'mygroup'그룹이 소유하고 있습니다. 내 사용자는 'mygroup'의 일부입니다. 다음은 ls -l입니다.

myuser@host:/mount/abc/folder$ ls -l
drwxr-sr-x 2 nobody      mygroup      4096 Apr 25 12:08 ./
drwxrwsrwx 6 nobody      mygroup      4096 Apr 24 07:57 ../
-rw-r-xr-- 1 otheruser   mygroup    159539 Apr 23 23:44 test.png*

myuser@host:/mount/abc/folder$ groups myuser
myuser : mygroup {... a list of other groups also...} 

myuser@host:/mount/abc/folder$ rm test.png 
rm: remove write-protected regular file ‘test.png’? y
rm: cannot remove ‘test.png’: Permission denied

myuser@host:/mount/abc/folder$ touch test.txt
touch: cannot touch ‘test.txt’: Permission denied

내 사용자가 속한 그룹이 소유 한 파일을 삭제하거나 만들 수 없습니다.

그룹이 어떻게 작동하는지 완전히 이해하지 못하는 것 같습니다. 나는 당신이 그룹의 일부라면 그 그룹의 권한을 상속받는다고 생각했습니다. 내가 뭔가 잘못하고 있습니까?

감사


권한 triad가 owner-group-world 인 것 같습니다. 위의 디렉토리에서 drwxr-sr-x를 볼 수 있습니다. 따라서 그룹의 권한은 rs입니다. chmod -R이 재귀 적으로 권한을 rwx로 설정하지 않은 것 같습니다. 폴더의 그룹 권한으로 w 비트를 뒤집 으면 작동합니다.
카오스

답변:


68

최근에 해당 사용자를 로그 아웃 / 로그인하지 않고 해당 그룹에 추가 했습니까? 그러면 "groups"에 그룹이 표시되지만 사용자에게는 아직 그룹 권한이 없습니다.

당신은을 사용하여 효과적인 그룹을 보여줄 수 있습니다

$ id

예를 들어, 사용자 ps를 그룹에 추가 fax한 다음

$ id

그룹을 표시하지 fax않지만

$ groups ps

보여줍니다 fax.

이렇게 su자신의 사용자에게 당신에게 새 그룹 소속을 제공합니다 :

$ su ps
$ id

출력에는 이제도 포함 fax됩니다.


1
이것은 정말 도움이됩니다. 특히 'sudo <username>'부분입니다.
카오스

3
로그인 / 로그 아웃이 너무 분명하여 요점을 놓쳤습니다. 많은 감사합니다 친구!
nicolallias

1
@ peschü 나는 sudo정기적으로 사용하고 있습니다. 내가 보여준 오류는 명령 ubuntu(즉, 사용자 이름)이 인식되는 명령이 아니라고 불평하고 있습니다. 나는 당신의 제안이 구문 적으로 정확하다고 생각하지 않습니다. 아마도 ps사용자 이름뿐만 아니라 명령 일 수도 있기 때문에 귀하의 경우에는 효과가 있습니다 .
beldaz

1
@beldaz 아냐! 당신이 맞아요! 구문 상으로 정정하십시오 su <username>. 게시물을 수정했습니다.
peschü

1
이전 로그 아웃 / 로그인 할 때마다 다시 작업하십시오.
Steampunkery

8

사용한 방법이 올바른 것 같습니다. 방금 복제를 시도했지만 정상적으로 작동했습니다.

오타가 있는지 확실하지 않지만 명령에 약간의 문제가 있습니다. 거기에 "mygroup"이 언급 될 필요는 없습니다. 다음 작품

# chmod -R g+swrx /mount/abc

심지어 s비트를 제거 할 수 있습니다 g+rwx. 권한을 변경하고 변경 ls -l하면 관련 권한이 표시됩니다.


2
그룹 이름으로 오타를 제거했습니다. ls -l을 수행 할 때 디렉토리에 wrx 권한이 있으며 nobody : mygroup이 소유합니다. myuser가 mygroup의 일부이지만 myuser는 여전히 파일을 만들거나 삭제할 수 없습니다. 나는 그것이 의미가 있기를 바랍니다.
카오스

2

디렉토리를 열려면 x 비트 세트 (해당 비트가 검색 비트로 표시되는 디렉토리)가 필요합니다. 따라서 트리를 사용하여 폴더 세트 만 가져오고 모든 파일을 실행 파일로 설정하는 악몽을 피하십시오 (tree 옵션은 -d List directories only.).

sudo tree -faid /mount/abc | xargs -L1 -I{} sudo chmod 755  "{}"

경고!!! 이 점을 고려해야합니다.

  • 루트 /디렉토리 또는 시스템 디렉토리 에서 chmod 또는 chown 재귀를 사용 하면 OS가 손상됩니다 (실제로 /디렉토리 또는 시스템 디렉토리의 재귀 는 위험합니다)

  • 이것은 권한 대량을 설정하는 좋은 보안 관행이 아닙니다.


1
큰 감사합니다! "디렉토리에 x 비트 세트가 필요합니다"라는 단어가 내 문제를 해결했습니다! "sudo chmod g + x <부모 디렉토리 경로>"를 수행했는데 효과가있었습니다.
kinORnirvana

2

그룹 mygroup은 파일 test.png뿐만 아니라 폴더 에 대한 쓰기 권한이 없기 때문에 파일을 제거 할 수 없습니다 . 파일에서 쓰기 작업을 수행하려면 파일 권한이 다음과 같아야합니다.

-rw-rwxr-- 1 otheruser   mygroup    159539 Apr 23 23:44 test.png*

권한 형식을 자세히 살펴보면

duuugggooo

처음 세 자리는 uuu사용자이다 r에 , EAD 의식 전자 X ecute. 다음 세 자리 표시 ggg자는 그룹과 ooo다른 사람들을위한 것입니다. 영업 그룹에 의해 게시 된 조각에서 누락 의식의 허가.


1

허용 된 답변에 추가하려면 (아직 댓글을 달 수 없기 때문에) :

BitVise와 같은 소프트웨어를 사용하여 서버에 SSH 연결을 만드는 경우 터미널을 닫았다가 다시 열면 로그인 및 로그 아웃으로 계산되지 않습니다. 그것은 것입니다 다시로드하여 같은 일을 ~/.bashrc하지만, 하지 (당신이 당신의 "로그인"세션에서 그룹을 추가 한 경우) 실제 그룹 업데이트를 수행합니다. 이를 적용하려면 SSH 키 / 자격 증명으로 완전히 로그 아웃했다가 다시 로그인해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.