用户管理

用户存在的意义

Linux是一个多用户多任务的分时操作系统,如果要使用系统资源,就必须向系统管理员申请一个账户,然后通过这个账户进入系统。这个账户和用户是一个概念,通过建立不同属性的用户,一方面,可以合理的利用和控制系统资源,另一方面也可以帮助用户组织文件,提供对用户文件的安全性保护。

用户组存在的意义

用户组是具有相同特征用户的集合,有时我们需要让多个用户具有相同的权限。定义用户组,在很大程度上简化了管理工作。
用户组分为主要组和补充组。

用户的查看

1)查看当前用户
whoami      ##查看当前用户
2)系统中用户的查看
id username      ##查看指定用户的信息
id -u username    ##查看用户的id
id -g username    ##查看用户的组id
id -G username    ##查看用户所在的所有组的id
id -n username    ##显示名字而不显示id数字
在这里插入图片描述

用户切换

gnome-session-quit - -force   ##注销当前用户,再用其他用户登录
在这里插入图片描述
su - 用户名称
su - 中“-”表示在用户身份切换时同时切换当前用户的环境,如果不加“-”则只切换用户而不切换环境。
su - 执行时高级用户切换到低级用户不需要密码,低级用户切换到高级用户需要密码,平级用户之间切换也需要密码。

下图可以看出目前用户是alice,但当前环境仍然是root。
在这里插入图片描述
注意:
为了防止系统混乱,每次su切换到其他用户操作之后必须退出(exit或logout),然后再次切换到其他用户。

用户在系统中的存储方式

文件内容
/etc/passwd系统信息文件
/etc/group用户组信息文件
/etc/shadow认证信息文件
/etc/skel/.*默认开启shell的配置,用户的骨架目录
/home/username用户的家目录

注意:

  • /etc/passwd由以下几部分构成:
    用户名称:密码:uid:gid:说明:用户家目录:默认的shell
  • /etc/group由以下几部分构成:
    组名称:组密码:组id:组成员

用户管理命令

1)用户的建立与删除
监控用户信息命令:
为了方便我们查看对用户进行的操作,我们用 watch -n 1 “tail -n 3 /etc/passwd /etc/group ;ls -l /home”(1表示频率,因为中间用分号隔开,所以需要加双引号表示监视这个整体)这条命令进行监视。
在这里插入图片描述

建立用户的条件:
通过vim /etc/login.defs 读取/etc/login.defs ,根据文件内容确定规则。
在这里插入图片描述

  • 建立用户
    useradd -u 1234 westos   ##指定用户westosuid为1234
    useradd -g 156 hello   ##指定用户初始组id为156,“156用户组”必须是存在的。
    useradd -G 72 hey   ##指定用户附加组id为72,“72用户组”必须是存在的。
    useradd -c “hello” alice   ##指定用户的说明
    useradd -d /home/lee tom   ##指定用户的家目录
    useradd -s /bin/sh lily   ##指定用户默认的shell
    在这里插入图片描述
  • 删除用户
    userdel hello   ##删除用户hello,但是不删除用户的配置文件
    userdel -r lily   ##删除用户并删除用户的配置文件
    在这里插入图片描述

2)用户组的建立与删除

  • 建立用户组
    groupadd westos   ##建立用户组westos
    groupadd -g 1555 haha   ##建立用户组并指定用户组id
    在这里插入图片描述

  • 删除用户组
    groupdel westos   ##删除用户组westos (注意:组名的删除不需要 -r)
    在这里插入图片描述
    3)更改用户信息
    usermod
    usermod -l linux westos   ##更改用户westos的名称为linux
    usermod -u 1234 linux   ##更改用户linux的uid
    usermod -g 1236 linux   ##更改用户linux的初始组id
    usermod -G 1555 alice   ##更改用户alice的附加组
    usermod -aG 1236 hey   ##添加用户hey的附加组
    usermod -G “ ” alice   ##删除用户alice所有的附加组身份
    usermod -c “heihei” linux   ##指定用户linux的说明文字
    usermod -d /home/lee linux   ##更改用户linux家目录的指向
    usermod -md /home/lee tom   ##更改用户tom家目录
    usermod -s /bin/sh tom   ##更改用户tom的shell
    在这里插入图片描述
    注意:在/etc/shells文件下可以查看所有的shell类型。
    在这里插入图片描述

用户认证信息

/etc/shadow   ##记录用户认证信息
监视用户认证信息的命令:
我们用命令watch -n 1 “tail -n 3 /etc/shadow ; echo ======== ; passwd -S alice”进行监视。
alice  : !!  :  17985  :  0 :  99999  :   7   :   :    :
[1]     [2]    [3]     [4]    [5]     [6]    [7]  [8]   [9]

此文件一共有9列,分别代表以下含义:
[1] alice :用户名称
[2] !! :用户密码 ,如果显示的为加密字符串,表示默认的加密方式为sha512对称加密,如果加密字符前出现“!”表示用户被冻结
[3] 17985 :用户密码最后一次被更改的时间 ,此时间是从1970-1-1开始计算的累计天数
[4] 0 :用户密码最短有效期,如果此为有设定数字,那么在此数字范围的天数内是不能修改用户密码的。
[5]99999 :用户密码最长有效期,用户必须在此有效期内更新密码,如果超时会被冻结。
[6]7 :密码警告期限,在过期前指定天数内会发送警告信息给用户.
[7] 用户非活跃天数:此位默认为空,如果设定数值,那么在密码最长有效期过后仍然可以使用的天数。
[8]用户到期日:默认为空,表示账户一定会被冻结的时间点.
[9]用户自定义列,目前尚未启用。

  • 查看linux用户密码信息
    passwd -S linux
    在这里插入图片描述
  • 更改linux密码
    passwd linux
    在这里插入图片描述
  • 在用户密码前加入“!!”
    passwd -l linux
    在这里插入图片描述
  • 解除锁定“!!”
    passwd -u linux
    在这里插入图片描述
  • 在用户密码前加入“!”
    usermod -L linux
    在这里插入图片描述
  • 在密码不为空时使用
    usermod -U linux
  • 清空westos密码
    passwd -d linux

注意:
当普通用户改密码时:必须知道当前用户的原始密码,密码不能和帐号名称相似,不能是纯数字或纯字母,不能是有序的字母和数字的组合。

  • 用户密码最后一次被更改的时间
    passwd -e linux ##会改变用户最后一次更改密码时间为0.
    ##用户在登陆时会被强制更改密码
    chage -d 0 linux##两个命令功能类似
    在这里插入图片描述
  • 用户密码最短有效期
    passwd -n 1 linux ##westos用户在1天之内不能修改密码
    chage -m 1 linux
    在这里插入图片描述
  • 用户密码最长有效期
    passwd -x 30 linux ##设定westos在30天内必须改密码
    chage -M 40 linux
    在这里插入图片描述
  • 密码警告期限
    passwd -w 2 linux##密码过期前两天有警告输出
    chage -W 2 linux
    在这里插入图片描述
  • 用户非活跃天数
    passwd -i 1 linux ##密码过期后仍可登陆系统的天数
    chage -I 1 linux
    在这里插入图片描述
  • 用户到期日
    chage -E 2019-6-1 linux##linux用户在2019-6-1日会被冻结

    框中两数之差为密码还可用的天数。

用户授权

在这里插入图片描述
通过上面的操作我们可以看到,除root之外的所有普通用户默认情况下没有添加用户的权力,而若是想让他们拥有某种权力,可以通过root给他们授权。

  1. 权力下放的文件为/etc/sudoers
    此文件可以用vim直接编辑,但是不提供语法检测,我们选择用visudo编辑此文件,visudo命令是提供语法检测的。
  2. 权力下放方式
    visudo(100行左右)
    在这里插入图片描述
    格式为:
    用户名  主机名称 =(得到的用户身份)  命令
    linux   localhost =(root)     /usr/sbin/useradd
    含义为linux用户可以在localhost主机以root用户身份执行useradd命令
    注意:
    1.用hostname命令查看主机名称
    2.测试是否能成功添加的命令为 sudo useradd even
    在这里插入图片描述
    以上执行的过程中需要输入密码,下面为免密执行的命令:
    linux localhost=(root) NOPASSWD: /usr/sbin/useradd
    在这里插入图片描述
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值