Linux

Linux 系统中 通过 用户组 管理用户

如何通过用户组和访问控制表 (ACL) 来管理用户.

新建两个用户:

olivia

nathan

新建两个用户组:

readers

editors

olivia 属于 editors 用户组, 而 Nathan 属于 readers 用户组. 

reader 用户组 对 /DATA 目录 只有读的权限,  而 editors 用户组则对 /DATA 目录 同时有读和写的权限. 

  1. 创建用户

创建两个用户, 用 useradd 命令创建, 并同时创建用户和属于他们的家目录, 之后设置密码.

sudo useradd -m olivia
sudo useradd -m nathan

创建两个用户, 在 /home 目录, 多了两个 家目录.

之后, 设置密码:

sudo passwd olivia
sudo passwd nathan

创建完成


创建用户组并添加用户

 创建两个用户组, 并添加用户

addgroup readers
addgroup editors

在centos 中 使用 groupadd 命令

添加 用户 到 用户组. 用一下命令

sudo usermod -a -G readers nathan

将olivia 添加到 editors 用户组中:

sudo useradd -a -G editors olivia

给用户组 授予目录权限

假设 有 /READERS 且 允许 readers 用户组 的 所有成员 访问这个目录. 执行以下命令来更改目录所属用户组:

sudo chown -R :readers /READERS

 收回目录所属用户组的写入权限:

sudo chmod -R g-w /READERS

收回其他用户对这个目录的访问权限(防止任何不在readers 组中的用户访问这个目录):

sudo chmoe -R o-x /READERS

只有目录所有着 (root) 和用户组 readers 中的用户可以访问 /READERS 中的文件:

假设你有目录 /EDITORS, 你需要给用户组 editors 里的成员 这个目录的读和写的权限.

sudo chown -R :editors /EDITORS
sudo chmod -R g+w /EDITORS
sudo chmod -R o-x /EDITORS

editors 用户组的所有成员都可以访问和修改 其中的文件.

除此之外 其他用户 (除了root)  无法访问 /EDITORS 中任何文件

缺点: 一次只能操作一个组和一个目录

使用访问控制表 (ACL) 就更加方便.

使用访问控制表(ACL)

复杂点, 假设有一目录 /DATA 并且 你想给 readers 用户组的成员读取权限, 并同时 给 editors 用户组的成员读和写的权限. 

必须要用到 setfacl 命令. setfacl 命令可以为文件和文件夹设置一个访问控制表.

setfacl OPTION X:NAME:Y /DIRECTORY

其中 OPTION 是可选选项, X可以是 u (用户) 或是 g (用户组) , NAME 是 用户 或 用户组的名字, /DIRECTORY 是要用到的目录. 使用 -m 选项进行修改. 

因此, 给readers 用户组 添加读取权限命令:

sudo setfacl -m g:readers:rx -R /DATA

赋予 editors 用户组 中任何成员读取权限, 同时保留 readors 用户组 只读权限.

更多的权限控制

使用访问控制表(ACL),你可以实现你所需的权限控制。你可以添加用户到用户组,并且灵活地控制这些用户组对每个目录的权限以达到你的需求。如果想了解上述工具的更多信息,可以执行下列的命令:

  • man usradd
  • man addgroup
  • man usermod
  • man sefacl
  • man chown
  • man chmod
原文地址:https://www.cnblogs.com/firestar277/p/14656624.html