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
相关推荐
pk_xz12345635 分钟前
Shell 脚本中变量和字符串的入门介绍
linux·运维·服务器
小珑也要变强38 分钟前
Linux之sed命令详解
linux·运维·服务器
Lary_Rock3 小时前
RK3576 LINUX RKNN SDK 测试
linux·运维·服务器
云飞云共享云桌面5 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络
Peter_chq5 小时前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端
一坨阿亮6 小时前
Linux 使用中的问题
linux·运维
dsywws7 小时前
Linux学习笔记之vim入门
linux·笔记·学习
幺零九零零8 小时前
【C++】socket套接字编程
linux·服务器·网络·c++
wclass-zhengge8 小时前
Docker篇(Docker Compose)
运维·docker·容器
李启柱8 小时前
项目开发流程规范文档
运维·软件构建·个人开发·设计规范