user1
두 개의 사용자 계정이 있는 Linux 시스템을 고려하십시오 . 내 홈 디렉터리에 있는 폴더 에 대한 읽기 및 쓰기 액세스 권한을 갖고 user2
싶습니다 .user2
user1
지금까지 두 명의 사용자를 위한 그룹이 생성되었고 두 명의 사용자가 추가되었습니다.
groupadd twousers
usermod -a -G twousers user1
usermod -a -G twousers user2
그런 다음 그룹과 경로를 변경하고 권한을 변경하십시오.
chgrp twousers /home/user1/folder
chmod g+rwx /home/user1/folder
불행하게도 user2
폴더에 여전히 액세스할 수 없습니다 /home/user1/folder
. 이것은 간단해 보이지만 왠지 길을 잃었습니다. 내가 무엇을 놓치고 있나요?
답변1
현재 겪고 있는 문제는 예상된 문제입니다. 실제로 다른 사용자의 폴더 내의 폴더를 공유하려고 합니다 home
. 보안상의 이유로 해당 폴더는 소유자만 액세스할 수 있어야 합니다(및 root
, 그러나 이는 또 다른 이야기입니다).
문제를 해결하려면 잠재적인 상위 폴더가 두 사용자 모두에 대해 동일한 권한을 갖게 될 다른 폴더를 만들어야 합니다(예: ) /data/shared_folder
.
다음은 간단한 단계별 예입니다.
상위 폴더를 만듭니다(필수는 아니지만 예시용임).
# cd / # mkdir data
공유 하위 폴더 만들기:
# cd data # mkdir shared_folder
선택 사항: 이 단계에서는 향후 공유 폴더의 콘텐츠를 에 복사할 수 있습니다
shared_folder
.# cp -p /path/to/folder/* /data/shared_folder/
그룹
shared
과 두 명의 사용자를 만들고 추가합니다bob
.alice
# groupadd shared # usermod -aG shared bob # usermod -aG shared alice
그룹 폴더 소유권을 재귀적으로 변경합니다.
# chgrp -R shared /data
그룹에 읽기, 쓰기 및 실행(이미 실행 가능한 파일에만 해당) 권한을 추가합니다
shared
.# chmod -R g+rwX /data
Bob
이제 폴더 내Alice
에서 원하는 것은 무엇이든 할 수 있지만 .shared
data
사용 사례에 따라 하나의 수준만 있을 수 있지만 이 예에서는 상위 폴더 권한이 파일 시스템의 더 깊은 폴더에 어떻게 영향을 미치고 더 큰 확장성과 세분성을 허용하는지 보여줍니다.
답변2
역설에 대한 답실제로 가장 좋은 답변입니다. 하지만 루트 폴더를 만들어야 하는 이유가 완전히 설명되지 않는 것 같습니다.
공유 폴더가 있는 경우 /home/user1/sharedfolder
해당 폴더에도 액세스해야 합니다 /home/user1
(설명됨). 그러나 이는 /home/user1
user1이 소유한 사용자/그룹이라는 점에 유의해야 합니다 . user2는 user1 그룹에 속해야 합니다(또는 권한이 /home/user1
751 이상이어야 하며 "다른 사용자"에게 실행 권한을 부여하는 것은 좋지 않습니다) . 공유 폴더에 액세스하려면 실행 가능한 액세스 권한이 필요합니다 /home/user1
. /home/user1
필요합니다. 가끔 명령도 프로그램이라는 사실을 잊어버릴 때가 있습니다. "cd"
user2 로 cd
입력 할 수 없으면 /home/user1
어떻게 액세스합니까 /home/user1/sharedFolder
?
따라서 user2가 user1이 자신의 홈 폴더에서 액세스할 수 있는 모든 항목에 액세스할 수 있도록 하지 않는 한 집보다는 "공개 회의" 위치를 사용하는 것이 좋습니다. 내 말은, 이렇게 생각해 보세요. 먼저 액세스 권한을 부여하지 않으면 집에서 무언가를 공유할 수 없다는 것입니다.
보조 하드 드라이브/마운트된 폴더가 있다고 가정합니다. 여러 사용자가 액세스할 수 있도록 하려면 "/mnt/mountedFolder"에 넣은 다음 위의 최상위 답변에 있는 지침을 사용하여 공유 그룹이 MountedFolder를 소유하도록 하는 것이 좋습니다.
컨테이너를 사용할 때 또는 /mnt/mountedFolder
같은 컨테이너 내의 루트 폴더에 매핑할 수 있습니다 . 기본적으로 컨테이너 사용자는 해당 공유 그룹에 속해야 합니다. 컨테이너는 다른 사용자 ID를 가진 새 사용자를 생성할 수 있습니다... 컨테이너의 해당 사용자가 자신의 권한으로 폴더/파일을 생성하는 경우 해당 폴더/파일에 대한 액세스 권한이 있는 사용자는 해당 폴더/파일에 액세스할 수 없습니다. 해당 사용자는 컨테이너화된 사용자 그룹에 속해 있으며 컨테이너화된 사용자는 그룹 권한을 사용하여 파일/폴더를 생성합니다 ./data
/config
/mnt/mountedFolder
g+rwx
이것이 최선의 답변 후에도 이해하지 못하는 사람들에게 더 나은 설명을 추가하기를 바랍니다. 권한을 다루는 것은 단순해 보이지만 사실 고려해야 할 사항이 많기 때문에 답답할 수 있습니다. 권한에 대해 불만이 있을 때는 어리석은 짓을 하지 말고 모든 것에 필요한 것보다 더 높은 권한을 부여하려고 노력하십시오. 뭔가 빠졌을 수도 있습니다.
답변3
user1 그룹에 user2를 추가한 다음 해당 특정 폴더의 그룹 부분에 읽기 및 쓰기 권한을 부여해야 합니다.