用户管理
Posted 酱油拌饭
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用户管理相关的知识,希望对你有一定的参考价值。
用户管理
[toc]
Linux中用户的概述
用户指的是能够正常登录Linux或windows系统
Linux与windows用户的区别: 支持同一个用户多个设备同时登录
**支持不同的用户多个设备同时登录**
用户的作用
1。系统上的每一个进程(运行的程序)都需要特定的用户运行
2。每一个文件都有特定的用户拥有,所以访问一个文件或目录受到用户的限制
3。进程能够以何种方式访问某一个文件或目录, 与进程所关联的用户有关
查看系统中用户的命令
#命令:id
查看指定用户信息的命令: id 指定的用户名
[root@ltl ~]# id root
uid=0(root) gid=0(root) groups=0(root)
uid=0(root):用户的id号
gid=0(root):用户组的id号
groups=0(root):该用户的所有组信息
#查看运行状态的进程所属用户
ps -ef
[root@ltl ~]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 15:09 ? 00:00:00 /usr/lib/systemd/systemd --sw
root 2 0 0 15:09 ? 00:00:00 [kthreadd]
root 3 2 0 15:09 ? 00:00:00 [kworker/0:0]
root 4 2 0 15:09 ? 00:00:00 [kworker/0:0H]
root 5 2 0 15:09 ? 00:00:00 [kworker/u256:0]
root 6 2 0 15:09 ? 00:00:00 [ksoftirqd/0]
root 7 2 0 15:09 ? 00:00:00 [migration/0]
root 8 2 0 15:09 ? 00:00:00 [rcu_bh]
root 9 2 0 15:09 ? 00:00:00 [rcu_sched]
root 10 2 0 15:09 ? 00:00:00 [lru-add-drain]
root 11 2 0 15:09 ? 00:00:00 [watchdog/0]
root 13 2 0 15:09 ? 00:00:00 [kdevtmpfs]
root 14 2 0 15:09 ? 00:00:00 [netns]
系统用户的相关配置文件
## 用户信息配置文件
/etc/passwd
## 用户密码存储文件
/etc/shadow
## 用户组信息配置文件
/etc/group
## 用户组密码存储文件
/etc/gshadow
/etc/passwd
**用户信息配置存放文件**
[root@ltl ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
xwq:x:1000:1000::/home/xwq:/bin/bash
以:冒号为分隔符,每一组都有自己的含义,包括空位
内容 | root | x | 0 | 0 | root | /root | /bin/bash |
---|---|---|---|---|---|---|---|
作用 | 用户名 | 密码占位符 | uid | gid | 描述用户信息 | 用户家目录位置 | 用户登入的shell终端 |
/etc/shadow
#存放用户密码相关信息的文件
[root@ltl ~]# cat /etc/shadow
root:$6$ldfv5iXBv8umC40S$DefhQrrMNW4YOeIupCi0if/tDtYB.SGHlzs7nRXyaLj1T.9yuIMZZZm093SrRL7ybIAxLPG1VMr7zfEFiJIiU1::0:99999:7:::
bin:*:18353:0:99999:7:::
daemon:*:18353:0:99999:7:::
adm:*:18353:0:99999:7:::
lp:*:18353:0:99999:7:::
sync:*:18353:0:99999:7:::
shutdown:*:18353:0:99999:7:::
halt:*:18353:0:99999:7:::
mail:*:18353:0:99999:7:::
operator:*:18353:0:99999:7:::
games:*:18353:0:99999:7:::
ftp:*:18353:0:99999:7:::
nobody:*:18353:0:99999:7:::
systemd-network:!!:19065::::::
dbus:!!:19065::::::
polkitd:!!:19065::::::
sshd:!!:19065::::::
postfix:!!:19065::::::
xwq:$6$0ZJnlV4M$VvqxQBkiT5Kd/OSc0HBvRMhziCGHiCJNJKGUO7o.gI7I3ASUZHY810SDJt4ZUgb4IM9M9Y70ovVStYhDD2Odh0:19077:0:99999:7:::
还是以:为分隔符,每组的信息判别
第一列 | 第二列 | 第三列 | 第四列 | 第五列 | 第六列 | 第七列 | 第八列 | 第九列 | |
---|---|---|---|---|---|---|---|---|---|
内容 | root | *!!(代表没加密的密码 | (无) | 0 | 99999 | 7 | (无) | (无) | (无) |
作用 | 用户名 | 正常用户密码信息是显示乱码:密码(加密) | 从1970年开始上次该用户改密码的时间(天) | 第四列为密码可使用的时间(有期限的密码)0为没有限制 | 密码最多使用时间(天) | 密码过期前几天提示修改密码(我为过期前七天后提醒修改) | 密码过期几天后强制修改密码(无)代表不修改 | 账户的过期时间(天)从1970年开始算 | 保留位 |
用户id分类(约定、规范centos7)
用户UID | 系统中的含义 |
---|---|
0 | 超级管理员用户 |
1-200 | 系统用户(与系统同时存在的用户,是系统自己创建) |
201-999 | 系统用户(可手动创建的系统类用户) |
1000+ | 普通用户 |
chage命令修改用户信息,或追加
-d //设置最近一次更改密码时间, 0下次登陆系统强制修改密码
-m //设置用户两次改变密码之间使用"最小天数"
-M //设置用户两次改变密码之间使用"最大天数"
-W //设置密码更改警告时间 将过期警告天数设为“警告天数”
-I //设置密码过期天数后, 密码为失效状态
-E //设置用户过期时间, 账户失效后无法登陆
-l //显示用户信息
#该项命令使用的概率很低,稍微了解即可,都是用于设用户名 ,文件
chage -d 命令 选项 时间 目标用户名
chage -m 命令 选项 天数 目标用户名
chage -M 命令 选项 天数 目标用户名
chage -W 命令 选项 天数 目标用户名
chage -I 命令 选项 天数 目标用户名
chage -E 命令 选项 时间 目标用户名
chage -l 命令 选项 目标用户名
[root@ltl ~]# chage -l root
Last password change : never #最近一次更改密码时间
Password expires : never #密码过期时间
Password inactive : never #密码失效时间
Account expires : never #用户失效时间
Minimum number of days between password change : 0 #密码最短使用时间
Maximum number of days between password change : 99999 #密码最长使用时间
Number of days of warning before password expires : 7 #密码过期前警告天数
#验证方法,调整时间来达到系统提示需求,曾导的举例
1.验证普通用户是否能修改密码, 不需要调整时间。
2.普通用户登陆系统后, 会提示警告密码还剩多少天过期
[root@zls ~]# date -s "2014-09-12"
3.普通用户登陆系统后, 强制要求修改密码
[root@zls ~]# date -s "2014-09-18"
4.普通用户登陆系统后, 提示账户已过期
[root@zls ~]# date -s "2014-09-23"
用户操作命令
用户创建
#useradd #adduser 两个命令都可,老版本系统可能用不了adduser
注意:创建用户在默认不指定组的情况下,会同时创建出跟该用户名相同的组,跟uid相同的gid,除非-g指定组,则不会创建同名组
## 语法
useradd [选项]... 用户名
## 选项
-u:创建用户时指定用户的uid # 3 创建时指定三号位信息
-g:创建用户时指定用户的gid 指定用户组名(该组必须存在) # 4 创建时指定四号位信息
-G:创建用户时指定用户的附加组(该组必须存在) # 4 创建时指定四号位信息
-c:创建用户时指定用户的描述信息 # 5 创建时指定五号位信息
-d:创建用户时指定用户的家目录(该目录可以不存在,会自动创建) # 6 创建时指定六号位信息
-m:修改用户时迁移用户的家目录,必须配合-d使用 # 6 修改六号位信息,与-d配合使用
-M:创建用户时不创建用户的家目录 # 6 创建时指定六号位信息,不要家目录
-s:创建用户时指定用户登录的shell(默认是/bin/bash) # 7 创建时指定七号位信息,修改指定登入shell
-r:创建用户时指定用户为系统用户 # 创建时指定自动补全用户信息,在201-999的UID之间,手动创建的系统用户
1 2 3 4 5 6 7
| 内容 | root | x | 0 | 0 | root | /root | /bin/bash |
1 2 3 4 5 6 7
| 作用 | 用户名 | 密码占位符 | uid | gid | 描述用户信息 | 用户家目录位置 | 用户登入的shell终端 |
修改用户命令
命令:usermod
#语法
命令 选项 目标用户
# 选项
-u:修改用户时指定用户的uid
-g:修改用户时指定用户的gid 指定用户组名(该组必须存在)
-G:修改用户时指定用户的附加组,会覆盖原来的附加组(该组必须存在)
-a:修改用户附加组的时候,配合-a追加使用
-c:修改用户时指定用户的描述信息
-d:修改用户时指定用户的家目录(该目录可以不存在,会自动创建)
-M:修改用户时不创建用户的家目录
-s:修改用户时指定用户登录的shell(默认是/bin/bash)
-r:修改用户时指定用户为系统用户
#道理与创建相同,只是变成了修改
1 2 3 4 5 6 7
| 内容 | root | x | 0 | 0 | root | /root | /bin/bash |
1 2 3 4 5 6 7
| 作用 | 用户名 | 密码占位符 | uid | gid | 描述用户信息 | 用户家目录位置 | 用户登入的shell终端 |
#额外选项
-l:更改用户登录名
-L:锁定用户
-U:解锁用户
#报错
## 报错
[root@localhost ~]# usermod hl3 -l hl38
usermod: user hl3 is currently used by process 70107
原因:hl3用户当前正在被PID为70107进程占用,所以无法修改
#杀进程,kill 目标id
删除用户
命令:userdel
默认情况下只删除用户,用户的相关文件不会删除
#语法
命令 选项 目标用户名
#选项
-r:递归删除,用户所有相关文件
## 举例 默认情况删除用户,家目录依然存在,可用rm -f 删除
[root@ltl ~]# userdel xxx
[root@ltl ~]# ll /home
drwx------ 2 1001 1001 62 Apr 3 16:20 xxx
-r举例
[root@ltl ~]# ll /home
total 4
drwx------ 2 mmm mmm 62 Apr 3 16:22 mmm
[root@ltl ~]# userdel -r mmm
[root@ltl ~]# ll /home
total 4
drwxr-xr-x. 3 root root 19 Mar 21 11:00 oldboy
drwx------. 4 xwq xwq 108 Mar 27 01:07 xwq
drwx------ 2 1001 1001 62 Apr 3 16:20 xxx
drwxr-xr-x. 4 root root 32 Mar 21 11:00 zls
#报错
[root@ltl ~]# useradd xxx
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
Creating mailbox file: File exists
#提示该用户以前创建过,没有删干净,(但是用户一样可以创建出来,且继承之前的目录)
查看用户其他命令
## 查看当前系统登录了哪些用户
[root@localhost ~]# who
#用户 #终端 #登录时间 #从哪里连接过来
root tty1 2022-03-14 16:47
root pts/0 2022-04-01 11:00 (10.0.0.1)
root pts/1 2022-03-23 12:22 (10.0.0.1)
root pts/2 2022-03-21 09:16 (10.0.0.1)
root pts/3 2022-03-23 12:22 (10.0.0.1)
hl2 pts/4 2022-04-01 11:13 (10.0.0.1)
hl38 pts/5 2022-04-01 12:00 (10.0.0.1)
## 查看当前系统登录了哪些用户
[root@localhost ~]# w
12:09:03 up 11 days, 5:20, 6 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 10.0.0.1 11:00 7.00s 0.77s 0.09s tail -f
/var/log/messages
root pts/1 10.0.0.1 23Mar22 7.00s 0.51s 0.00s w
root pts/2 10.0.0.1 21Mar22 8days 0.04s 0.04s -bash
root pts/3 10.0.0.1 23Mar22 8days 0.06s 0.06s -bash
hl2 pts/4 10.0.0.1 11:13 54:15 0.08s 0.08s -bash
hl38 pts/5 10.0.0.1 12:00 8:29 0.06s 0.06s -bash
## 查看当前登录的用户
[root@localhost ~]# whoami
root
#曾导标注的很清楚了
以上是关于用户管理的主要内容,如果未能解决你的问题,请参考以下文章