CentOS 7基础操作14_Linux组账号管理

在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
相关推荐
运维有小邓@19 小时前
Active Directory服务账户是什么?
运维·服务器·网络
HIT_Weston19 小时前
84、【Ubuntu】【Hugo】搭建私人博客:文章目录(三)
linux·运维·ubuntu
moxiaoran575320 小时前
使用docker安装myql 8.0
运维·docker·容器
qq_54702617920 小时前
Linux 常用快捷键及文本编辑器
linux·运维·服务器
埃伊蟹黄面21 小时前
磁盘级文件系统核心原理解析
linux·文件
醇氧21 小时前
【Linux】 安装 Azul Zulu JDK
java·linux·运维
一直跑1 天前
查看显卡驱动版本,查看哪个用户使用显卡(GPU)进程
linux·服务器
滴水之功1 天前
Windows远程桌面(非图形化界面)连接Ubuntu22.04
linux
借你耳朵说爱你1 天前
在Linux上挂载磁盘
linux
小成202303202651 天前
Linux高级
linux·开发语言