管理用户和组

一:了解用户和用户组的

1:用户的作用

一个用户登录了linux,就会有相对应的文件,属于这个用户的资源,文件和目录以及进程都属于这个用户,要使用linux就必须使用账号来登录,使用这些资源,每个用户都有不同的权限,在这个权限内完成相对应的任务

2:用户的分类

超级用户(root)

uid为0,也称为管理用户,拥有对整个linux的管理权限,对系统有绝对的控制权,能对系统做一切操作

系统用户

uid1~999,也称为虚拟用户,无法用来登录系统,也不能删除,因为一但删除,有些用户运行的服务,就不能正确的运行,会导致系统的问题

普通用户

每个用户都有对应的用户编号(uid),用来唯一标识一个用户,uid1000~60000

3:用户组的分类

每个用户至少隶属于一个用户组,可以对用户组中的用户进行集中管理,进行权限的划分,提升了效率

每个用户都有对应的组编号(gid),用来唯一标识一个用户组,用户组有2种,主要组(初始组)和附加组

主要组(初始组)

每个用户的主要组只有一个,一般在创建用户的时候,都会创建一个主要组最为这个用户的主要组(名字相同)

附加组

用户除了加入主要组外,还可以加入多个附加组

 

二:理解用户账号文件:/etc/passwd与/etc/shadow

Linux系统会把全部用户信息保存为普通文本文件,/etc/passwd和/etc/shadow,系统上大多数用户可以读取/etc/passwd,但是只有root用户可以修改该文件,而/etc/shadow,除了超级用户外其余的都不能读取

1:/etc/passwd

是系统的用户的配置文件

#查看该文件的信息
[root@localhost /]# vim /etc/passwd
q7:x:1000:1000:q7:/home/q7:/bin/bash

每个字段的含义

用户名 用户的登录的账号名称
加密口令 该字段用x替代,真正的密码在/etc/shadow
uid 用户的系统编号,
gid 用户组的编号,在/etc/group
用户的描述信息(注释) 关于用户的描述信息
家目录 用户登录后的家目录
默认登陆的shell 用户使用的shell,默认为/bin/bash

2:/etc/shadow

因为/etc/passwd文件所有用户都能读取,有一定的风险,所以将用户的密码信息从中分离出来,经过加密存入/etc/shadow中,又被成为影子文件

#查看文件信息
[root@localhost /]# vim /etc/shadow
user1:!!:19650:0:99999:7::: 

每个字段的含义以及chage命令的选项

用户名 用户登录时的账户名
加密口令 *:非登录用户,!!表示没有设置密码,!表示用户的密码被锁定
最后一次修改时间(-d) 1970年至上次修改密码的天数(yyyy-mm-dd)
最小修改日期的间隔(m) 多少天后可以修改密码(dd)
最大修改日期的间隔(M) 多少天后必须修改密码(dd)
密码过期前的警告天数(W) 密码过期前多少天提醒改密码(dd)
账户禁用宽限日期(I) 密码过期多少天后禁用账户(dd)
账户被禁用日期(E) 1970年至账号被禁用的天数,有效日期,过了就没了,若值为空,则永久可用(yyyy-mm-dd)
保留字段 用于功能扩展

三:理解用户组账号文件

用户组存储信息存储在用户组文件中

1:/etc/group

这个文件是系统用户组的配置文件,存储了系统中所有用户组的基本信息

#查看该文件
[root@localhost /]# vim /etc/group
q7:x:1000:q7 

每个字段的含义

组名 用户组的名字
组口令 用x来表示,真正的在/etc/gshadow
GID 用户组的编号,唯一标识用户组的
该用户组的成员列表 有多个,用逗号隔开(这个用户的附加组)

注意:若用户组A是用户a的初始组,则用户a在用户组A的成员列表中不会显示,因为(用户组A显示的是附加组)

2:/etc/gshadow

因为/etc/group文件所有人可以读取,不安全,组的加密口令就分离出来了,存放在/etc/gshadow,该文件只允许root用户读取

#查看该文件
[root@localhost /]# vim /etc/gshadow
q7:!!::q7 

每个字段的含义

组名 用户组的名字
组口令 加密后的组口令
组的管理员 用户组的编号
该用户组的成语列表 有多个,用逗号隔开(这个用户的附加组)

四:管理用户账号

1:新建用户 useradd命令

创建用户就是在/etc/passwd中增加一条记录

格式如下:

useradd 选项 用户 

常见的选项如下:

-u 指定用户的uid,不能重复,必须大于1000
-g 指定用户所属的初始组或者GID
-G 指定用户的附加组或者GID
-p 指定用户的加密口令
-d 指定用户的主目录,如果此目录不存在,则系统自动创建主目录
-e 指定用户被禁用日期,yyyy-mm-dd
-f 设置账号过期多少天后,账户被禁用
-s 指定用户登录的shell,默认是/bin/bash

题目:创建一个用户user7,uid为1007,附加组为root,用户的主目录为/home/user7,用户的shell为/sbin/nologin

[root@localhost /]# useradd -u 1007 -G root -d /home/user7 -s /sbin/nologin user7
#一般来说,创建了一个用户,就要立即给他添加一个密码
passwd user7
#查看/etc/passwd文件中新增加一条的记录
[root@localhost /]# vim /etc/passwd
user7:x:1007:1007::/home/user7:/sbin/nologin

2:用户切换查看信息(su命令)

使用su - 用户就能实现用户之间的切换了

[root@localhost /]# su - q7
[q7@localhost ~]$ 
ctrl + d 退出

3:维护用户的信息 id usermod passwd 命令

当新建的用户需要修改某些信息的时候,就需要使用usermod,passwd这些命令

1)id命令

#id 用来显示uid ,初始组和附加组
[root@localhost /]# id root
uid=0(root) gid=0(root) 组=0(root)
[root@localhost /]# 

2)usermod命令  

用来修改用户的属性,格式如下

usermod 选项 用户名 

常见的选项如下:

-u 指定用户的uid
-g 指定用户的主要组或者Gid
-G 指定用户的附加组
-s 指定用户的shell
-d 指定用户的家目录,如果没有,就自动创建
-e 指定账户被禁用日期,yyyy-mm-dd
-L 锁定用户,无法登录系统
-U 解锁用户,能登陆系统

3:passwd命令

用来设置密码或者修改密码的,格式如下

passwd 选项 用户名 

常见的选项

-l 锁定密码,无法登录系统
-u 解锁密码,能登录系统
-S 查看用户密码的状态
#设置q7用户的密码被锁定
[root@localhost /]# passwd -l q7
锁定用户 q7 的密码 。
passwd: 操作成功
[root@localhost /]# 
#查看/etc/shadow中密码有一个!代表用户密码被锁定
q7:!::0:99999:7:::

4:删除用户 userdel命令

删除用户使用userdel命令

格式如下:

userdel -r 用户名

如果不加上-r选项的话,、/home和/var/spool/mail中有该用户的信息,没有彻底的删除干净

一般都带上-r选项

五:管理用户组账户

1:新建用户组 groupadd命令

用于创建一个用户组 格式如下:

groupadd -g 用户组名称

-g 代表着新建用户组的gid

eg:创建一个qq的用户组,gid为2000

[root@localhost /]# groupadd -g 2000 qq

2:维护用户组及其成员:groups,groupmod,gpasswd命令

1)groups命令 

用来查询用户所在的主要组和附加组

[root@localhost /]# groups q7
q7 : q7

2)groupmod命令

用于修改用户组的相关信息,格式如下:

groupmod 选项 用户组
-g 指定修改的gid
-n(name) 指定修改用户组的名字

eg:修改用户组qq的gid为3000,名字改为test

[root@localhost /]# groupmod -g 3000 -n test qq

3)gpasswd命令

使用useradd创建用户时,会创建一个主要组,这时如果要将用户添加到附加组中去,使用gpasswd命令,可以添加到附加组中去

格式如下:

gpasswd 选项 用户 用户组
-a 将用户添加到这个组中来
-d 将用户移除这个组
-r 取消组的密码
-A 给组指派管理员

eg:将用户q7添加到root组中去

[root@localhost /]# gpasswd -a q7 root
正在将用户“q7”加入到“root”组中
[root@localhost /]# 

3:删除用户组 groupdel

格式如下:

groupdel 用户组

如果删除的是主要组,就要现将这个组的用户删除掉,就可以了

#直接移除(不能删除掉)
[root@localhost /]# groupdel user7
groupdel:不能移除用户“user7”的主组
[root@localhost /]# 
#删除该用户
[root@localhost /]# userdel -r user7
[root@localhost /]# groupdel user7
groupdel:“user7”组不存在
[root@localhost /]# vim /etc/group
[root@localhost /]# 

 

posted @ 2023-10-20 20:38  q_7  阅读(25)  评论(0编辑  收藏  举报