다른 사용자와 디렉토리를 공유하려면 어떻게해야합니까? 액세스하지 못하게하고 제한된

시스템의 모든 사람이 공유 폴더에 액세스하지 못하게하고 제한된 사용자 만 액세스 할 수 있기를 원합니다.

어떻게해야합니까?



답변

Morbius1의 우분투 포럼 에 대한이 훌륭한 글에서 발췌.

이런 종류의 일을하는 전형적인 리눅스 방법은 다음과 같습니다.

  1. 공유 폴더를 작성하십시오.

    sudo mkdir /home/Shared
    
  2. 새 사용자 그룹을 작성하십시오.

    sudo addgroup newgroup
    
  3. 공유 폴더의 소유권을 새 그룹으로 변경하십시오.

    sudo chown :newgroup /home/Shared
    
  4. 해당 그룹에 원하는 사용자를 추가하십시오.

    sudo adduser user1 newgroup
    

모든 사용자에 대해 반복하십시오.

이제 해당 사용자가 수행 할 수있는 작업에 대한 결정을 내 렸습니다.

  • [a] 모든 그룹 사용자는 폴더에 추가하거나 폴더에서 삭제할 수 있으며 서로 파일을 읽고 쓸 수는 없습니다.

    sudo chmod 0770 /home/Shared
    
  • [b] 위와 동일하지만 파일 소유자 만 파일을 삭제할 수 있습니다.

    sudo chmod 1770 /home/Shared
    
  • [c] 모든 그룹 사용자는 폴더에 추가하거나 폴더에서 삭제하고 서로의 파일을 읽고 쓸 수 있습니다.

    sudo chmod 2770 /home/Shared
    
  • [d] 파일 소유자 만 파일을 삭제할 수 있다는 점을 제외하고 [c ] 와 동일 합니다.

    sudo chmod 3770 /home/Shared
    

1chmod 명령의 첫 번째 위치에있는 A 는 소유자 이외의 다른 사람이 파일을 삭제하지 못하도록 하는 고정 비트 입니다.

2은 chmod 명령의 첫 번째 위치는이다 setgid를 비트 해당 폴더의 그룹이 모든 새로운 또는 복사 된 파일을 강제로.

3chmod 명령의 첫 번째 위치에서 A 는 고정 ( 1) 및 setgid ( +2) 비트 의 조합입니다 .

setgid 비트에 관한 한이 모든 것에 한 가지주의 사항이 있습니다. 실제로 생성 된 모든 새 파일과 해당 폴더에 복사 된 파일은 실제로 폴더 그룹을 상속합니다. 그러나 파일이 해당 폴더로 이동되지 않았습니다. 이동 된 파일은 이동 한 곳에서 소유권을 유지합니다. 이 문제를 극복하는 한 가지 방법은 bindfs를 사용하는 것입니다.

마지막으로 그룹 외부의 다른 사람들이 파일을 볼 수 있지만 변경하지 않으려면 chmod명령 의 마지막 0을 5로 변경하십시오 .

sudo chmod 0775 /home/Shared