내 그룹에 있지만 파일을 읽을 수있는 권한이 설정되어 있지만 파일을 읽을 수 없습니다 소유자가 있음)도

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

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

-rw-rw----

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

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



답변

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

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

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


답변

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

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

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


답변

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

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


답변

ACL 일 수 있습니다. 보다

getfacl the-file

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

id -a

는 어때

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

getfattr -dm- the-file

sudo lsattr the-file

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

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

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


답변