Linux에서는 이것이 완전히 가능합니다. 하지만 먼저 사용자 그룹 및 ACL(액세스 제어 목록)을 통해 사용자를 관리하는 방법을 이해해야 합니다.
간단한 사용자부터 시작하여 복잡한 ACL(액세스 제어 목록)까지 진행해 보겠습니다. 선택한 Linux 배포판에서 필요한 모든 작업을 수행할 수 있습니다. 이 글의 초점은 사용자 그룹이므로 사용자에 대한 기본 지식은 다루지 않습니다.
데모 목적으로 다음과 같이 가정합니다.
다음 두 개의 사용자 이름을 사용하여 두 명의 새로운 사용자를 만들어야 합니다:
다음 두 개의 사용자 그룹을 만들어야 합니다:
olivia는 편집자 그룹에 속해 있고 nathan은 독자 그룹에 속해 있습니다. 독자 사용자 그룹은 /DATA 디렉터리에 대한 읽기 권한만 갖고, 편집자 사용자 그룹은 /DATA 디렉터리에 대한 읽기 및 쓰기 권한을 모두 갖습니다. 물론 이것은 매우 작은 작업이지만 기본 정보를 제공하고 다른 더 큰 요구 사항에 맞게 이 작업을 확장할 수 있습니다.
Ubuntu 16.04 서버 플랫폼에서 시연할 예정입니다. 이러한 명령은 일반적이며 유일한 차이점은 배포판에서 sudo 명령을 사용하지 않는 경우 이러한 명령을 실행하려면 루트 사용자로 전환해야 한다는 것입니다.
가장 먼저 해야 할 일은 실험을 위해 두 명의 사용자를 만드는 것입니다. useradd 명령을 사용하여 사용자를 생성할 수 있습니다. 단순히 사용자를 생성하는 것이 아니라 사용자와 해당 홈 디렉터리를 생성한 다음 해당 사용자에 대한 암호를 설정해야 합니다.
으아악이제 두 명의 사용자를 생성했는데 /home 디렉터리를 보면 그들의 홈 디렉터리를 찾을 수 있습니다. (-m 옵션을 사용했기 때문에 사용자 생성과 동시에 그들의 홈 디렉터리도 생성할 수 있습니다.
그 후에는 다음 명령을 사용하여 비밀번호를 설정할 수 있습니다.
으아악이제 우리는 두 명의 사용자를 만들었습니다.
이제 독자 및 편집자 사용자 그룹을 생성하고 여기에 사용자를 추가하겠습니다. 사용자 그룹을 생성하는 명령은 다음과 같습니다:
으아악 (LCTT 번역: CentOS 등 일부 Linux 배포판을 사용하는 경우 시스템에 addgroup 명령이 없을 수 있습니다. 동일한 효과를 얻으려면 addgroup 명령을 대체하여 groupadd 명령을 사용하는 것이 좋습니다)
그림 1: 방금 생성한 새 사용자 그룹을 사용할 수 있습니다.
사용자 그룹을 생성한 후 이 두 사용자 그룹에 사용자를 추가해야 합니다. 다음 명령을 사용하여 독자 사용자 그룹에 nathan 사용자를 추가합니다.
으아악다음 명령을 사용하여 편집자 그룹에 올리비아를 추가하세요:
으아악이제 사용자 그룹을 통해 사용자를 관리할 수 있습니다.
/READERS 디렉터리가 있고 독자 그룹의 모든 구성원이 이 디렉터리에 액세스하도록 허용한다고 가정합니다. 먼저 다음 명령을 실행하여 디렉터리가 속한 사용자 그룹을 변경합니다.
으아악다음으로 다음 명령을 실행하여 해당 디렉터리가 속한 사용자 그룹의 쓰기 권한을 취소합니다.
으아악그런 다음 다음 명령을 실행하여 이 디렉터리에 대한 다른 사용자의 액세스 권한을 취소합니다(독자 그룹에 속하지 않은 사용자가 이 디렉터리의 파일에 액세스하는 것을 방지하기 위해).
으아악현재는 디렉토리 소유자(루트)와 사용자 그룹 리더에 속한 사용자만 /READES에 있는 파일에 접근할 수 있습니다.
/EDITORS 디렉터리가 있다고 가정합니다. 사용자 그룹 편집자에게 이 디렉터리에 대한 읽기 및 쓰기 권한을 부여해야 합니다. 이 목적을 달성하려면 다음 명령을 실행해야 합니다:
으아악이때 편집자 사용자 그룹의 모든 구성원은 해당 그룹에 속한 파일에 접근하고 수정할 수 있습니다. 그렇지 않으면 다른 사용자(루트 제외)는 /EDITORS의 파일에 액세스할 수 없습니다.
이 방법의 문제점은 한 번에 하나의 그룹과 하나의 디렉터리만 운영할 수 있다는 것입니다. 여기서 ACL(액세스 제어 목록)이 유용하게 사용됩니다.
现在,让我们把这个问题变得棘手一点。假设你有一个目录 /DATA 并且你想给 readers 用户组的成员读取权限,并同时给 editors 用户组的成员读和写的权限。为此,你必须要用到 setfacl 命令。setfacl 命令可以为文件或文件夹设置一个访问控制表(ACL)。
这个命令的结构如下:
setfacl OPTION X:NAME:Y /DIRECTORY
其中 OPTION 是可选选项,X 可以是 u(用户)或者是 g (用户组),NAME 是用户或者用户组的名字,/DIRECTORY 是要用到的目录。我们将使用 -m 选项进行修改。因此,我们给 readers 用户组添加读取权限的命令是:
sudo setfacl -m g:readers:rx -R /DATA
现在 readers 用户组里面的每一个用户都可以读取 /DATA 目录里的文件了,但是他们不能修改里面的内容。
为了给 editors 用户组里面的用户读写权限,我们执行了以下命令:
sudo setfacl -m g:editors:rwx -R /DATA
上述命令将赋予 editors 用户组中的任何成员读取权限,同时保留 readers 用户组的只读权限。
使用访问控制表(ACL),你可以实现你所需的权限控制。你可以添加用户到用户组,并且灵活地控制这些用户组对每个目录的权限以达到你的需求。如果想了解上述工具的更多信息,可以执行下列的命令:
위 내용은 Linux 시스템의 사용자 그룹을 통해 사용자를 관리하세요!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!