飘易博客(作者:Flymorn)
订阅《飘易博客》RSS,第一时间查看最新文章!
飘易首页 | 留言本 | 关于我 | 订阅Feed

Linux用户组(Group)和用户(User)的常用管理操作

Author:飘易 Source:飘易
Categories:Linux技术 PostTime:2020-12-31 21:27:47
正 文:

在 Linux 中,增加用户或改变用户的组属性可以使用 useradd 或者 usermod 命令。useradd 增加一个新用户或者更新默认新用户信息。usermod 则是更改用户帐户属性,例如将其添加到一个已有的组中。


在 Linux 用户系统中存在两类组。第一类是主要用户组,第二类是附加用户组。所有的用户帐户及相关信息都存储在 /etc/passwd 文件中,/etc/shadow 和 /etc/group 文件存储了用户信息。


一、useradd 示例 – 增加一个新用户到附加用户组

新增加一个用户并将其列入一个已有的用户组中需要用到 useradd 命令。如果还没有这个用户组,可以先创建该用户组。


命令参数如下:

useradd -G {group-name} username

例如,我们要创建一个新用户 cnzhx 并将其添加到用户组 developers 中。首先需要以 root 用户身份登录到系统中。先确认一下是否存在 developers 这个用户组,在命令行输入:

# grep developers /etc/group

输出类似于:

developers:x:1124:

如果看不到任何输出,那么就需要先创建这个用户组了,使用 groupadd 命令:

# groupadd developers

然后创建用户 cnzhx 并将其加入到 developers 用户组:

# useradd -G developers cnzhx

为用户 cnzhx 设置密码:

# passwd cnzhx

为确保已经将该用户正确的添加到 developers 用户组中,可以查看该用户的属性,使用 id 命令:

# id cnzhx

输出类似于:

uid=1122(cnzhx) gid=1125(cnzhx) groups=1125(cnzhx),1124(developers)

前面命令中用到的大写的 G (-G) 参数就是为了将用户添加到一个附加用户组中,而同时还会为此用户创建一个属于他自己的新组 cnzhx。如果要将该用户同时增加到多个附加用户组中,可以使用英文半角的逗号来分隔多个附加组名(不要加空格)。例如,同时将 cnzhx 增加到 admins, ftp, www, 和 developers 用户组中,可以输入以下命令:

# useradd -G admins,ftp,www,developers cnzhx


二、useradd 示例 – 增加一个新用户到主要用户组

要增加用户 cnzhx 到组 developers,可以使用下面的指令:

# useradd -g developers cnzhx
# id cnzhx

输出类似于:

uid=1123(cnzhx) gid=1124(developers) groups=1124(developers)

请注意如前面的示例的区别,这里使用了小写字母 g (-g)作为参数,此时用户的主要用户组不再是 cnzhx 而直接就是 developers


小写字母 g (-g)将新增加的用户初始化为指定为登录组(主要用户组)。此组名必须已经存在。组号(gid)即是此已有组的组号。


三、usermod 示例 – 将一个已有用户增加到一个已有用户组中

将一个已有用户 cnzhx 增加到一个已有用户组 apache 中,使此用户组成为该用户的附加用户组,可以使用带 -a 参数的 usermod  指令。-a 代表 append, 也就是将用户添加到新用户组中而不必离开原有的其他用户组。不过需要与 -G 选项配合使用

# usermod -a -G apache cnzhx

如果要同时将 cnzhx 的主要用户组改为 apache,则直接使用 -g 选项:

# usermod -g apache cnzhx

如果要将一个用户从某个组中删除,则

gpasswd -d user group

但是这个时候需要保证 group 不是 user 的主组。



四、组管理汇总

1、用户组管理

groupadd 组名 添加用户组

   -g :添加组时指定组ID

groupmod 组名 修改用户组信息

   -n :修改组名

   -g :修改组ID

groupdel 组名 删除组

*如果一个组下有用户,那么这个组是无法删除的。


2、用户管理

useradd [参数] 用户名  添加用户

   -g  组名     指定所属组

   -d  目录     指定用户主目录


*添加用户时,如果不指定组,系统会创建一个与用户同名的组。


usermod [参数] 用户名

   -c 注释     修改备注信息

   -l 用户名   修改用户名

   -d 目录     修改用户主目录

   -g 组名     修改用户组


userdel [参数] 用户名

   -r    删除用户主目录


3、密码管理

passwd [选项] 用户名

   -S    查看用户密码状态

   -l    锁定用户的密码(禁止登陆)

   -u    解除用户密码的锁定

   -d    删除用户密码


一个用户登录后默认的身份是它的主组身份,可以使用newgrp对它所属组身份进行切换,前提是必须也属于这个组。当前用户身份切换到哪个组,创建的文件就是属于哪个组。



参考资料:

Linux系统修改文件读写权限chmod、所有者或组chown

Linux 中将用户添加到组的指令

Linux用户和组管理常用命令

作者:飘易
来源:飘易
版权所有。转载时必须以链接形式注明作者和原始出处及本声明。
上一篇:加密算法DES、3DES、AES、RSA、MD5、sha1区别及前后端加密实践
下一篇:Fiddler配合Proxifier抓包PC客户端HTTPS明文数据
0条评论 “Linux用户组(Group)和用户(User)的常用管理操作”
No Comment .
发表评论
名称(*必填)
邮件(选填)
网站(选填)

记住我,下次回复时不用重新输入个人信息
© 2007-2019 飘易博客 Www.Piaoyi.Org 原创文章版权由飘易所有