用户管理相关命令及操作

用户信息的查看

在对文件进行操作之前,我们要先了解文件的当前状态。和文件的管理一样,在进行用户管理之前,我们也要先了解当前系统中的用户状态。

id 查看用户信息
不加参数时,查看当前用户信息
加用户名,查该其用户信息。如:id username
id -u查看该用户编号
id -g查看该用户主组
id -G查看该用户所有用户组编号
id -Gn查看该用户所有用户组名字

下图为例:
从下图中可以见到,在当前用户root下,执行id命令与id root命令的结果是一样的。
在这里插入图片描述
其中,uid为用户编号,gid为用户所在主组编号,groups为该用户全部用户组
注意:
1.用户id为0则一定为超级用户
2.所有的用户组包括主组和附加组

用户身份的切换

su - root 从当前用户切换到root用户
从root用户到其他用户不需要其密码,而从普通用户到普通用户需要密码,以及从普通用户到root超级用户需要密码
注意:
每次切换会新建一个shell(bash)进程,可以在资源管理器中查看到
因此,正确的使用该命令的方式不能是一直地切换用户,而不释放空闲用户所占用的资源
而是应该切换一用户,使用完毕后,退出该用户,然后才可以再切换为其他用户
下图为例:
下图中两次连续切换只是为了说明从root—>student,并不需要密码
而从student—>root需要密码
实际操作中并不应该这样连续地切换用户
在这里插入图片描述
注意区分:
不使用‘-’也可以切换,如:su username,但是这样只能加载用户,而不会加载相应的环境
加上’-‘后不仅切换了用户的身份(加载了shell配置文件/etc/bashrc),并且切换了用户环境(加载了系统的环境配置文件/etc/profile)

用户信息的建立,删除与修改

用户在系统中其实就是配置文件中的一串字符,用户的管理与操作,其实就是对于配置文件中的代表用户的字符串的操作。
那么在正式学习用户的建立之前,如何知道用户的状态信息是否成功更改呢?这就需要我们对于用户的状态进行实时的状态的监控。

watch 对于命令的执行实时监控
例如
watch -n 1 “tail -n 3 /etc/passwd /etc/group; ls -l /home/”
该watch命令会对于“ ”内部的命令每间隔1s(-n 1)执行一次,实时刷新状态(执行结果)
注意:
对于一段比较长的命令,我们可以分开来执行,每部分单独执行
这样的话,便于我们及时地调试错误。否则的话,我们可能无法从一段命令中准确的找到错误的所在
下图为例:
在这里插入图片描述
执行完tai -n 3 /etc/passwd /etc/group,测试该命令执行结果无误后,在历史的上一条命令的基础上,在其后在追加另一条命令。这样,测试完毕“ ”内部要执行的命令后就可以执行watch命令了。
命令watch -n 1 "tail -n 3 /etc/passwd /etc/group; ls -l /home/"执行结果如下图:
在这里插入图片描述
新建用户信息
useradd username 不加参数,按照默认规则增加
useradd -u 6000 username 指定用户uid(给该用户分配6000的uid)
useradd -g 6000 username 指定用户gid(指定用户初始组id)
useradd -G 6000 username 指定用户的附加组
注意:不能指定一个不存在的组号
useradd -c “westos“ username 指定用户说明
useradd -d /mnt/leo username 指定用户家目录
注意:
指定不存在的目录作为家目录虽然不报错,但运行时无法以其作为路径找到实际的目录作为家目录,会报错
useradd -s 6000 username 指定用户shell(-s shell)
下图为例:
在这里插入图片描述
在这里插入图片描述
上图中的-u,-c参数可以比较随意的指定,但是-g的参数必须要指定一个已经建立了的组
删除用户信息
userdel username 删除用户信息
注意:
不加参数,只直接删除用户名,但不会删除其相应的占用的资源
想将其占用资源也删除,用userdel -r usrname
下图为例:
在这里插入图片描述
在这里插入图片描述从第一幅图到第二幅图,我们可以发现,建立用户时,不仅建立了用户信息,我们还为它分配了/home目录下的家目录,但是在使用 userdel username 命令时只会删除建立的用户信息。而使用userdel -r usrname命令则会将二者都删除。
新建用户组
groupadd groupname 建立用户组
groupadd -g 6000 groupname 指定用户gid的形式建立用户组
groudel groupname 删除用户组用户组
下图为例:
在这里插入图片描述
在这里插入图片描述
更改已有用户的信息
usermod 直接在已有用户的基础上更改其用户信息
usermod -l newname oldname 将用户原名字更改为新名字
usermod -u 2000 username 更改用户编号(uid)
usermod -g 21 username 更改用户的初始组(gid)
usermod -G 21 username 更改用户的附加组(会将原来的附加组信息覆盖掉)
usermod -G “ ” username 将用户的附加组清空(将原附加组信息用空覆写)
usermod -aG 21 username 添加用户的附加组(在原信息基础上追加)
usermod -c “name” username 指定用户说明文字为name
usermod -d /home/west username 更改用户的家目录的指向
usermod -md /home/west username 更改用户的家目录(重命名原来的家目录)
usermod -s /bin/sh username 更改用户的shell
usermod -L username 冻结用户
usermod -U username 解锁用户
由于这些操作与上文的操作均类似,故不一一演示

用户认证信息

/etc/shadows文件中存放了系统中用户的认证信息(密码相关信息)

westos:!!:17890:0:99999:7: : :
文件的每一行字符串被划分为9列,以“:“符号划分
1.westos 用户名称
2.!! 用户密码(用户密码的加密字符串,前有 ! 时说明被冻结, ! 的个数代表被冻结程度)
3.17895 用户密码最后一次修改的时间(该数字是从1970-1-1起的累计天数)
4.0 用户密码最短有效期:当前时间距离上次修改密码时间必须大于等于最短有效期才可以更改密码
5.99999 用户密码最长有效期:用户密码在该期限内必须要更改一次
6. 7 密码警告期:在密码过期前的指定天数内对用户发送警告信息
7. “ ” 用户非活跃天数:此列默认为空,若设置数值,则在密码最长有效期过期后,仍可在该天数内使用
8. “ ” 用户到期日:此列默认为空,表示用户过了该时间点后一定会被冻结(冻结程度是上文中usermod -L username 命令的2倍)
9. “ ” 用户自定义列,目前未启用(将来用于拓展功能)

用户密码属性更改
passwd:
psswd -S username 查看用户密码信息
passwd username 更改用户密码
passwd -d username 清空该用户密码
passwd -l username 冻结用户(在用户密码前加 !!
passwd -u username 解锁用户
usermod:
usermod -L username 冻结用户(在用户密码前加 !
usermod -U username 解锁用户(在用户密码不为空时使用)
下图为例:
图一,在清空admin用户密码前后查看其用户认证信息
图二,将被清空密码的admin用户重置密码
图三,将admin用户的账户冻结(密码前多出两个!!)
图四,将admin用户的账户解冻
在这里插入图片描述
![在这里插入图片描述]( https://img-blog.csdnimg.cn/20190715220701572.png?x-oss-process=image 在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:
普通用户更改密码时:
1.要知道当前用户的原始密码
2.账户名与密码不能很相似
3.密码不能为有序的纯数字或纯字母
4.当密码为纯数字或纯字母时要大于8位
但是超级用户不受任何限制
passwd命令,可以修改密码及大多数的密码属性
chage命令,可以修改所有的密码属性,但不能更改密码
使用以上两命令更改密码属性如下:
(1)用户密码上一次被修改时间
passwd -e username 将用户密码上一次修改时间改为0(用户在第一次登陆时会强制更改密码)
chage -d 0 username 与上面的命令功能一致
(2)用户密码最短有效期
passwd -n 1 username 将用户的密码最短有效期更改为1(n)
chage -m 0 username
(3)用户密码最长有效期
passwd -x 40 username 将用户的密码最长有效期更改为40(x)
chage -M 50 username
(4)密码警告期限
passwd -w 2 username 将用户的密码警告期限更改为2(w)
chage -W 2 username
(5)用户非活跃天数
passwd -i 1 username 将用户密码属性的非活跃天数更改为1(i)
chage -I 1 username
(6)用户到期日
chage -E 2018-11-11 username 将用户密码属性的用户到期日更改为2018-11-11,超过这个时间点账户会被冻结
(7)用户自定义列(目前未启用)
下图为例:
图一,二,将用户上一次密码修改时间更改为0
图三,四,将用户最短密码有效期更改
图五,六,分别使用passwd,chage更改用户密码属性
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

用户授权

用户授权文件sudoers
但我们一般使用visudo命令修改该文件,因为该命令会有语法的检测
而使用vim命令对/etc/sudoers文件直接编辑没有语法检测
授权方法
visudo
100行左右
用户 主机名称 = (得到的用户身份) 命令
tom localhost = (root) /usr/sbin/useradd tom用户在该主机上可以root身份执行/usr/sbin/useradd命令
tom localhost = (root) NOPASSWD: /usr/sbin/useradd 授权意义同上,但可以免密执行
(查看主机名称:hostname)
下图为例:
在这里插入图片描述
测试是否成功授权
使用su - username命令切换到被授权用户
sudo 授权命令 参数 操作对象
验证是否授权成功
下图为例:
下图中,以普通用户admin身份,成功新建用户weas
在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值