本教程可以学习如何通过用户组和访问控制列表(ACL)来管理用户。当您需要管理具有多个用户的Linux机器时,有时您需要对这些用户进行比一些基本用户管理工具提供的更多的用户权限管理。当您要管理某些用户的权限时,这个想法尤为重要。比如你有一个目录,一个用户组中的用户可以访问这个目录,具有读写权限,而其他用户组中的用户对这个目录只有读权限。在Linux中,这是完全可能的。但前提是你必须先了解如何通过用户组和访问控制列表(ACL)来管理用户。我们将从简单的用户开始,逐步扩展到复杂的访问控制列表(ACL)。您可以在您选择的Linux发行版上做任何您需要做的事情。本文重点关注用户群体,因此不会涵盖有关用户的基础知识。出于演示目的,我假设您需要使用以下两个用户名创建两个新用户:olivianathan您需要创建以下两个用户组:readerseditorsolivia属于editors用户组,nathan属于readers用户团体。reader用户组对/DATA目录只有读权限,editors用户组对/DATA目录有读写权限。当然,这是一个非常小的任务,但它会为您提供基本信息,您可以扩展此任务以适应您其他更大的需求。我将在Ubuntu16.04服务器平台上进行演示。这些命令都是通用的,区别在于如果你在你的发行版中没有使用sudo命令,你必须切换到root用户才能执行这些命令。创建用户我们需要做的第一件事是为我们的实验创建两个用户。您可以使用useradd命令创建用户。我们不是简单地创建一个用户,而是需要同时创建用户和他们的主目录,然后为他们设置密码。sudouseradd-moliviasuduseradd-mnathan我们现在已经创建了两个用户,如果你查看/home目录,你可以找到他们的主目录(因为我们使用了-m选项,我们可以在用户的??同时创建他们的主目录创建完成后,我们可以通过以下命令为他们设置密码:sudopasswdoliviasudopasswdnathan这样,我们就创建了两个用户。创建用户组并添加用户现在我们将创建读者和编辑器用户组并向其中添加用户。创建用户组的命令是:addgroupreadersaddgroupeditors刚刚创建了一个新的用户组。创建用户组后,我们需要将我们的用户添加到这两个用户组中。我们使用以下命令将nathan用户添加到readers组:sudousermod-a-Greadersnathan使用以下命令将olivia添加到editors用户组:sudousermod-a-Geditorsolivia现在我们可以通过用户组管理用户。向目录中的用户组授予权限假设您有一个目录/READERS并允许读者组的所有成员访问该目录。首先,我们执行以下命令更改目录所属用户组:sudochown-R:readers/READERS接下来执行以下命令撤销目录所属用户组的写权限:sudochmod-Rg-w/READERS然后我们执行下面的命令,收回其他用户对该目录的访问权限(防止任何不在readers组的用户访问该目录下的文件):sudochmod-Ro-x/READERS此时,只目录的所有者(root)和用户组reader用户可以访问/READES中的文件。假设你有一个目录/EDITORS,你需要将这个目录的读写权限授予用户组editors的成员。为了实现这一点,需要执行以下命令:sudochown-R:editors/EDITORSsudochmod-Rg+w/EDITORSsudochmod-Ro-x/EDITORS此时editors用户组的所有成员都可以访问和修改文件。否则其他用户(root除外)无法访问/EDITORS中的任何文件。这种方法的问题是您一次只能处理一个组和一个目录。这就是访问控制列表(ACL)派上用场的地方。使用访问控制列表(ACL)现在,让我们稍微复杂一点。假设你有一个目录/DATA,你想给readers组的成员读权限,同时给editors用户组的成员读写权限。为此,您必须使用setfacl命令。setfacl命令可以为文件或文件夹设置访问控制列表(ACL)。该命令的结构如下:setfaclOPTIONX:NAME:Y/DIRECTORY其中OPTION为可选选项,X可以是u(用户)或g(用户组),NAME为用户或用户组的名称,/DIRECTORY是要使用的目录名称。我们将使用-m选项进行修改。所以,我们给readers用户组增加读取权限的命令是:sudosetfacl-mg:readers:rx-R/DATA现在readers用户组的每个用户都可以读取/DATA目录下的文件,但是不能修改内容里面。为了给editors用户组的用户授予读写权限,我们执行了以下命令:sudosetfacl-mg:editors:rwx-R/DATA保留readers用户组的读取权限Read-onlyaccess。更多权限控制使用访问控制列表(ACL),您可以实现您需要的权限控制。您可以将用户加入用户组,灵活控制这些用户组对各个目录的权限,满足您的需求。有关上述工具的更多信息,请执行以下命令:manusraddmanaddgroupmanusermodmansefaclmanchownmanchmod
