내 그룹에 있지만 파일을 읽을 수있는 권한이 설정되어 있지만 파일을 읽을 수 없습니다


15

유닉스 / 리눅스 머신에서 이상한 문제가 발생했습니다 :

저는 그룹의 회원입니다. 그룹 A라고 부르고 특정 파일 (다른 소유자가 있음)도 그룹 A에 속합니다. 해당 파일의 권한은

-rw-rw----

따라서 해당 파일을 열 수있을 것으로 예상되지만 그렇지 않습니다. 파일 내용 (cat 사용)을 보려고하면 "Permission denied"오류 메시지가 표시됩니다.

권한이 올바른 것 같으므로 다른 원인으로 무엇이 발생할 수 있습니까? "재정의"권한 제한이 있습니까? 그렇다면 어떻게 알 수 있습니까?


2
디렉토리 권한은 어떻습니까?
Karlson

여러 그룹에있는 경우 현재 그룹이 A로 설정되어 있습니까?
Code-Guru

2
@Karlson, 디렉토리 권한이 문제인 경우, 처음에는 파일의 권한을 볼 수 없습니다.
cjm

전체 경로와 파일 이름을 알려주십시오.
jippie

/home/theotheruser/somefolder/bla.txt에 있습니다. 여러 그룹에 있습니다.
Lagerbaer

답변:


8

그룹 A에 추가 된 후 로그 아웃했다가 다시 로그인 했습니까?

그렇지 않은 경우, 현재 로그인 프로세스는 로그인시 보유한 그룹 멤버쉽 만 갖게되며 그 이후의 변경 사항은 없습니다. 그리고 해당 로그인의 모든 하위 프로세스는 동일한 그룹 멤버쉽을 갖습니다 (예 : X에 로그인 한 경우 터미널 에뮬레이터 및 쉘을 포함한 모든 응용 프로그램)

다른 콘솔이나 ssh를 통해 다시 로그인하거나 exec sudo -u $(id -u -n) -i현재 쉘을 새 쉘로 효과적으로 교체하고 교체하기 위해이 쉘을 다시 테스트하여 테스트 할 수 있습니다. 해당 쉘에 속하는 백그라운드 프로세스는 분리됩니다.


아니, 그건 문제가 아니었다. 로그 아웃했다가 다시 로그인해도 문제가 해결되지 않았습니다.
Lagerbaer

3

NFS를 사용하면 사용하는 보안 모드에 따라 달라 지지만 기존의 경우 사용자가 속한 그룹 목록이 클라이언트에서 서버로 전송되며 전송할 수있는 그룹 수에 제한이 있습니다 ( 16 내가 마지막으로 확인했을 때).

그래서 클라이언트는 말합니다 : 나는 1234입니다 그리고 나는 그룹 12, 13, 14의 멤버입니다 ... 16 개 이상의 그룹에 있다면, 그 목록은 잘리고 그룹은있을 것입니다 서버가 귀하가 회원임을 인식하지 못합니다.

아마도 그 설명 일 것입니다. 로컬 및 / 또는 원격 시스템의 시스템 관리자 만이 보안 모델 또는 NFS 서버 설정을 변경하거나 구성원 인 그룹 수를 줄여서 이와 관련하여 무언가를 수행 할 수 있습니다.


"groups"명령의 출력에서 ​​19 번째 위치에있는 그룹이 나타나기 때문에 이것이 이유라고 생각합니다. 이 답변을 시스템 관리자에게 보여주고 도움이되는지 확인하겠습니다. :)
Lagerbaer

이 문제를 해결하기 위해 NFS에서 "보안 모델"을 어떻게 변경 하시겠습니까?
Danny

3

댓글에서 메모 한대로에 대한 읽기 권한이 없습니다 /home/username. 그러나를 읽으 려면 전체 경로에 대한 실행 권한 /home/username/path1/path2/file이 필요 합니다.

이를 디버그하려면 namei -l /home/username/path1/path2/file파일을 읽는 사용자로 실행 하십시오.


그것은 내 경우의 문제였습니다. 다른 사용자에게 내 홈 디렉토리의 하위 폴더에서 작업 할 수있는 권한을 부여하고 싶었지만 내 홈 디렉토리에 액세스 권한이 700이므로 모든 명령에 대해 "권한이 거부되었습니다".
Cerberus

1

ACL 일 수 있습니다. 보다

getfacl the-file

어떤 이유로 든 당신이 속한 그룹이 제대로 설정되지 않았을 수 있습니다. 확인

id -a

는 어때

namei -xl "$(readlink -f the-file)"

getfattr -dm- the-file

sudo lsattr the-file

파일 시스템의 유형은 무엇입니까?

시스템에 의류, SELinux 또는 기타 필수 액세스 제어가 있습니까?

파일에 "Permission denied"라는 텍스트가 없습니다. ;-)?


아니, 특별한 ACL이없고, 표준 플래그가 말한 것을 반복하고, id -a는 내가 그 파일의 그룹에 있다고 알려줍니다
Lagerbaer

이상한 점은 그룹 B에 속한 다른 사용자의 파일을 볼 수 있다는 것입니다. 그 중 회원이기도합니다.
Lagerbaer

파일 시스템이 nfs4 인 것 같습니다. namei는 루트, 루트에 속하는 / 및 홈을 제공합니다. / home / username은 username 및 group X에 속하고 (이는 멤버가 아님) 나머지는 / home / username / path1 / path2 / file이며 여기서 path1은 username 및 group X에, path2는 username에 속합니다. 그룹 A, 나는 회원입니다.
Lagerbaer
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.