用户,又称使用者,是指使用电脑或网络服务的人,通常拥有一个用户账号,并以用户名识别。
正常登录Linux或Windows系统,本质都是登陆系统,但是Linux支持同一时间多个用户同时登陆windows默认不支持,但是修改组策略的情况下也是可以多用户登录的。
Linux下的用户的作用
查看系统中所存在的用户
1.查看当前登录的用户信息
[root@localhost ~]# id #查看当前登录用户信息 uid=0(root) gid=0(root) groups=0(root) UserID:用户id号|GroupID:用户组ID号|该用户的所有组信息
2.每一个进程都会由一个用户身份运行
[root@localhost ~]# ps aux|less #下面结果的第一列就是用户名称 root 33782 0.0 0.0 0 0 ? R 02:46 0:00 [kworker/u256:0] root 35637 0.0 0.0 0 0 ? R 05:11 0:03 [kworker/0:2]
用户信息配置文件 /etc/passwd 用户密码存储文件 /etc/shadow 用户组信息配置文件 /etc/group 用户组密码存储文件 /etc/gshadow
Linux系统会将用户的信息存放在/etc/passwd,记录了用户的信息,但没有密码信息,密码被存放在/etc/shadow中。
1./etc/passwd 配置文件解释如下图
2./etc/shadow 配置文件解释如下图
用户UID | 系统中含义 |
---|---|
0 | 超级管理员用户 |
1-200 | 系统用户,用来运行系统自带的进程,默认已创建 |
201~999 | 系统用户,用来运行用户安装的程序,所以此类用户无需登录系统 |
1000+ | 普通用户,正常可以登陆系统的用户权限比较小能执行的任务有限 |
chage命令修改用户信息
-d 设置最近一次更改密码时间, 0下次登陆系统强制修改密码 -m 设置用户两次改变密码之间使用"最小天数"12 -M 设置用户两次改变密码之间使用"最大天数" -W 设置密码更改警告时间将过期警告天数设为“警告天数” -I 设置密码过期天数后, 密码为失效状态 -E 设置用户过期时间, 账户失效后无法登陆 -l 显示用户信息
-d 设置最近一次更改密码时间, 0下次登陆系统强制修改密码
-m:设置用户两次改变密码之间使用的最小天数
-M :设置用户两次改变密码之间使用最大天数
-W:设置密码更改警告天数,将过期天数设为警告天数
-I:设置密码过期天数后密码为失效状态
-E:设置用户过期时间,账户失效后无法登录
-l:显示用户信息
用户创建
useradd adduser 注意:创建用户在默认不指定组的情况下,会同时创建出跟该用户名相同的组,跟uid相同的gid,除非-g指定组,则不会创建同名组 ## 语法 useradd [选项]... 用户名 ## 选项 -u:创建用户时指定用户的uid -g:创建用户时指定用户的gid 指定用户组名(该组必须存在) -G:创建用户时指定用户的附加组(该组必须存在) -c:创建用户时指定用户的描述信息 -d:创建用户时指定用户的家目录(该目录可以不存在,会自动创建) -m:修改用户时迁移用户的家目录,必须配合-d使用 -M:创建用户时不创建用户的家目录 -s:创建用户时指定用户登录的shell(默认是/bin/bash) -r:创建用户时指定用户为系统用户
创建用户
[root@localhost ~]# useradd lw
-u -g创建用户时指定用户的gid 指定用户组名(该组必须存在)
[root@localhost ~]# useradd lw1 -u 666 -g root [root@localhost ~]# id lw1uid=666(zls1) gid=0(root) groups=0(root)
-G:创建用户时指定用户的附加组(该组必须存在)
[root@localhost ~]# useradd lw -G root,zhujiao [root@localhost ~]# id lw uid=1001(lw) gid=1001(lw) groups=1001(lw),0(root),1000(zhujiao)[root@localhost ~]# useradd lw1 -g zhujiao [root@localhost ~]# id lw1 uid=1002(lw1) gid=1000(zhujiao) groups=1000(zhujiao
修改用户
usermod modify ## 语法 usermod [选项] 用户名 ## 选项 -u:修改用户时指定用户的uid -g:修改用户时指定用户的gid 指定用户组名(该组必须存在) -G:修改用户时指定用户的附加组,会覆盖原来的附加组(该组必须存在) -a:修改用户附加组的时候,配合-a追加使用 -c:修改用户时指定用户的描述信息 -d:修改用户时指定用户的家目录(该目录可以不存在,会自动创建) -M:修改用户时不创建用户的家目录 -s:修改用户时指定用户登录的shell(默认是/bin/bash) -r:修改用户时指定用户为系统用户 --------------------------------------- -l:更改用户登录名 -L:锁定用户 -U:解锁用 ## 报错 [root@localhost ~]# usermod lw -l lw1 usermod: user lw is currently used by process 70107 原因:lw用户当前正在被PID为70107进程占用,所以无法修改
删除用户
userdel delete 注意:删除用户,默认情况下,只删除用户本身,其他相关目录文件不会删除 ## 语法 userdel [选项]... 用户名 ## 选项 -r:递归删除,用户所有相关文件 ## 警告 [root@localhost ~]# useradd test useradd: warning: the home directory already exists.Not copying any file from skel directory into it.Creating mailbox file: File exists 原因:创建用户时,该用户以前创建过,但是在删除时没有加-r选项,没有删干净(用户同样可以创建出来) 记录:useradd mysql -s /sbin/nologin -M
查看用户其他命令
## 查看当前系统登录了哪些用户 [root@localhost ~]# who #用户 #终端#登录时间 #从哪里连接过来 root tty1 2022-03-1416:47 root pts/0 2022-04-0111:00 (10.0.0.1) root pts/1 2022-03-2312:22 (10.0.0.1) root pts/2 2022-03-2109:16 (10.0.0.1) root pts/3 2022-03-2312:22 (10.0.0.1) lw pts/4 2022-04-0111:13 (10.0.0.1) lw2 pts/5 2022-04-0112: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 lw pts/4 10.0.0.1 11:13 54:15 0.08s 0.08s -bash lw2 pts/5 10.0.0.1 12:00 8:29 0.06s 0.06s -bash ## 查看当前登录的用户 [root@localhost ~]# whoami root