폴더에 작성된 항목이 권한을 상속 받도록 폴더를 설정하는 방법


18

모든 사용자 (이 경우에는 가족 구성원)가 액세스 할 수있는 모든 데이터에 대한 / data 폴더 (실제로 파티션)가 있습니다. 우리 모두는 개별 사용자 계정을 가지고 있으며 종종이 한 PC에서 언제든지 로그인합니다.

누가 새 폴더를 포함하여 누가 파일을 만들든지간에 파일에 대한 액세스 권한을 유지하도록 권한을 설정하려면 어떻게해야합니까? 폴더를 만들면 내 사용자와 그룹이 생겨서 다른 사람이 쓸 수 없습니다.


방문자를 위해. 그냥 원하는 경우 그룹 이름은 상속합니다 chmod -R g+s /parentdir. 참고 : chmod -R 필요한 경우 이전에 실행
Thamme Gowda

1
위의 참고 사항 : -R플래그 chmod는 거의 실행되지 않는 디렉토리 (일부 실행 권한이 거의 필요 없음)와 일반 파일 (실행 권한이 거의 필요하지 않음)을 거의 원하지 않기 때문에 매우 유용하지 않습니다.
Zanna

답변:


17

다른 접근 방식은 파일 사용 권한의 상위 집합 인 액세스 제어 목록을 사용하는 것입니다.

우선, acl ACL 설치 패키지 를 설치해야합니다 :

sudo apt-get install acl

Ubuntu 14.04 이전acl 에는 다음 작업을 수행 할 수 있는 옵션으로 파티션을 마운트 해야합니다. /etc/fstab에서처럼에 추가 될 수 있습니다 .

UUID=<XXXX>  /media/shared  ext4  noatime,acl  0  2

또는 이미 마운트 된 파일 시스템

sudo mount -o remount,acl /media/shared

다음으로, 읽기 / 쓰기 모드에서 공유에 액세스 할 수있는 모든 사용자가 추가 될 새 그룹을 작성해야합니다. 나는 그것을 부른다 usershare. 이미 존재하는 그룹을 사용할 수 있습니다.

sudo addgroup usershare

이제 우리는 사용자를 추가 enzotibsteevc해당 그룹을 :

sudo gpasswd -a steevc  usershare
sudo gpasswd -a enzotib usershare

(다음 로그인에서 유효).

그런 다음 ACL을 추가하여 rwx 그룹 usershare에 대한 권한이 이미있는 모든 파일에 추가합니다./media/shared

sudo setfacl -Rm g:usershare:rwX /media/shared

마지막으로 기본 ACL을 rwxusershare 지금부터 생성 된 모든 파일 에 대한 그룹 권한을/media/shared

sudo setfacl -d -Rm g:usershare:rwX /media/shared

이제 usershare그룹 의 모든 사용자는 아래의 모든 파일에 대한 모든 권한을 갖습니다 /media/shared. 자신과 다른 홈 디렉토리에 대한 각 사용자의 권한은 영향을받지 않습니다.

이 솔루션을 테스트했지만 작동하는 것 같지만 제안 및 수정 사항은 환영합니다.

참고 : 고려 된 디렉토리에서 작성된 새 파일 및 디렉토리에는 usershare그룹에 대한 쓰기 권한이 있지만 폴더에서 복사하거나 이동 한 파일은 원래 권한을 유지합니다. 내가 이해하는 것처럼 사용자가 새로 작성된 디렉토리에 대한 쓰기 액세스 만 필요한 경우에는 문제가되지 않습니다. 그렇지 않으면 손으로 권한을 수정해야합니다. 사용자의 umask를로 정의하여이를 극복하는 방법에 대한 이 답변 을 참조하십시오 002.


잘 모르겠습니다. 홈 폴더에서 공유 폴더로 rw-r-r과 같은 권한을 가진 파일을 테스트하고 복사하고 권한이 usershare그룹 의 기본 rwx로 변경되는지 확인할 수 있습니까?
정렬

@arrange : 아니요, 의도 한대로 작동하지 않습니다. 대답에서 지적하려고합니다. 감사합니다
enzotib

나는 것을 추가 할 수 /etc/fstab/의 remount때문에 단계가 필요하지 않습니다 ext4으로 장착해야합니다 acl기본적으로 활성화 옵션을 선택합니다.
enzotib

8
  1. 폴더를 만듭니다.

    예를 들면 다음과 같습니다.

    mkdir /mnt/family
    

    당신이 그들에게 파티션을 마운트 할 필요가 있다면 ... ext4를 경우 모든 당신이 필요한 /etc/fstabIS

    UUID=xxx    /mnt/family ext4    **rw,exec,defaults,auto,async   0   2**
    
  2. 그룹 myfam을 작성하십시오.

    addgroup myfam
    
  3. 해당 그룹에 일부 사용자 추가

    adduser papa myfam  
    adduser mom myfam
    
  4. 이제 허락하고 허락하십시오.

    변화부터 시작해야한다고 생각합니다 umask .

    12.04의 기본 파일 시스템 권한 및 액세스 권한

    chown -R you.myfam /mnt/family  
    chmod -R g+rwx /mnt/family  
    

    이제 가장 중요합니다. 이 줄 setgid은 해당 폴더에서 생성 한 모든 것을 생성하여 사용자를 소유자 및 그룹으로 설정 myfam합니다. 이를 통해 시스템은 사용자 기본 그룹을 무시할 수 있습니다.

    chmod -R g+s /mnt/family   
    

3

가장 염두에 두어야 할 것은 각 사용자를 다른 모든 사용자 그룹에 추가하는 것입니다.

그런 다음 각 사용자의 umask를 022에서 002로 변경하십시오 /etc/profile.

편집하다

첫 번째 단계는 다음으로 대체 될 수 있습니다. 모든 사용자가 users그룹에 기본 그룹으로 속하게 하십시오.

Edi2

@James_Henstridge가 제안했듯이, 주 디렉토리에서 setgid 비트를 설정하는 것이 편리 할 수 ​​있으므로 생성 된 새 파일과 디렉토리는 사용자와 독립적으로 동일한 그룹을 갖습니다. 이러한 방식으로 사용자 users의 기본 그룹으로 설정하지 않아도됩니다.


/data새 파일이 그룹 소유권을 상속하도록 모든 디렉토리에 setgid 비트를 설정하도록 제안하기 위해 답을 편집 할 수 있습니다 .
James Henstridge

edit3 :) 파일을 /data폴더로 복사 하면 권한이 상속되지 않으므로 gw 권한이있는 이전 파일은 다른 사람이 수정할 수 없습니다. edit4 : users기본 그룹 및 umask0002 로 설정 하는 것은 해당 그룹의 사용자가 새로 만든 파일을 수정할 수 있기 때문에 좋은 생각이 아닙니다.
정렬

@arrange : 당신의 edit4와 관련하여, 나는 users공유에 rw 액세스를 허용 한 사용자들만 그룹으로 묶는 것이 좋습니다 . 그것은 편의상 문제였으며, 또 다른 그룹을 만들 수도 있습니다. edit3에 관해서는 정확하지 않습니다. 복사 된 파일은 폴더 그룹을 얻습니다.
enzotib

@enzotib : 다른 말로 요점을 되풀이하려면 : edit4- users기본 그룹 이고이 그룹에 더 많은 사용자가있는 경우 공유 디렉토리 외부에서도 파일을 수정할 수 있습니다. edit3- 폴더 그룹이 아닌 권한을 작성했습니다 .
정렬

@arrange : 당신의 요점이 맞습니다. 방금 다른 대답을 썼습니다. 당신의 의견을 듣는 것이 흥미로울 수 있습니다.
enzotib

2

이것은 ACL 작업처럼 들립니다. GilesSE Unix 및 Linux 사이트 에서 매우 동일한 문제를 해결하는 데 도움 이되는 철저한 답변을 받았습니다 .


1
작동했습니다! ACL을 사용하여 다른 답변을 보았지만 이것이 공유 디렉토리에서 작성된 새 파일 및 디렉토리의 권한뿐만 아니라 복사하거나 이동 한 디렉토리의 권한도 변경하는 유일한 방법입니다.
ダンボー

0

이해가 안됩니다. 모든 리눅스-리눅스, 리눅스-윈도우, 리눅스-???, 삼바를 사용합니까?, SSH ?, 비둘기?; 어쨌든 다른 사용자를 사용자 이름 (그룹)으로 그룹에 포함시켜야합니다.


하나의 PC에서 여러 사용자입니다. 권한을 기본값으로 유용한 것으로 가져 오는 방법이 있어야합니다.
steevc

0

GROUP PERMISSION 문제에 대한 답변을 검색하는 동안이 질문을 보았습니다. 나는 질문을 읽었으며 이미 질문이 성취하려고하는 것을 구현하고있는 것 같습니다.

그래서 나는 대답을 귀찮게했다.

읽기 및 실행만으로 LAN의 모든 사용자에 대한 공유 설정이 이미 설정되어 있으며 내 계정 만 공유 폴더에 쓸 수있는 권한이 있습니다.

내 LAN에 우분투 12.04 LTS Desktop Edition을 사용하는 다목적 서버가 있습니다. Linux와 Windows의 혼합 클라이언트 시스템이 있습니다.

설정 방법은 다음과 같습니다.

1. 내 서버에는 사용자 계정이 admin있고clientone

admin계정은 우분투를 설치할 때 생성 된 계정이고 계정은 우분투 clientone의 사용자 계정 메뉴를 사용하여 생성 된 계정입니다. 표준 권한 만 있고 관리자 권한이 없으며 users그룹에 추가됩니다 . 물론 터미널 만 사용하여 이러한 작업을 수행 할 수 있습니다. 클라이언트 컴퓨터에 대한 추가 사용자 계정을 추가하십시오.

2. 공유 파티션 / 폴더는 기본값 옵션 만 사용하여 fstab에 자동 마운트됩니다.

3. 네트워크가 작업 그룹 환경에 있고 mylan작업 그룹에 있습니다.

내 LAN의 모든 컴퓨터는 mylan작업 그룹 을 사용하도록 설정되어 있습니다 .

4. 이름이 지정된 공유 폴더에 shared파일이 이미 있습니다. 그래서 아래 명령을 사용하여 소유자와 그룹을 재귀 적으로 변경합니다.

 sudo chown -Rv admin:users /shared

5. 또한 /shared명령을 사용하여 폴더 및 파일 권한을 재귀 적 으로 폴더로 설정합니다.

 sudo chmod -Rv 750 /shared

mylan작업 그룹의 게스트 컴퓨터는 chmod 750을 사용하여 공유에 액세스 할 수 없습니다

당신은 사용할 수 있습니다

 sudo chmod -Rv 755 /shared

users그룹 내의 모든 향후 사용자 계정 에는 읽기 실행 권한 만 있습니다.

6. 내 클라이언트 컴퓨터 하나 (windows xp)에서라는 사용자 계정을 설정했습니다 clientone. 내 우분투 서버에서 생성 한 것과 동일한 사용자 이름과 암호. 두 번째 계정 clienttwo은 우분투 서버에서도 생성되며 두 번째 컴퓨터 (linuxmint 15)에서 사용되는 것과 동일한 사용자 계정입니다.

7. clientone계정 을 사용하여 로그인 할 때 클라이언트 컴퓨터에서 명령을 실행 한 다음 다음을 입력하십시오.

 //192.168.10.254/shared

192.168.10.254내 우분투 서버의 IP 주소, 내 우분투 서버에서 /shared공유되는 폴더

 smb://192.168.10.254/shared

암호를 입력하라는 메시지가 표시되면 사용자 계정 암호를 입력하십시오. Linux 시스템에서 KEYRING을 사용하는 경우 키링 비밀번호도 있습니다.

이것은 내 네트워크 설정에서 나를 위해 작동합니다. 내 서버는 오징어 서버, xbmc 및 mediatomb 서버 및 amahi 서버 역할을하는 다목적 서버입니다.

여전히 설정의 파일 공유 부분을 개선하는 방법을 찾고 있습니다. 위의 지침은 방탄 솔루션이 아니므로 시도해보십시오. 자동 마운트 공유 폴더와 함께 ACL을 테스트하고 시도합니다. 폴더 공유 요구 사항이 복잡해지면 위의 지침에 따라 성공하지 못할 수 있습니다.

추가 된 정보 :

서버에 Amahi Server가 설치되어 있으며 공유 폴더에 액세스하려는 사용자 계정을 만드는데도 사용했습니다. 또한 새 폴더 공유를 만드는 데 사용했습니다.

다른 사용자에게보다 복잡한 사용자 권한을 원할 경우 ACL이 가장 좋습니다.


0

내 이름에는 비디오 파일이 있지만 딸 이름으로 로그인하면 계정에서 비디오 파일을 볼 수 없습니다. 그래서 내가 한 일은 사용자 계정으로 이동하여 잠금을 해제 한 다음 (오른쪽 상단) 계정 유형을 "표준"에서 "관리자 (내 계정))로 변경하면 모든 비디오 파일, 실제로 모든 것이 표시됩니다 그녀의 계정으로 로그인했을 때

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.