Linux系统的用户管理详解

什么是用户

用户是操作者在系统中的身份;
用户是系统最底层的安全机制的一部分;
用户在系统中以字符和文件的形式存在。

用户的查看
(1). 查看当前用户

命令   whoami
在这里插入图片描述
执行 whoami 命令之后,系统会把当前用户的名称显示出来。

(2). 系统中用户的查看
命令   id
功能: 查看指定用户的id信息
常用参数:

  • id -u   查看用户的uid
  • id -g   查看用户的gid
  • id -G   查看用户所在的所有组的id
  • id -a   查看用户所有信息
  • id -un   查看用户名字
  • id -gn   查看用户初始组名称
  • id -Gn   查看用户所在所有组名称

示例操作:
id 后名不加用户的话,查看的就是当前用户的信息;id 后加用户名时,就查看的是指定用户的信息;id 后加的用户不存在时就会报错,如下
在这里插入图片描述
下面看一下其它参数的操作以及格式:
在这里插入图片描述


用户在系统中的存储方式
Linux系统中的用户是在几个固定的文件中存储的,用户在文件中又是以字符串的形式记录的。一般存储用户信息的文件有以下几个:

(1). /etc/passwd   用户信息文件
在这里插入图片描述
文件中每一列代表的含义为:
用户名字:用户密码:用户uid:用户gid:用户说明:用户家目录:用户使用的shell

(2). /etc/group   用户组信息文件
在这里插入图片描述
文件中每一列代表的含义:
用户组名称:用户组密码:用户组id:附加用户成员

(3). /etc/shadow   用户认证信息文件(只有root用户有访问权限)
在这里插入图片描述
文件中每一列代表的含义:
用户名称:密码:密码使用天数:最短有效期:密码最长有效期:密码警告期:密码非活跃期:密码到期日:

(4). /etc/skel/.*   用户的基本信息配置(默认开启shell的配置,用户的骨文件)

(5). /home/username   用户的家目录
在这里插入图片描述


用户新建以及用户管理的命令
(1). 新建用户命令

useradd   新建用户
可加参数:

  • useradd -u   指定用户的uid
  • useradd -g   指定用户初始组,这个组一定要存在
  • useradd -G   指定附加组,组同样要存在
  • useradd -c   用户说明
  • useradd -d   指定用户家目录
  • useradd -s   指定用户使用的shell,shell种类参看/etc/shells

(2). 删除用户
userdel -r   删除用户

(3). 新建组的命令
groupadd   建立用户组
groupadd -g   新建组,-g表示指定用户组的id

(4). 删除用户组
groupdel   删除用户组

(5). 更改用户信息
命令: usermod

可加参数及含义:

  • usermod -l   更改用户的名称
  • usermod -u   改变用户uid
  • usermod -g   改变用户初始组
  • usermod -G   改变用户附加组
  • usermod -aG   增加用户附加组
  • usermod -d   改变用户家目录的指向
  • usermod -md   改变用户家目录信息和家目录名称
  • usermod -s   改变用户的shell
  • usermod -c   改变用户的说明文字
  • usermod -L   冻结用户
  • usermod -U   解锁用户

示例操作:
对用户以及用户组进行操作,实质上是对 /etc/passwd和/etc/group 文件中的内容进行增加,修改和删除,并且只要改变用户, /home/ 就会改变其对应的家目录。我们可以通过 watch 命令实时监控它们的变化,命令如下:

[root@localhost ~]# watch -n 1 "tail -n 3 /etc/passwd /etc/group;ls -l /home/"

执行命令之后,进入实时监控界面,这是它们最初的状态:
在这里插入图片描述
另外再打开一个shell进行用户操作的命令,首先用 usersdd 建立一个用户:
在这里插入图片描述
再用userdel 删除用户:
在这里插入图片描述
可以发现userdel 删除用户之后,它的家目录并没有被删掉,因此删除时要加 -r 参数,才能把用户的所有都删除掉:
在这里插入图片描述
下面使用不同的参数新建用户:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
指定用户说明时,如果说明中包含空格,则一定要加双引号,如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
新建组的操作:
在这里插入图片描述
加了 -g 参数之后,就可以指定组的id了,如下:
在这里插入图片描述
用户信息修改操作:
在这里插入图片描述
冻结用户,可以在/etc/shadow 查看用户密码状态:
在这里插入图片描述
当冻结用户之后,密码前加了感叹号表示用户为冻结状态:
在这里插入图片描述
解锁用户:
在这里插入图片描述


用户的切换操作
使用以下命令可以进行用户注销,从而可以登录其它的用户:
gnome-session-quit --force

还有命令 su 功能是切换账户的
格式: su - 用户名称
su - 中的" - "表示在用户身份切换时,同时切换当前用户的环境
在 su - 切换用户时,高级用户切换到低级用户时不需要密码,低级用户切换到高级用户时需要,平级用户切换时也同样需要。
在这里插入图片描述
注意:因为每次 su 切换用户时都会占用系统内存,所以每次 su 切换到其它用户操作之后必须退出,然后再次切换到其它用户。


修改密码操作
命令: passwd

命令: chage

当后面不加用户名称时,表示修改当前用户的密码;当后面加用户名称时,表示修改指定用户密码(只有root用户可以操作)。

passwd可加参数:

  • passwd -l   Lock, 会将 /etc/shadow 第二栏最前面加上 ! 使密码失效
  • passwd -u   Unlock 的意思
  • passwd -S   列出密码相关参数 ,亦即 shadow 文件内的大部分信息。
  • passwd -n   后面接天数,多久不可修改密码天数
  • passwd -x   后面接天数 ,多久内必须要更动密码
  • passwd -w   后面接天数 ,密码过期前的警告天数
  • passwd -i   后面接“日期”,密码失效日期
  • passwd -e   会改变用户最后一次更改密码时间为0(用户在登录时会被强制修改密码)
  • passwd -d   清空密码

chage可加参数:

  • chage -l   列出该帐号的详细密码参数
  • chage -d   后面接日期, 修改 shadow 第三字段,格式 YYYY-MM-DD
  • chage -E   后面接日期 ,修改 shadow 第八字段,格式 YYYY-MM-DD
  • chage -I   后面接天数, 修改 shadow 第七字段 ( 密码非活跃期 )
  • chage -m   后面接天数 , 修改 shadow 第四字段 ( 密码最短有效期 )
  • chage -M   后面接天数 , 修改 shadow 第五字段 ( 密码最长有效期 )
  • chage -W   后面接天数, 修改 shadow 第六字段 ( 密码警告期 )

示例操作:
可以使用下面命令实时监控密码状态,密码状态在/etc/shadow 文件中:

watch -n 1 tail -n 3 /etc/shadow

在这里插入图片描述
相关参数的操作:
在这里插入图片描述
在这里插入图片描述
chage相关参数操作:
用下面命令监控密码信息状态:

watch -n 1 "passwd -S westos;tail -n 3 /etc/shadow"

在这里插入图片描述
参数操作示例:
在这里插入图片描述
注意:普通用户修改密码时
1.必须知道当前用户的初始密码
2.密码不能和名称相似
3.密码不可以是有序的数字或有序的纯字母
4.密码如果是纯数字或字母时应大于8位


用户权限下放操作
命令: sudo

sudo 能把某些超级权限针对性的下放,并且不需要普通用户知道 root 密码 ,所以 sudo 相对于权限无限制性的 su 来说 ,还是比较安全的。

权限下放流程:
sudo 执行命令的流程是当前用户切换到 root, 然后以 root 身份执行命令,执行完成后, 直接退回到当前用户;而这些的前提是要通过 sudo 的配置文件 /etc/sudoers 来进行授权。

权限下放动作的配置文件: /etc/sudoers
可以通过vim /etc/sudoers 进行编辑 (但无语法检测)
这个文件也可以用命令 visudo 编辑 (但有语法检测)

授权的文件内容写法格式:
授权目标用户 主机名称 =(授权用户得到的新用户身份) 授权用户执行命令

查看某些信息的命令:
(1). 怎么去查看主机名 ?
在这里插入图片描述
(2). 怎么查看命令所在的文件 ?
在这里插入图片描述

操作示例:
需要用 visudo 命令在100行左右增加内容
(1). westos用户能在localhost主机执行useradd(但要westos密码)
执行 visudo ,增加下面的内容:
在这里插入图片描述
测试:
在这里插入图片描述
通过输入普通用户密码,成功下放权限。

(2). westos用户能在localhost主机执行useradd(但不需要westos密码)
执行 visudo ,增加下面的内容:
在这里插入图片描述
测试:
在这里插入图片描述
不需要输入普通用户密码,就可以成功下放权限。

sudo文件中的别名设定方式
假如我们要给多个用户下放权限,并且需要下放多个命令的时候,一条一条的添加可能有点麻烦,这时需要用的别名设置,把多个用户放到一个集合里面,并且把多个命令放到集合里面,这样就不用多次繁琐的添加了。
操作示例:
用 visudo 命令打开sudo文件,在里面添加内容:
在这里插入图片描述
Cmnd_Alias 代表定义了一个下放权限的命令的集合, CTRLUSER是给这个集合起了一个别名;
同理User_Alias 代表定义了一个用户的集合, ADMIN 则是给这个集合起的别名。
下面是测试示例:
在这里插入图片描述
在这里插入图片描述
通过切换两个用户进行测试,这两个用户都可以执行被下放权限的命令。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值