不论是windows系统、Linux系统还是UNIX系统,我们都可以发现用户的存在。用户存在的意义是为了提高系统的安全,为不同的用户分配不同的权限,如删除文件的权限,如果每个用户都拥有这样的权利,则系统安全就没有保障。同时系统中也存在用户组、家庭组,组的存在则是为了共享资源。

一、用户的查看

  1. whoami
    用来查看当前的用户
  2. 查看系统中的用户

命令

说明

id

查看指定用户id信息

id -u

查看用户的uid

id -g

查看用户的gid

id -G

查看用户所在的所有组的id

id -n

显示名字而不显示id数字

id -Gn

查看用户组名称

id -un

查看用户名称

id -gn

查看用户组名称

linux 退出python help Linux 退出用户_linux 退出python help


3. 用户的切换

(1)gome-session-quit --force 命令注销当前用户再用其他用户登录,使用该命令可强制退出登录

(2)在Linux系统右上角,点击小x,选中logout退出登录

linux 退出python help Linux 退出用户_用户组_02


(3)su - 用户名称

表示在用户身份切换时同时切换当前用户的环境

注意:高级用户切换低级用户,不需要密码;低级用户切换高级用户,需要密码;平级用户相互切换,需要密码。 su切换到其他用户操作之后必须退出,然后再次切换到其他用户。

linux 退出python help Linux 退出用户_用户组_03


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

1./etc/passwd

用户信息文件

用户名称:密码:uid:gid:说明:家目录:默认shell

“说明:默认shell的指定有那些可以查看系统中/etc/shells文件”

linux 退出python help Linux 退出用户_用户名_04


2. /etc/group

用户组信息文件

组的名字:组密码:组id:组成员

linux 退出python help Linux 退出用户_用户组_05


3./etc/shadows

认证信息文件

linux 退出python help Linux 退出用户_用户组_06


4./etc/skel/.*

默认开启shell的配置,用户的骨文件

linux 退出python help Linux 退出用户_用户名_07


5./home/username

用户的家目录

三、用户和用户组的管理

1.用户管理
(1)新建用户

命令

说明

useradd 用户名称

新建用户

useradd -u 6666 用户名称

指定用户uid

useradd -g 21 用户名称

指定用户初始组id,21用户组必须存在

useradd -G 21 用户名称

指定用户的附加组id,21用户组必须存在

useradd -c “hello” 用户名称

指定用户的说明

useradd -d /home/student 用户名称

指定用户的家目录

useradd -s /bin/sh 用户名称

指定用户的默认shell

linux 退出python help Linux 退出用户_用户组_08


(2)删除用户

命令

说明

userdel 用户名称

删除用户但不删除用户的配置文件

userdel -r 用户名称

删除用户并删除用户的配置文件

(3)更改用户信息

命令

说明

usermod -l 新名称 用户名称

更改用户的名称

usermod -u 6666 用户名称

更改用户uid

usermod -g 21 用户名称

更改用户的初始组

usermod -G 21 用户名称

更改用户的附加组

usermod -aG 72 用户名称

添加用户的附加组

usermod -G “” 用户名称

删除用户所有附加组的身份

usermod -c “hello” 用户名称

指定用户说明文字

usermod -d /home/lee 用户名称

更改用户家目录的指向

usermod -md /home/lee 用户名称

更改用户家目录

usermod -s /bin/sh 用户名称

更改用户的shell

usermod -L 用户名称

冻结用户

usermod -U 用户名称

解锁用户

linux 退出python help Linux 退出用户_用户名_09


注意:同一个用户要所属两个及两个以上的组必须要用 -aG,如果只用 -G 则是对附加组的更改。

2.用户组管理

命令

说明

groupadd 组名

建立用户组

groupadd -g 6666 组名

建立用户组并指定用户组的id

groupdel 组名

删除用户组

linux 退出python help Linux 退出用户_删除用户_10


3.用户认证信息

westos:!!:17895:0:99999: 7: : :
此文件一共有九列:
(1)westos:用户名称
(2) !!:用户密码
用户的加密字符串,默认用的加密方式为sha512对称加密,如果加密字符串前出现"!"那么用户被冻结,可以使用 " usermod -U 用户名称 "命令解锁用户
(3)17895:用户密码最后一次被更改的时间
此时间计算是从1970-1-1开始计算的累计天数

命令

说明

passwd -e 用户名

会改变用户最后一次更改密码时间为0,用户在登录时会被强制更改密码

chage -d 0 用户名

同上

(4)0:用户密码最短有效期
如果此位有设定数字,那么在此数字范围内的天数内是不能修改用户密码的

命令

说明

passwd -n 1 用户名

用户在1天之内不能修改密码

chage -m 1 用户名

同上

(5)99999:用户密码最长有效期
用户必须在此有效期内更新密码,如果超时会被冻结

命令

说明

passwd -x 30 用户名

设定用户在30天内必须改密码

chage -M 40 用户名

设定用户在40天内必须改密码

(6)7:密码警告期限
在过期前制定天数内会发送警告信息给用户

命令

说明

passwd -w 2 用户名

密码过期前两天有警告输出

chage -W 2 用户名

同上

(7)用户非活跃天数
此位默认为空,如果设定数值,那么在密码最长有效期过后仍然可以使用的天数

命令

说明

passwd -i 1 用户名

密码过期后仍可登陆系统的天数

chage -I 1 用户名

同上

(8)用户到期日
默认为空,表示帐号一定会被冻结的时间点

命令

说明

chage -E 2018-11-11 用户名

用户在2018-11-11日会被冻结

(9)用户自定义列,目前没有启用

4.用户密码的更改

命令

说明

passwd 用户名

更改用户密码

passwd -l 用户名

在用户密码前加入“!!”

passwd -u 用户名

解锁用户密码前的“!!”

passwd -d 用户名

清空用户密码

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