用户组添加、删除
本文档将介绍如何在集群上添加用户组,自动将用户添加到组中,以及如何删除用户组。下面的操作需要root或者sudo用户进行操作。
添加用户组
创建用户组
用户可以通过下面的命令,创建需要的用户组:
shell
groupadd <group_name> # group_name为需要创建的用户组
groupadd <group_name> # group_name为需要创建的用户组
手动添加用户到组中
创建用户组后,可以通过下面的命令来将用户添加到用户组中:
shell
usermod -aG <group_name> <username> # group_name为要添加的组,username为要添加到组中的用户
usermod -aG <group_name> <username> # group_name为要添加的组,username为要添加到组中的用户
例如需要将test用户添加到group1,group2两个组中,可以执行如下的命令:
shell
usermod -aG group1,group2 test
usermod -aG group1,group2 test
将用户从组中移除
如果需要将用户从已经添加的组中移除,可以执行如下的命令:
shell
gpasswd -d <username> <group_name> # username为要从group_name组中移除的用户
gpasswd -d <username> <group_name> # username为要从group_name组中移除的用户
查看用户所属的组
可以通过下面的命令查看用户所归属的所有组:
shell
groups <usernmae>
groups <usernmae>
例如,如下可以看到sonmi用户属于sonmi及docker两个组:
(base) [root@sonmi ~]# groups sonmi
sonmi : sonmi docker
(base) [root@sonmi ~]# groups sonmi
sonmi : sonmi docker
自动添加用户到组中
有时候需要在创建用户的时候自动将用户添加到特定的组中,可以在 /etc/shadow-maint/useradd-post.d/ 目录下编辑用户后添加执行脚本:
shell
mkdir /etc/shadow-maint/useradd-post.d/ -p
cat > /etc/shadow-maint/useradd-post.d/add-groups.sh <<EOF
#!/bin/bash
usermod -a -G docker \$SUBJECT
EOF
chmod u+x /etc/shadow-maint/useradd-post.d/add-groups.sh
mkdir /etc/shadow-maint/useradd-post.d/ -p
cat > /etc/shadow-maint/useradd-post.d/add-groups.sh <<EOF
#!/bin/bash
usermod -a -G docker \$SUBJECT
EOF
chmod u+x /etc/shadow-maint/useradd-post.d/add-groups.sh
在上面的示例中,添加该脚本后,每次添加用户时不需要指定用户组,用户将在创建后自动加入docker组中。可以根据需要自行修改要加入的组。
删除用户组
如果需要删除特定用户的组,可以通过如下的命令进行操作:
shell
groupdel <group_name> # group_name为需要删除的组名
groupdel <group_name> # group_name为需要删除的组名
用户组共享文件
有时候需要将特定目录共享给某个用户组的所有用户使用,可以按下面的方式进行操作:
shell
mkdir -p <path> # path为创建的共享给用户组使用的目录路径
chown -R :<group> <path> # group为目录共享给的用户组
# 授权方式1,将要共享给用户组的文件夹授权775权限,保证用户组有读写跟执行权限
chmod -R 775 <path>
# 授权方式2,设置gid位,让共享目录的子目录同时集成父目录的组权限
chmod -R 2775 <path>
mkdir -p <path> # path为创建的共享给用户组使用的目录路径
chown -R :<group> <path> # group为目录共享给的用户组
# 授权方式1,将要共享给用户组的文件夹授权775权限,保证用户组有读写跟执行权限
chmod -R 775 <path>
# 授权方式2,设置gid位,让共享目录的子目录同时集成父目录的组权限
chmod -R 2775 <path>
例如创建 /share/data/project1 项目目录并共享给 project1 组使用:
shell
mkdir -p /share/data/project1
chown -R :project1 /share/data/project1
chmod -R 2775 /share/data/project1
mkdir -p /share/data/project1
chown -R :project1 /share/data/project1
chmod -R 2775 /share/data/project1