[unix] 그룹에 폴더에 대한 쓰기 권한 부여

한 그룹에 쓰기 권한을 부여하려면 어떻게해야합니까?
2 명의 사용자가 있습니다 ( alexben).
alex그룹 alex및 그룹의 구성원입니다 consult.
ben그룹 ben및 그룹의 구성원입니다 consult.

폴더 alexben폴더 모두에 대한 읽기 쓰기 권한을 부여하고 싶습니다 consult_documents.

내가 한 경우 alex디렉토리의 소유자를 consult_documents내가 부여 775디렉토리에 액세스 consult_documents, benalex폴더에 액세스 할 수 있습니다, 나는 생각한다.

그러나 이것은 다른 폴더에도 ben액세스 할 수 alex있습니까? 사용자가 두 그룹에있는 경우 두 그룹의 모든 구성원이 모든 폴더에 대해 동일한 권한을 갖습니까?



답변

디렉토리에 775 개의 권한을 부여한다고해서 특정 그룹의 모든 사용자가 디렉토리에 rwx액세스 할 수있는 것은 아닙니다. 디렉토리의 소유자이거나 디렉토리 그룹에 속해야합니다.

$ ls -ld some_dir
drwxrwxr-x 2 alex consult 4096 Feb 20 10:10 some_dir/
              ^     ^
              |     |_____ directory's group
              |___________ directory's owner

따라서 alex와 ben이 모두 쓰기 권한을 갖도록 some_dir하려면 some_dir디렉토리 자체가 consult그룹에 속해야합니다 . 그렇지 않은 경우 디렉토리 소유자 (예 : alex)는 다음 명령을 실행해야합니다.

$ chgrp consult some_dir/

또는 디렉토리 내의 모든 것에 대한 그룹 소유권을 변경하려면 다음을 수행하십시오.

$ chgrp -R consult some_dir/

alex가 consult그룹 의 구성원 인 경우에만 작동 하며 이는 귀하의 예와 같습니다.

이렇게하면 벤이 다음 두 가지 이유로 alex의 모든 디렉토리에 액세스 할 수 없습니다.

  1. alex의 모든 디렉토리가 consult그룹에 속하지는 않습니다
  2. alex의 디렉토리 중 일부는 consult그룹 에 속할 수 있지만 alex는 rwx그룹에 대한 액세스를 허용하지 않았을 수 있습니다.

간단히 말해서 답은 그룹 소유권과 디렉토리에 설정된 그룹 권한 비트에 따라 다릅니다.

이 모든 것은 시스템에서 추가적인 필수 액세스 제어 수단을 사용하지 않는 경우에 제공 됩니다.


답변

이것은 alex와 ben이이 디렉토리에서 서로를 공감하게 할 것이며, 그들은 다른 Dir.에서 충돌 할 수 없습니다.

다음을 사용하여 사용자 그룹을 수정하십시오.

# usermod -a -G alex,ben alex

그런 다음 폴더 권한을 변경하십시오.

# chown alex:ben consult_documents

여기에서 확인하십시오.

$ sudo usermod -a -G alex,ben alex

$ sudo chown alex:ben consult_documents/

cd consult_documents/

$ touch babin

drwxrwxr-x 2 alex ben  4096 Feb 20 15:19 .
drwxr-xr-x 3 alex alex 4096 Feb 20 15:17 ..
-rw-rw-r-- 1 alex alex    0 Feb 20 15:19 babin

$ su - ben

cd /home/alex/consult_documents/

ben@system99:/home/alex/consult_documents$ touch babin1
ben@system99:/home/alex/consult_documents$ ls -la
total 8
drwxrwxr-x 2 alex ben  4096 Feb 20 15:19 .
drwxr-xr-x 3 alex alex 4096 Feb 20 15:17 ..
-rw-rw-r-- 1 alex alex    0 Feb 20 15:19 babin
-rw-rw-r-- 1 ben  ben     0 Feb 20 15:19 babin1
ben@system99:/home/alex/consult_documents$

여기 좀 봐


답변

내가 당신의 질문을 올바르게 이해했다면 대답은 그렇습니다.

설명하겠습니다 :

폴더 및 파일 액세스 권한은 세 가지 범주로 나뉩니다.

xxxyyyzzz
xxx are access rights for the owner
yyy are access rights for the owner's group
zzz are the access rights for everyone else

모든 파일과 폴더는 사용자가 소유해야합니다.

즉, consult_documents라는 폴더가 있고 Consult 그룹의 모든 사용자가 폴더에 액세스 할 수있게하려면 다음과 같은 권한을 갖습니다 (755 액세스 권한).

drwxrwxr-x Alex Consult [......]

디렉토리는 Alex가 소유하고 그룹은 Consult입니다. Alex에게는 RWX 액세스 권한이 있습니다. 그룹 문의에는 RWX 액세스 권한이 있습니다. 다른 사용자에게는 RX 권한이 있습니다.

사용자 Alex에게는 여러 그룹이 있으므로 공유 할 그룹을 선택할 수 있습니다.

예를 들어, Alex가 그룹 Alex의 폴더를 소유 한 경우 :

drwxrwxr-x Alex Alex [......]

해:

chown Alex:Consult your_folder

그것은 될 것입니다 :

drwxrwxr-x Alex Consult [......]

그런 다음 Consult 그룹에 해당 디렉토리를 사용할 수 있습니다.

내가 아는 한 소유자 그룹 중 하나가 아닌 그룹을 추가 할 수 있습니다. 그러나 그것이 권장되는지 확실하지 않습니다 (액세스 권한을 읽을 때 명확하지 않음).


답변

setfacl -mg : 데비안 전송 : rwx -R / mnt / sra

파일이나 디렉토리의 소유자를 완전히 변경 하는 chown 대신이 명령이 훌륭 하다는 것을 알았습니다!

‘ls -Al’에서 하나 이상의 소유자가 있음을 나타 내기 위해 + 부호가 추가됨을 알 수 있습니다!

drwxr-xr-x 2 루트 루트 4096 11 월 8 일 19:11 sdc1 /

drwxrwxr-x + 3 루트 루트 4096 2 월 17 일 19:16 sra /

그리고 getfacl 을 사용 하여 누가 파일이나 디렉토리를 쓰거나 읽을 수 있는지 볼 수 있습니다!

# 파일 : sra

# 소유자 : 루트

# 그룹 : 루트 사용자 :: rwx

그룹 :: rx

그룹 : 데비안 전송 : rwx

마스크 :: rwx

다른 :: rx

기본 : 사용자 :: rwx

기본값 : 그룹 :: rx

기본값 : 그룹 : 데비안 전송 : rwx

기본 : 마스크 :: rwx

기본 : other :: rx


답변