1

Linux 中用户组相关操作

 2 years ago
source link: https://xujinzh.github.io/2022/08/05/linux-group/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Linux 中具有相同角色的用户都会以组的形式来管理。如何将用户添加到组、从组中删除用户等,本篇介绍 Linux 中常用的用户组相关操作。所有命令以 root 身份运行。

查看 Linux 中的所有组和用户组

cat /etc/group

结果大致如下:

jinzhongxu:x:1002:
miniconda:x:1003:root,jinzhongxu

/etc/group 是 Linux 系统中组的配置文件,记录组的信息。除此之外,还有配置文件 /etc/gshadow 保存用户组口令。

每行含义:组名:口令:组标识:组内用户

从上面的结果可以看出,组 miniconda 中包含两个用户,分别是 root, jinzhongxu。同时,组 jinzhongxu 的组内用户为空,其实,同名用户一般不列出。查看用户所属组的方法如下:

id jinzhongxu
uid=1002(jinzhongxu) gid=1002(jinzhongxu) groups=1002(jinzhongxu),27(sudo),1003(miniconda)
groups jinzhongxu
jinzhongxu : jinzhongxu sudo miniconda

创建组和删除组

# 创建组
groupadd science
# 删除组
groupdel science

创建用户时分配组

这里创建新用户 jinzhongxu,-m 表示同时创建用户的登录主目录,即用户的家目录,一般为 /home/jinzhongxu-g science 表示并把该用户添加到 science 组。如果不指定用户组,则将默认创建与用户名同名的用户组。

useradd -m -g science jinzhongxu

使用如下命令能够同时删除用户、用户所有文件,如果添加用户是同时添加了用户同名组,则也会删除该组:

userdel -r jinzhongxu

把用户添加到组

将用户 jinzhongxu 添加(追加 append)到组 science 中:

usermod -a -G science jinzhongxu
# 追加到两个组中
usermod -a -G science,nature jinzhongxu

切换用户组

把用户的第一个组切换到新组,第一个组可以通过上面查看用户组信息获取,第一个用户组就是。切换用户 jinzhongxu 的第一个组到 sudo 的方法如下:

usermod -g sudo jinzhongxu

只保留用户到一个或指定的用户组

如果一个用户被分配到很多个组,想要只保留一个或指定的组或者删除多余的组,可以使用如下的方法:

# 只保留用户 jinzhongxu 到组 science
usermod -G science jinzhongxu
# 保留用户 jinzhongxu 到组 science 和 nature
usermod -G science,nature jinzhongxu

只删除指定的组

如果想要把用户 jinzhongxu 从一个组 science 中删除,可以使用如下的方法:

gpasswd -d jinzhongxu science

注意:当用户只属于一个组的时候,是无法删除组的。因为所有用户必须属于一个组

修改配置文件 /etc/group 从组中删除用户

因为用户组中的用户信息记录在配置文件 /etc/group 中,因此,我们可以通过手动修改该文件删除某个组中的用户,方法就是使用文本编辑工具 vim,删除某一行用户组中后面的需要删除的用户名即可。但,需要重新启动方可生效。

为用户组 science 添加用户 jinzhongxu 为管理员:

gpasswd -A jinzhongxu science

这样,用户 jinzhongxu 就有管理用户组 science 的权限了。可以执行从组 science 中添加和删除用户的操作。

查看更多关于用户或用户组操作可以查看帮助信息

man usermod
man gpasswd

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK