文章目录
四、Linux下的用户管理
4.1 用户分类
超级用户—root
- 超级管理员。UID为0,拥有极大的权限,可以直接无视很多限制。
系统用户
- 系统用户,UID为1~499,一般是不会被登入。
普通用户
- 普通用户,UID一般为500~65534,权限会受到基本权限的限制,也会受到管理员的限制。
- nobody是一个特殊的账号,UID为65534,他的权限会进一步受到限制,一般用来实现来宾账号。
4.2 用户及用户组存在的意义
- 用户是操作着在系统中的身份标识
- 组是逻辑概念,是用户的组合。
- 用户的存在为了限制权限。
- 组的存在为了归类用户便于管理权限。
4.3 用户在系统中的存储方式
- 用户在系统中就是文件中的字符串。
- 每个字符串映射了该用户作用到的系统资源。
4.4 用户涉及到的配置文件及内容
/etc/passwd | 用户信息库 |
---|---|
/etc/group | 组信息库 |
/home/用户同名目录 | 默认用户家目录 |
/etc/skel/所有文件 | 用户环境配置文件模板 |
/etc/shadow | 用户认证信息 |
/etc/gshadodw | 组认证信息 |
4.5 用户信息的查看
4.5.1 查看当前用户身份
[kiosk@foundation20 Desktop]$ whoami
4.5.2 用户信息查看
查看指定用户id信息
[root@foundation20 Desktop]$ id student #查看student这个用户的id信息
其他命令参数
id -u | 查看用户uid |
---|---|
id -g | 查看用户的gid |
id -G | 查看用户所在组的id |
id -n | 显示名字而不显示数字 |
uid 为用户的id gid为组id wheel为附加组
例子:查看student 的四组信息
4.6 用户身份切换以及环境变量
4.6.1 用户身份和环境变量切换
(1) 可以用图形中的注销命令
(2)可以使用命令注销当前用户
[root@foundation20 Desktop]$ gnome-session-quit --force #注销当前用户
(3)su 只切换身份,不切换环境
[root@foundation20 Desktop]$ su student #切换用户身份
(4)su - 身份环境都切换
[root@foundation20 Desktop]$ su - student #切换用户以及环境
4.6.2 退出当前用户
(1)exit 退出当前用户
[kiosk@foundation20 Desktop]$ exit #退出当前用户
(2) logout 退出当前用户
[kiosk@foundation20 Desktop]$ logout #退出当前用户
(3) ctrl+ D也可退出当前用户
高级用户切换到低级用户不用密码,低级用户上高级用户要密码
4.7 用户及用户组的建立及删除
4.7.1 用户信息组介绍
(1)执行以下命令可显示部分用户信息组
[root@foundation20 Desktop]$ tail -n 3 /etc/passwd
(2)如图为每秒执行以上命令显示出的用户信息组信息
we:X:1001:1001::/home/we:bin/bash
按照:分为以下七个信息
we | 用户名称 |
---|---|
X | 密码 |
1001 | uid |
1001 | gid |
说明 | |
/home/we | 家目录 |
bin/bash | 默认shell |
4.7.2 用户及用户组的建立和删除
4.7.2.1 用户组建立和删除
(1)用户组建立
[root@foundation20 Desktop]$ groupadd kk #建立一个名为kk的组
(2)建立指定gid的用户组
[root@foundation20 Desktop]$ groupadd -g 899 kk #建立一个gid为899的组
(3)删除用户组
[root@foundation20 Desktop]$ groupdel kk #删除名叫kk的组
4.7.2.2 用户的建立和删除
(1)建立用户
[root@foundation20 Desktop]$ useradd kk #建立名为kk的用户
[root@foundation20 Desktop]$ useradd -u 45 kk #建立一个名为kk的uid为45的用户
[root@foundation20 Desktop]$ useradd -g 1001 kk #建立一个gid 为1001 的用户 其中1001这个用户组必须存在
[root@foundation20 Desktop]$ useradd -G 1001 kk # 建立一个附加组的gid为1001的用户 其中1001 这个用户组必须存在
[root@foundation20 Desktop]$ useradd -c “home” kk #建立说明为home的kk用户
[root@foundation20 Desktop]$ useradd -d /home/mnt kk #建立家目录为/home/mnt 的kk用户
[root@foundation20 Desktop]$ useradd -s /bin/sh kk #创建一个默认打开shell文件夹为/bin/sh的kk用户 其中可以用cat /etc/shells 来查看可运行shell的文件
总结:
useradd | 新建用户 |
---|---|
useradd -u | 新建并指定用户的uid |
useradd -g | 新建并指定用户的gid |
useradd -G | 新建并用户的附加组 |
useradd -c | 新建并指定文件的说明 |
useradd -d | 新建并指定用户的家目录 |
useradd -s | 新建并指定用户的默认shell |
(2)删除用户
[root@foundation20 Desktop]$ userdel -r kk #彻底删除kk用户以及用户配置文件
[root@foundation20 Desktop]$ userdel kk #删除kk用户但不删除其配置文件
4.7/4.8 都可以使用以下命令监控
watch -n 1 " tail -n 3 /etc/passwd;echo === ;tail -n 3 /etc/group;echo ===;ls /home"
4.8 用户及用户组的信息修改
4.8.1 用户组信息修改
(1)修改用户组的gid
[root@foundation20 Desktop]$ groupmod -g 899 kk #修改kk的gid为899
4.8.2 用户信息修改
[root@foundation20 Desktop]$ usermod -l gg kk #将用户名kk改为gg
[root@foundation20 Desktop]$ usermod -u 45 kk #将kk的uid改为45
[root@foundation20 Desktop]$ usermod -g 1001 kk #将kk的gid改为1001
[root@foundation20 Desktop]$ usermod -G 1001 kk # 将kk的附加组变成1001 1001组必须存在
[root@foundation20 Desktop]$ usermod -aG 1002 kk # 给kk的附加组加上一个附加组1002 1002组必须存在
[root@foundation20 Desktop]$ usermod -c “home” kk #将用户说明改为 home
[root@foundation20 Desktop]$ usermod -md /home/mnt kk #将家目录改为 /home/mnt
[root@foundation20 Desktop]$ usermod -s /bin/sh kk #将默认shell执行文件改为/bin/sh
总结
usermod -l | 修改用户名称 |
---|---|
usermod -u | 修改用户uid |
usermod -g | 修改用户的gid |
usermod -G | 修改用户附加组 |
usermod -aG | 指定用户的附加组 |
usermod -c | 修改用户的说明 |
usermod -md | 修改用户家目录 |
usermod -s | 修改用户的shell类型 |
4.9 用户认证文件的内容分析
4.9.1 用户认证信息文件介绍
(1)/etc/shadow文件下为用户认证信息
(2)执行以下命令可得到部分用户认证信息文件
[root@foundation20 Desktop]$ tail -n 3 /etc/shadow
(3)部分用户认证信息及表示
we:!!:18271:0:99999:7:::
按照:分为以下九个信息
we | 用户名称 |
---|---|
!! | 用户密码 |
18271 | 密码已经使用时间 |
0 | 密码最短有效期 |
99999 | 密码最长有效期 |
7 | 密码到期前警告 |
密码非活跃天数 | |
密码到期日 | |
用户自定义 |
4.9.2 用户认证修改
4.9.2.1 passwd修改
命令 | 效果 |
---|---|
passwd | 修改用户密码 |
passwd - e | 将密码已经使用时间清零 |
passwd - n | 修改密码最短有效期 |
passwd - x | 修改密码最长有效期 |
passwd - w | 修改密码到期前警告 |
passwd - i | 修改密码非活跃天数 |
passwd -S | 查看密码状态 |
passwd - l | 锁定用户 |
passwd - f | 强制退出 |
passwd - u | 解锁 |
passwd - d | 删除密码 |
4.9.2.2 chage修改
命令 | 效果 |
---|---|
chage - d | 修改密码已经使用时间 |
chage - m | 修改密码最短有效期 |
chage - M | 修改密码最长有效期 |
chage - W | 修改密码到期前警告 |
chage - I | 修改密码非活跃天数 |
chage - E | 修改密码到期日 |
以上修改指令可用以下命令进行查看
[root@foundation20 Desktop]$ watch -n 1 "tail -n 3 /etc/shadow"
4.10 用户权力下放
- sudo可以把某些超级权限针对性下放,且不需要超级用户密码,前提是修改系统文件权力下放,才能用sudo 来执行更高的权限。
例子:权力下放,使得在普通用户也可建立并删除用户。
(1)在root用户下执行以下命令修改配置文件
[root@foundation20 Desktop]$ visudo
(2)在100行左右增加student用户可以进行useradd和userdel权限代码
(3)切换student用户可以进行用户建立和用户删除
[root@foundation20 Desktop]$ su - student #切换用户
[root@foundation20 Desktop]$ sudo useradd kk #建立kk用户
[root@foundation20 Desktop]$ sudo userdel -r kk #删除kk用户
注意使用上级权限时使用sudo