Linux에서 다른 사용자에게 폴더 권한을 부여하는 방법은 무엇입니까?

Linux에서 다른 사용자에게 폴더 권한을 부여하는 방법은 무엇입니까?

user1두 개의 사용자 계정이 있는 Linux 시스템을 고려하십시오 . 내 홈 디렉터리에 있는 폴더 에 대한 읽기 및 쓰기 액세스 권한을 갖고 user2싶습니다 .user2user1

지금까지 두 명의 사용자를 위한 그룹이 생성되었고 두 명의 사용자가 추가되었습니다.

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에서 원하는 것은 무엇이든 할 수 있지만 .shareddata

사용 사례에 따라 하나의 수준만 있을 수 있지만 이 예에서는 상위 폴더 권한이 파일 시스템의 더 깊은 폴더에 어떻게 영향을 미치고 더 큰 확장성과 세분성을 허용하는지 보여줍니다.

답변2

역설에 대한 답실제로 가장 좋은 답변입니다. 하지만 루트 폴더를 만들어야 하는 이유가 완전히 설명되지 않는 것 같습니다.

공유 폴더가 있는 경우 /home/user1/sharedfolder해당 폴더에도 액세스해야 합니다 /home/user1(설명됨). 그러나 이는 /home/user1user1이 소유한 사용자/그룹이라는 점에 유의해야 합니다 . user2는 user1 그룹에 속해야 합니다(또는 권한이 /home/user1751 이상이어야 하며 "다른 사용자"에게 실행 권한을 부여하는 것은 좋지 않습니다) . 공유 폴더에 액세스하려면 실행 가능한 액세스 권한이 필요합니다 /home/user1. /home/user1필요합니다. 가끔 명령도 프로그램이라는 사실을 잊어버릴 때가 있습니다. "cd"user2 로 cd입력 할 수 없으면 /home/user1어떻게 액세스합니까 /home/user1/sharedFolder?

따라서 user2가 user1이 자신의 홈 폴더에서 액세스할 수 있는 모든 항목에 액세스할 수 있도록 하지 않는 한 집보다는 "공개 회의" 위치를 사용하는 것이 좋습니다. 내 말은, 이렇게 생각해 보세요. 먼저 액세스 권한을 부여하지 않으면 집에서 무언가를 공유할 수 없다는 것입니다.

보조 하드 드라이브/마운트된 폴더가 있다고 가정합니다. 여러 사용자가 액세스할 수 있도록 하려면 "/mnt/mountedFolder"에 넣은 다음 위의 최상위 답변에 있는 지침을 사용하여 공유 그룹이 MountedFolder를 소유하도록 하는 것이 좋습니다.

컨테이너를 사용할 때 또는 /mnt/mountedFolder같은 컨테이너 내의 루트 폴더에 매핑할 수 있습니다 . 기본적으로 컨테이너 사용자는 해당 공유 그룹에 속해야 합니다. 컨테이너는 다른 사용자 ID를 가진 새 사용자를 생성할 수 있습니다... 컨테이너의 해당 사용자가 자신의 권한으로 폴더/파일을 생성하는 경우 해당 폴더/파일에 대한 액세스 권한이 있는 사용자는 해당 폴더/파일에 액세스할 수 없습니다. 해당 사용자는 컨테이너화된 사용자 그룹에 속해 있으며 컨테이너화된 사용자는 그룹 권한을 사용하여 파일/폴더를 생성합니다 ./data/config/mnt/mountedFolderg+rwx

이것이 최선의 답변 후에도 이해하지 못하는 사람들에게 더 나은 설명을 추가하기를 바랍니다. 권한을 다루는 것은 단순해 보이지만 사실 고려해야 할 사항이 많기 때문에 답답할 수 있습니다. 권한에 대해 불만이 있을 때는 어리석은 짓을 하지 말고 모든 것에 필요한 것보다 더 높은 권한을 부여하려고 노력하십시오. 뭔가 빠졌을 수도 있습니다.

답변3

user1 그룹에 user2를 추가한 다음 해당 특정 폴더의 그룹 부분에 읽기 및 쓰기 권한을 부여해야 합니다.

관련 정보