在5.1.2节学习了管理Linux操作系统中用户账号的相关命令,接下来继续学习组账号管理的相关命令。组账号管理命令的使用相对较少,主要包括groupadd、groupdel、gpasswd等。
对于用户账号来说.对应的组账号可分为基本组和附加组两种类型,每一个用户账号可以是多个组账号的成员,但是其基本组账号只有--个。在/etc/passwd文件中第4字段记录的即为该用户的基本组GID号。而对于该用户还属于哪些附加组.则需要在对应组账号的文件中体现.
1、组账号文件
与组账号相关的配置文件也有两个,分别是/etc/group 和/etc/gshadow。前者用于保存组账号名称.GID号、组成员等基本信息,后者用于保存组账号的加密密码字串等信息(但是很少使用到).某一个组账号包含哪些用户成员,将会在group文件内最后一个字段中体现出来(基本组对应的用户账号默认可能不会列出),多个组成员之间使用“.”(逗号)分隔。例如,执行以下操作可分别获知root组包括哪些用户成员.哪些组中包含root 用户。
[root@node1 ~]# grep "^root" /etc/group ##检索root组包括哪些用户
root:x:0:webadmin
[root@node1 ~]# grep "root" /etc/group ##检索哪些组包括root用户
root:x:0:webadmin
2、添加、管理、删除组账号
1)groupadd命令——添加组账号
使用groupedd命令可以添加一个组账号,需要指定GD号时,可以使用“-g”选项。例如,执行如下的“graupadd class01”命令可以添加-一个名为class01的组账号.
[root@node1 ~]# groupadd class01
[root@node1 ~]# tail -1 /etc/group
class01:x:1004:
2)gpasswd命令——添加.设置.删除组成员
gpesswd命令本来是用于设置组账号的密码,但是该功能极少使用.实际上该命令更多地用来管理组账号的用户成员。需要添加.删除成员用户时.可分别使用“-a”和“-d”选项。例如,以下操作分别用于向root组中添加成员用户mike、删除成员用户webmaster 。
[root@node1 ~]# useradd mike
[root@node1 ~]# gpasswd -a mike root
正在将用户“mike”加入到“root”组中
[root@node1 ~]# groups mike
mike : mike root
如果需要同时指定组账号的所有成员用户,可以使用“-M”选项。例如,以下操作可以指定组账号adm中的成员为root,adm、daemon,webmaster、mike这五个用户,.
[root@node1 ~]# gpasswd -M root,adm,daemon,webmaster,mike adm
[root@node1 ~]# grep "^adm" /etc/group
adm:x:4:root,adm,daemon,webmaster,mike
3)groupdel命令——删除组账号
当系统中的某个组账号已经不再使用时,可以使用groupdel 命令将该组账号删除。而添加指定的组账号名称作为参数。例如,若要删除组账号class01,可以执行以下操作.
[root@node1 ~]# groupdel class01
3、查询账号信息
在用户管理工作中,虽然直接查看用户账号.组账号的配置文件也可以查询相关信息,但是并不是很直观。在Linux操作系统中,还可以使用几个常用的查询命令工具,如id,groups、finger、 users等,本小节中主要介绍几个查询命令的使用。
1)groups命令——查询用户账号所属的组
使用groups 命令可以查看指定的用户账号属于哪些组.例如,以下操作分别显示当前用户(root)和daencn 用户所属的组账号信息。
[root@node1 ~]# groups
root
[root@node1 ~]# groups daemon
daemon : daemon adm
2)id——查询用户账号的身份标识
使用id命令可以快速查看指定用户账号的UID、GID等标识信息,例如,执行如下的“id root"命令可以查看root账的用户ID号.组lD号,以及所在的附加组D号。在输出结果中, gid和groups部分第一个组账号对应该用户的基本组,groups部分的其他组账号为该用户的附加组。
[root@node1 ~]# id root
uid=0(root) gid=0(root) 组=0(root),4(adm)
3)finger——查询用户账号的登录属性
使用finger命令可以查询指定的用户账号的登录属性等详细信息.包括登录名称.完整名称.宿主目录、登录Shell等。例如,执行如下的“finger root”命令可以显示root账号的详细信息。若系统中没有该命令,可以从系统光盘镜像的Packeges目录下找到finger-0.17-52.el7.x86_64.rpm进行安装。
[root@node1 ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@node1 ~]# rpm -ivh /mnt/Packages/finger-0.17-52.el7.x86_64.rpm
警告:/mnt/Packages/finger-0.17-52.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:finger-0.17-52.el7 ################################# [100%]
[root@node1 ~]#
[root@node1 ~]# finger root
Login: root Name: root
Directory: /root Shell: /bin/bash
On since 二 6月 11 15:00 (CST) on pts/0 from 192.168.8.1
6 seconds idle
No mail.
No Plan.
[root@node1 ~]#
4)w命令——查询当前主机的用户登录情况
使用w命令可以查询当前主机中的用户登录情况.列出登录账号名称.所在终端.登录时间.来源地点等信息.具体操作如下:
[root@node1 ~]# w
15:17:12 up 17 min, 1 user, load average: 0.04, 0.04, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.8.1 15:00 0.00s 0.12s 0.00s w