Linux中的用户管理

一.用户的存在意义及方式

1、用户的存在意义

用户是操作者再系统中的身份,是系统最底层的安全机制的一部分,用户的存在可以使得系统的资源得到合理的分配。

2、用户的存在方式

用户在系统中以字符和文件的形式存在。

二.用户系统文件

用户在系统中的存储方式

文件 意义
/etc/passwd 用户信息文件,用户名称:密码:uid:gid:说明:家目录:默认的shell。注:说明是指默认shell的指定有哪些可以查看系统中/etc/shells文件
/etc/group 用户组信息文件,组名称:组密码:组id:组成员
/etc/shadows 认证信息文件
/etc/skel/.* 默认开启shell的配置,用户的骨文件

三.用户信息查看

1、查看当前用户信息的方式

命令 功能
whoami 查看当前用户的信息

2、系统中的用户查看的方式

命令 功能
id username 查看指定用户的id信息
id -u username 查看指定用户的uid
id -g username 查看指定用户的gid
id -G username 查看指定用户所在的所有组的id
id -n username 查看指定用户的名字而不显示id数字

Linux中的用户管理

四.监控用户的建立过程

使用watch指令实时监控,使用tail、head、管道符等截出所需的行数

watch 指令:

命令 功能
watch -n 1 date 1是执行频率,指每秒查看一次
watch -n 1 “多条命令”
watch -n 1 ‘tail -n 3 /etc/passwd /etc/group;ls -l /home’ 监控用户的信息

Linux中的用户管理

五.用户的建立和删除

1、用户的建立

命令 功能
useradd username 建立名为username的用户,建立用户时,读取/etc/login.defs文件内容确定建立规则,此时用户信息不指定

2、用户的删除

命令 功能
userdel username 删除用户,但不删除用户的配置文件
userdel -r username 删除用户,并且删除用户的配置文件

3、建立用户时指定用户信息

命令 功能
useradd -u uid username 指定用户的uid
useradd -g 初始组id username 指定用户的初始组id,该id必须是存在的
useradd -G 附加组id username 指定用户的附加组id,该id必须是存在的
useradd -c “说明” username 指定用户的说明
useradd -d /home/xxx username 指定用户的家目录
useradd -s /bin/sh username 指定用户的默认shell是什么

Linux中的用户管理

4、建立用户组

命令 功能
groupadd groupname 建立名为groupname的用户组
groupadd -g 组id groupname 建立以“组id”为id 的用户组
groupdel groupname 删除名为groupname的用户组
:指定之外的信息均是默认建立信息

Linux中的用户管理

五.如何更改用户信息

命令 功能
usermod -l newname username 更改用户的名称
usermod -u uid username 更改用户的uid
usermod -g 组id username 更改用户的初始组
usermod -G 组id username 更改用户的附加组
usermod -aG 组id username 添加用户的附加组
usermod -G “” username 删除用户所有的附加组
usermod -c “说明” username 指定用户的说明
usermod -d /home/xxx username 更改用户的家目录的指向
usermod -md /home/xxx username 更改用户的家目录
usermod -s /bin/sh username 更改用户的默认shell
usermod -L username 将用户冻结
usermod -U username 将冻结用户解锁

Linux中的用户管理
Linux中的用户管理
Linux中的用户管理

六.用户的切换

1、注销当前用户

命令 功能
gnome-session-quid --force 注销当前用户,再用其他用户登录

2、用户切换

命令 功能
su - username 切换至username用户
su - 中,“-”表示在用户身份切换时同时切换当前用户的环境,进入username用户后,默认在该用户的家目录;
该命令执行时,由高级用户切换到低级用户不需要输入密码,低级用户切换到高级用户、同等级用户之间的切换需要密码
:每次使用命令切换到其他用户进行操作之后必须退出,然后再切换到另一用户

Linux中的用户管理

七.用户认证信息

1、用户认证信息都有什么

命令 功能
chage -d 或 passwd -e 密码最后一次被更改的时间date of last password age
chage -m或passwd -n 最短密码改变时间minimum password age
chage -M或passwd -x 最长密码改变时间maximum password age
chage -W或passwd -w 密码过期前警报password warning period
chage -I或passwd -i 密码非活跃天数password inactivity period
chage -E 用户到期日account

Linux中的用户管理

2、用户认证信息的管理

命令 功能
passwd -S username 查看该用户的密码信息
passwd username 更改该用户的密码
passwd -l username 在该用户密码前加入“!!”(冻结)
usermod -L username 在该用户密码前加入“!”(冻结)
passwd -u username 解锁已被冻结的用户
usermod -U username 解锁已被冻结的用户(在密码不为空时使用)
passwd -d username 清空该用户密码
普通用户改密码时:

必须知道当前用户原始密码,密码不能和帐号名称相似,密码不能是纯数字或纯字母,若是,则长度要大于8,密码不能是有序的字母和数字的组合。

超级用户改密码时:

若密码不安全会警告,但无论什么安全强度的密码都可以被修改成功。

八.用户的授权

1、权力下放文件

/etc/sudoers

此文件可以用vim直接编译,但vim不提供语法检测(若语法错误,不提示)
也可以使用visudo编辑此文件,visudo命令提供语法检测。(若语法错误,则提示,输入e进入编辑修改错误,再保存,直至没有语法错误提示为止)
Linux中的用户管理

命令 功能
hostname 查看主机名
which useradd 查看命令useradd所在的文件
NOPASSWD:/usr/sbin/useradd 免密执行命令(第一次执行时需输入密码的情况)

Linux中的用户管理

2、下放方式

visudo

100行左右(输入:100查找100行所在位置)

用户 主机名称=(得到的用户身份) 授权的命令

命令 功能
tom localhost=(root) /usr/sbin/useradd tom用户可以在localhost主机以root用户身份执行useradd命令
tom localhost=(root) NOPASSWD:/usr/sbin/useradd, /usr/sbin/userdel tom用户可以在localhost主机以root用户身份执行useradd命令和userdel命令,且不用输入密码验证身份

Linux中的用户管理

3、测试

su - tom
sudo useradd 123 |建立一个名为123的用户
sudo userdel -r 123 |删除一个名为123的用户

Linux中的用户管理