내가 소유 한 파일의 gid (group) 변경 권한이 거부되었습니다. 그리워하는 것 같습니다. 나는 데비안 7 시스템

권한이 작동하는 방식에 대해 여전히 그리워하는 것 같습니다. 나는 데비안 7 시스템 btw에 있습니다. 방금 다운로드 한 파일이 있으며이 파일은 myuser:myuser사용자와 그룹이 모두 설정되어 있습니다. 그것은 $HOME내가 다운로드 한 곳이기 때문에 내 디렉토리 에도 있습니다 .

여태까지는 그런대로 잘됐다. 이제이 파일을 PC의 다른 사용자와 공유하고 파일의 그룹 소유권을 그룹 “사용자”로 전환하려고합니다. 그러나 그것은 실패합니다 :

nass@quarx:~/xmas_carol$ chgrp -R users *
chgrp: changing group of movie.mov': Operation not permitted

폴더의 내용은 다음과 같습니다.

-rwxr-xr-x 1 nass nass 2482411461 Feb  6 03:57 movie.mov

권한으로 진행중인 작업에 대해 애매합니다. 누군가 설명 할 수 있습니까



답변

사용자가 users그룹 의 구성원 이 아니므로 해당 그룹에 파일을 제공 할 권한이 없습니다. 설명하기 위해 :

$ groups
terdon sudo netdev fuse vboxsf vboxusers

$ ls -l file
-rw-r--r-- 1 terdon terdon 604 Feb  6 03:04 file
$ chgrp users file
chgrp: changing group of ‘file’: Operation not permitted
$ chgrp vboxusers file
$ ls -l file
-rw-r--r-- 1 terdon vboxusers 604 Feb  6 03:04 file

이 동작은 POSIX 사양에 언급되어 있습니다 .

파일 소유자 또는 적절한 권한을 가진 사용자 만 파일 소유자 또는 그룹을 변경할 수 있습니다.

일부 구현에서는 지정된 그룹이 유효 그룹 ID 또는 호출 프로세스의 보충 그룹 ID 중 하나가 아닌 경우 적절한 권한을 가진 사용자에게 chgrp 사용을 제한합니다.

주된 이유는 그룹의 구성원이 아닌 경우 해당 그룹이 액세스 할 수있는 항목을 수정할 수 없기 때문입니다. 이 답변 에 대한 chown권한도 관련이있다.

일반적으로 공유 시스템에는 users모든 일반 사용자가 속한 그룹이 있으며 각 사용자의 기본 그룹입니다. 이렇게하면 users그룹이 소유 한 파일이 만들어 지고 모든 사용자가 읽을 수 있습니다.

어쨌든, 요즘은 데비안 기반 배포판이 설정되는 방식이 아니기 때문에 특정 사용자에게 파일에 대한 액세스 권한을 부여하는 방법은

  1. 파일 / 디렉토리의 그룹 소유권을 귀하와 다른 사용자가 모두 속한 그룹으로 변경하십시오.

  2. 파일 / 디렉토리의 권한을 적절히 변경하십시오.

    $ chmod 755 /home/terdon
    $ ls -ld /home/terdon
    drwxr-xr-x 170 terdon terdon 491520 Apr 20 13:43 /home/terdon/
    

    그러면 모든 사람이 디렉토리에 액세스 할 수 있습니다.


답변

최근 UNIC (및 “최근”은 여기에서 다소 넓은 의미를 가짐)에서 파일의 그룹 소유권을 회원이 아닌 그룹으로 변경할 수 없습니다. 다른 UNIX 버전의 레거시 버전은 귀하와 같은 유스 케이스에 대해이를 지원했지만 보안 문제인 것으로 나타났습니다.

그룹 소유권을 외부 그룹으로 변경하는 문제는 매우 사소한 것입니다. 파일이있는 파일 시스템에 그룹 할당량이 활성화되어 있으면 악의적 인 의도를 가진 사용자가 단순히 외부 그룹의 할당량을 채울 수 있으므로 사용자가 불가능할 수 있습니다 이 그룹을 기본 그룹 ID로 사용하여 추가 파일을 작성하십시오. 이는 이미 실행중인 프로세스에도 쉽게 영향을 줄 수 있으며 “전체 디스크”로 인해 죽을 수도 있습니다.

문제를 피하기 위해 (적어도) 두 가지 가능성이 있습니다. 먼저 시스템의 수퍼 유저에게 원하는 대상 그룹을 계정의 보충 그룹 목록에 추가하도록 요청할 수 있습니다. 물론이 그룹과 관련이없는 경우에만 제한이 있습니다.

파일을 월드 쓰기 가능으로 만들 필요가없는 다른 방법은, 원하는 것은 아니지만 ACL을 사용하여 원하는 그룹에 읽기 및 쓰기 권한을 부여하는 것입니다.

$ setfacl -m group:thegroupsname:rwx the_file(s)

답변

불변 비트가 설정 되었기 때문일 수 있습니다. 실행중인 파일 속성 목록 가져 오기

lsattr /path/to/your/file

만약 내가 나타난 후 불변의 속성이 설정되어 있고 아무도 파일 (심지어 루트를) 수정할 수 없습니다.

속성을 제거하려면 루트로 실행해야합니다

chattr -i /path/to/your/file

더 많은 파일 시스템 속성을 보려면 매뉴얼 페이지를 읽으십시오

man chattr
man lsattr

답변

지금 그룹에 자신을 추가 한 경우, 로그 아웃 한 후 다시 로그인하여 변경 사항을 적용하십시오.