setgid를 통해 파일/디렉토리 공유

setgid를 통해 파일/디렉토리 공유

특정 그룹에 대한 쓰기 액세스를 허용하려면 해당 그룹의 모든 사람을 기본적으로 공유 파일/폴더에 쓸 수 있도록 설정하고, 소유 그룹을 해당 그룹을 소유한 그룹에 자동으로 고정할 수 있습니다.상위 디렉토리이 디렉터리에 setgid 비트를 설정하면 다음과 같습니다.

chmod g+s our_shared_directory

그렇지 않으면 파일 작성자의 기본 그룹이 사용됩니다(일반적으로 사용자 이름과 동일).

위의 인용문은 다음에서 유래되었습니다.아치 리눅스 위키. 공유 파일과 폴더를 만드는 방법을 잘 모르겠습니다. 사용자라고 말해주세요그리고두번째둘 다 공통 그룹에 속함G. 이제 our_shared_directory모든 사람을 위해 기본적으로 이것을 어떻게 생성합니까?G쓰기 권한이 있나요?

setgid둘째, 왜 on 이 필요합니까 our_shared_directory? 왜 내가 속한 그룹을 고정해야 하나요?상위 디렉토리our_shared_directory?

답변1

폴더 제어를 공유하려는 경우

  • 사용자a
  • 사용자b

사용자 생성

 % sudo adduser a
Adding user `a' ...
Adding new group `a' (1002) ...
Adding new user `a' (1001) with group `a' ...
Creating home directory `/home/a' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: 
Retype new UNIX password: 
....

그리고

% sudo adduser b
Adding user `b' ...

디렉터리 생성

% mkdir our_shared_directory

새 그룹을 만들고 사용자를 추가하세요.

 % sudo addgroup cool_kids
Adding group `cool_kids' (GID 1001) ...
Done.
 % sudo adduser a cool_kids            
Adding user `a' to group `cool_kids' ...
Adding user a to group cool_kids
Done.
% sudo adduser b cool_kids
....

cool_kids디렉토리를 그룹 및 setgid비트 에 속하게 만들기

sudo chmod g+s our_shared_directory
sudo chown -v ubuntu:cool_kids our_shared_directory

우리의 작업을 확인하세요

ls -al
drwxrwsr-x 2 ubuntu cool_kids  40 Feb 29 20:37 our_shared_directory/
      ^ setgid bit is set and group is now "sticky"    

a사용자가 일반 디렉터리에 파일을 생성하면 어떤 일이 발생하는지 확인하세요.

% touch file_made_by_user_a
% ls -al
-rw-rw-r-- 1 a      a           0 Feb 29 20:57 file_made_by_a

이제 사용자가 a파일을 생성합니다.our_shared_directory

% cd our_shared_directory/
% ls -al
-rw-rw-r-- 1 a      cool_kids  0 Feb 29 20:59 another_by_a
                     ^^^^^^ note the group 

중요한

  1. 멋진 아이들그룹자동으로새 파일에 적용

이제 사용자로 전환하세요b

% su b
Password: ...

이제 b는 a가 만든 파일을 편집할 수 있습니다.- another_by_a해당 파일의 기본 모드는 -rw-rw-r--이므로 b정상적으로 편집이 불가능합니다.
하지만 함께

b% vim another_by_a
^ note this means we are user "b"   now  
[make some edit and save]

bb가 그룹에 속하고 새 파일에 cool_kids비트 단위로 적용이 보장되므로 파일**을 수정할 수 있습니다.cool_kidssetgid

ls -al
-rw-rw-r-- 1 a      cool_kids  7 Feb 29 21:03 another_by_a
                               ^ the file is 7bytes - slightly bigger because of changes made by b 

관련 정보