시스템의 모든 사람이 공유 폴더에 액세스하지 못하게하고 제한된 사용자 만 액세스 할 수 있기를 원합니다.
어떻게해야합니까?
답변
Morbius1의 우분투 포럼 에 대한이 훌륭한 글에서 발췌.
이런 종류의 일을하는 전형적인 리눅스 방법은 다음과 같습니다.
-
공유 폴더를 작성하십시오.
sudo mkdir /home/Shared
-
새 사용자 그룹을 작성하십시오.
sudo addgroup newgroup
-
공유 폴더의 소유권을 새 그룹으로 변경하십시오.
sudo chown :newgroup /home/Shared
-
해당 그룹에 원하는 사용자를 추가하십시오.
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
1
chmod 명령의 첫 번째 위치에있는 A 는 소유자 이외의 다른 사람이 파일을 삭제하지 못하도록 하는 고정 비트 입니다.
2
은 chmod 명령의 첫 번째 위치는이다 setgid를 비트 해당 폴더의 그룹이 모든 새로운 또는 복사 된 파일을 강제로.
3
chmod 명령의 첫 번째 위치에서 A 는 고정 ( 1
) 및 setgid ( +2
) 비트 의 조합입니다 .
setgid 비트에 관한 한이 모든 것에 한 가지주의 사항이 있습니다. 실제로 생성 된 모든 새 파일과 해당 폴더에 복사 된 파일은 실제로 폴더 그룹을 상속합니다. 그러나 파일이 해당 폴더로 이동되지 않았습니다. 이동 된 파일은 이동 한 곳에서 소유권을 유지합니다. 이 문제를 극복하는 한 가지 방법은 bindfs를 사용하는 것입니다.
마지막으로 그룹 외부의 다른 사람들이 파일을 볼 수 있지만 변경하지 않으려면 chmod
명령 의 마지막 0을 5로 변경하십시오 .
sudo chmod 0775 /home/Shared