Linux基础(四)——用户管理

1、用户存在的意义

由于Linux是一个多人多任务的系统,故每个用户都有自己私密的文件,不是所有人都可以查看,故为了安全和权力的限制才存在了多个用户。

2、组存在的意义

将用户可以归类,方便管理,以及一个组中成员的权限设置

3、用户的查看

whoami ##查看当前环境下的用户
id user ##查看指定用户的信息##

在这里插入图片描述
在这里插入图片描述
如上图所示,使用id命令后我们可以查询到用户的三个信息:用户ID、组ID、用户所在组ID

id -u user ##查看指定用户的uid##

id -g user ##查看指定用户的gid##

id -G user ##查看指定用户所在的所有组信息(包括用户组和附加组信息)##

id -n ##显示名称但不显示对应名称下的id数##
在这里插入图片描述

4、用户的切换

gnome-session-quit --force ##注销当前用户##
su westos ##表示没有加载用户环境,只加载了shell系统的配置,也即之切换了用户身份,没有切换系统配置##
su - westos ##表示即加载了shell系统配置,也加载了用户环境,也即切换了用户身份,也切换了系统配置##
在这里插入图片描述
如上图红圈所表示,将原root用户切换到student用户

注意:这里的“-“代表了切换用户环境,加载系统配置

5、创建用户

注意:在一般情况下,只有超级用户才可以创建用户,普通用户一般没有权限来创建用户
为了方便观察用户创建的命令,我们可以先使用 watch -n 1 "tail -n 3 /etc/passwd /etc/group;ls -l /home/ "命令来开启一个监控界面,来清楚观察关于用户命令的变化
在这里插入图片描述
useradd user ##创建用户##
在这里插入图片描述
我们可以清楚的看到增加新用户后,会在监控界面出现新建用户的相关信息
useradd -u user ##指定用户id创建用户##
在这里插入图片描述
useradd -g user ##指定用户组创建用户##
注意:这里需要先创建用户组,这样才能指定用户组创建
在这里插入图片描述
由于没有601这个group组,故不能指定用户组来创建新用户,所以需要先添加相应的用户组信息
在这里插入图片描述
useradd -G user ##指定用户附加组创建用户##
注意:指定的用户附加组需要存在,否则需要先创建用户组
在这里插入图片描述
useradd -c user ##指定用户的用户说明来创建用户##
在这里插入图片描述
useradd -d user ##指定用户的家目录来创建用户##
在这里插入图片描述
useradd -s user ##指定用户默认的shell类型来创建用户##
在这里插入图片描述

6、删除用户

userdel user ##删除用户信息##
注意:这里只是删除了用户的一部分内容,环境配置依旧存在
在这里插入图片描述
userdel -r user ##删除用户的所有信息##
在这里插入图片描述

7、修改用户信息

usermod -l newname user ##修改用户名称##
在这里插入图片描述
usermod -g 21 user ##修改用户组##
注意:21这个用户组必须存在
在这里插入图片描述
usermod -u 818 user ##修改用户id##
在这里插入图片描述
usermod -G student user ##修改用户的附加组##
在这里插入图片描述
注意:在使用这个命令时,默认user只有两个用户组,故若user原来有两个用户组,当使用这个命令时会覆盖原附加组
usermod -aG student user ##添加用户的附加组##
注意:在使用这个命令时不会覆盖原有的附加组信息,只会继续添加
usermod -c “haha” user ##指定用户说明文字##
在这里插入图片描述
usermod -d /home/test user ##更改用户家目录的指向##
在这里插入图片描述
usermod -md /mnt/test user ##更改用户的家目录##
在这里插入图片描述
usermod -s /bin/sh user ##更改用户的shell##
在这里插入图片描述
usermod -L user ##冻结用户##

usermod -U user ##解锁用户##
在这里插入图片描述

8、用户在系统中的存储方式

/etc/passwd 用户信息文件;用户名称:密码:uid:gid:说明:家目录:默认shell
注意:默认shell可以指定有那些用户可以查看系统中的/etc/shells文件
/etc/group 用户组信息文件;组的名字:组密码:组id:组成员
/etc/shadows 认证信息文件
/etc/skel/.* m 默认开启shell的配置,用户的骨文件 /etc/skel/.* 骨架目录,新建用户会复制该目录里的所有内容
/home/userhome

9、用户认证信息

存在的位置:/etc/shadows ##记录用户认证信息##

例如:westos:!!:17895:0:99999:7:   :    :   
     【1】   【2】 【3】 【4】【5】 【6】【7】【8】 【9】
这个文件总计有九列
【1】wetos:用户名称
【2】!!:  用户密码   ##用户的加密字符串,默认的加密方式为sha512对对称加密,如果加密字符串前出现“!”那么表示用户被冻结##
【3】 17895 :用户密码最后一次更改的时间
【4】 0 :用户密码最短有效期   ##如果此位有设定数字,那么在此数字范围内的天数内是不能修改用户密码的##
【5】 999999:用户密码最长有效期   ##用户必须在此有效期内更改密码,如果超时用户会被冻结##
【6】 7 :密码警告期限   ##在过期前制定天数内会发送警告信息给用户##
【7】 :用户非活跃天数   ##此位默认为空,如果设定数值,那么在密码最长有效期过后仍然可以使用的天数##
【8】 :用户到期日      ##默认为空,表示帐号一定会被冻结的时间点##
【9】 :用户自定义列    ##目前没有启用##

10、用户密码

passwd ##更改密码##
passwd student ##更改用户student的密码##
注意:普通用户只能更改自己的密码,且在更改时需要输入原始密码,且修改的密码需要注意强壮度。超级用户可以修改所有人的密码,且修改时不需要输入原始密码

  • 普通用户修改密码时需要注意的几点:
    (1)、必须知道当前用户的原始密码;
    (2)、密码不能和帐号名称相似;
    (3)、密码不能是有序的数字或有序纯字母;
    (4)、密码如果是纯数字或者纯字母长度需要超过8位。

    passwd -l user ##冻结用户,在用户密码前加入"!!"
    在这里插入图片描述
    注意:当执行usermod -L user命令后,会在用户密码前加入"!"
    在这里插入图片描述
    passwd -u user ##解锁用户##
    在这里插入图片描述
    usermod -L user ##冻结用户##
    usermod -U user ##解锁用户##
    passwd -d user ##清空用户密码##

man 5 shadow 查看
将密码的最后一次更改时间改为0,则在再次登陆时会被强制要求更改密码
passwd -S student ##查看student的帐号密码信息##
在这里插入图片描述

用户最短有效期: passwd -n 1 student chage -m 1 student ##student用户在1天之内不能修改密码##
在这里插入图片描述
在这里插入图片描述
用户最长有效期: passwd -x 20 student chang -M 20 student ##设定student用户在20天之内必须修改密码,否则冻结帐号##
在这里插入图片描述
在这里插入图片描述
密码警告期限: passwd -w 2 student chang -W 2 ##密码过期前两天会有警告提示##
在这里插入图片描述
在这里插入图片描述
用户非活跃天数: passwd -i 3 student chang -I 3 ##密码过期后仍然可以登陆的天数##
在这里插入图片描述
在这里插入图片描述
用户密码最后一次被更改的时间: passwd -e student ##会改变用户最后一次更改密码时间为0##
用户到期日: chang -E 2019-12-25 student ##student用户会在2019-12-25日被冻结##

在这里插入图片描述
passwd -l 的安全性比 chage -L要高

11、用户授权

用户授权的文件为: /etc/sudoers
授权操作:

  • 1)、查看方法:可以用vim命令,但是最好是使用visudo来查看,因为使用visudo在编辑文件保存退出后,可以自动进行语法检错,而vim命令没有这个功能;
    visudo ##这个命令有语法检测的功能##

  • 2)、在/etc/sudoers文件第100行左右进行内容编写,如下:
    索权的用户名称 主机名称=(下放权力的用户名称) NOPASSWD:
    所要下放的权力 如: /usr/sbin/useradd
    注意:在查询主机名称时用hostnamectl命令,在显示的信息中Transient hostname: 后面所跟的信息即为主机名
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

也可以将索权的用户名称写为一个集合,把所要下放的权力写为一个集合,这样便可实现多用户,多权力的下放,如下:

Cmnd_Alias 集合名1 = 所要下放的权力(多个权力用逗号隔开即可)
User_Alias 集合名2 = 索权的用户名称(多个用户用逗号隔开即可)

集合名2 主机名称=(下放权力的用户名称) NOPASSWD:集合2
在这里插入图片描述

测试权力是否下放

注意;在调用授权的命令时,前面一定要加sudo ,负责权力依旧无法执行
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值