0
点赞
收藏
分享

微信扫一扫

用户管理

Linux中用户的概述

用户指的是能够正常登录Linux或windows系统

与windows用户的区别:

  • 支持同一个用户多个设备同时登录

  • 支持不同的用户多个设备同时登录

用户的作用

1)系统上的每一个进程(运行的程序)都需要特定的用户运行
2)每一个文件都有特定的用户拥有,所以访问一个文件或目录受到用户的限制
3)进程能够以何种方式访问某一个文件或目录, 与进程所关联的用户有关

查看系统中用户的命令

## 查看指定用户的信息
id:默认情况不加用户名则查看当前登录用户的信息
## 语法:
id +用户名
[root@shiying ~]# id
uid=0(root)      # UserID:用户id号
gid=0(root)      # GroupID:用户组id号
groups=0(root)   # 该用户的所有组信息
## 查看进程(每个进程的运行用户)
[root@shiying ~]# ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 15:27 ?        00:00:00 /usr/lib/systemd/systemd --switched-root --system --d
root          2      0  0 15:27 ?        00:00:00 [kthreadd]

系统用户相关的配置文件

## 用户信息配置文件
/etc/passwd
## 用户密码存储文件
/etc/shadow
## 用户组信息配置文件
/etc/group
## 用户组密码存储文件
/etc/gshadow

/etc/passwd

[root@shiying ~]# 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
## 文件内容
root:x:0:0:root:/root:/bin/bash
dbus:x:81:81:System message bus:/:/sbin/nologin


第一列

第二列

第三列

第四列

第五列

第六列

第七列

内容

root

x

0

0

root

/root

/bin/bash

作用

用户名

密码占位符

UID

gid

描述信息

用户的家目录

用户登录的shell

/etc/shadow

## 存放用户密码相关信息文件
[root@shiying ~]# cat /etc/shadow
root:$6$GUY3i8reYZ6Rkqc2$HXAouiJtMztlG4NWi.GeyWnHsOBnqTTYLFtgxA01JcW5sm.SphZS/BaWph6iKSA3LDQ6osapw0eaR.7VlpBtL/::0:99999:7:::
bin:*:18353:0:99999:7:::
daemon:*:18353:0:99999:7:::
adm:*:18353:0:99999:7:::


第一列

第二列

第三列

第四列

第五列

第六列

第七列

第八列

第九列

内容

bin

* !!(没密码)

18353

0

99999

7

作用

用户名

密码(加密)

从1970年开始上一次修改密码过了多少天

密码最少使用多少天,0代表没有限制

密码最多使用多少天

密码快过期前7天提示要修改

密码过期后X天强制修改密

用户账户过期时间从1970年开

保留位

用户分类(约定、规范CentOS7)

用户UID

系统中含义

0

超级管理员用户

1-200

系统用户(系统自己创建的)

201-999

系统用户(可以手动创建)

1000+

普通用户

chage命令修改用户信息

-d //设置最近一次更改密码时间, 0下次登陆系统强制修改密码
-m //设置用户两次改变密码之间使用"最小天数"
-M //设置用户两次改变密码之间使用"最大天数"
-W //设置密码更改警告时间将过期警告天数设为“警告天数”
-I //设置密码过期天数后, 密码为失效状态
-E //设置用户过期时间, 账户失效后无法登陆
-l //显示用户信息
//修改时间为2014年08月31日,和图中时间匹配,方便后续验证[root@zls ~]# date -s '20140831'
Sun Aug 3100:00:00 CST 2014
[root@zls ~]# date
Sun Aug 3100:00:01 CST 2014
[root@zls ~]# useradd zls1
[root@zls ~]# echo "123" |passwd --stdin zls1
[root@zls ~]# tail -1/etc/shadow
zls1:!!:16312:0:99999:7:::
//设置最近一次修改密码时间
[root@zls ~]# chage -d "2014-09-01" zls1
[root@zls ~]# tail -n1 /etc/shadow
zls1:!!:16314:0:99999:7:::
//设置最短使用密码时间
[root@zls ~]# chage -m 2 zls1
[root@zls ~]# tail -n1 /etc/shadow
zls1:!!:16314:2:99999:7:::
//设置密码最长使用时间
[root@zls ~]# chage -M 15 zls1
[root@zls ~]# tail -n1 /etc/shadow
zls1:!!:16314:2:15:7:::
//设置密码警告时间
[root@zls ~]# chage -W 6 zls1
[root@zls ~]# tail -n1 /etc/shadow
zls1:!!:16314:2:15:6:::
[root@zls ~]# chage -W 7 zls1
[root@zls ~]# tail -n1 /etc/shadow
zls1:!!:16314:2:15:7:::
//设置密码过期时间
[root@zls ~]# chage -I 5 zls1
[root@zls ~]# tail -n1 /etc/shadow
zls1:!!:16314:2:15:6:5::
//设置用户过期时间
[root@zls ~]# chage -E "20115-08-31" zls1
[root@zls ~]# tail -n1 /etc/shadow
zls1:!!:16314:2:15:6:5:6627567:
[root@zls ~]# chage -l zls1
Last password change            : Sep 01, 2014             //最近一次更改密码时间
Password expires                : Sep 16, 2014            //密码过期时间
Password inactive               : Sep 21, 2014           //密码失效时间
Account expires                 : Aug 31, 2015          //用户失效时间
Minimum number of days between password change      : 2  //密码最短使用时间
Maximum number of days between password change      : 15 //密码最长使用时间
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-2

用户操作命令

用户创建
useradd adduser
注意:创建用户在默认不指定组的情况下,会同时创建出跟该用户名相同的组,跟uid相同的gid,除非-g指定组,则不会创建同名组
## 语法useradd [选项]... 用户名
## 选项
-u:创建用户时指定用户的uid
-g:创建用户时指定用户的gid 指定用户组名(该组必须存在)
-G:创建用户时指定用户的附加组(该组必须存在)
-c:创建用户时指定用户的描述信息
-d:创建用户时指定用户的家目录(该目录可以不存在,会自动创建)
-M:创建用户时不创建用户的家目录
-s:创建用户时指定用户登录的shell(默认是/bin/bash)
-r:创建用户时指定用户为系统用户
## 创建用户举例
[root@shiying ~]# useradd ss
## -u -g
[root@shiying ~]# useradd shiying1 -u 666 -g root
[root@shiying ~]# id shiying1
uid=666(shiying1) gid=0(root) groups=0(root)
## -G
[root@shiying ~]# useradd oo -G root,yy
[root@shiying ~]# id oo
uid=1003(oo) gid=1003(oo) groups=1003(oo),0(root),1002(yy)
[root@shiying ~]# useradd qq -g oo
[root@shiying ~]# id qq
uid=1005(qq) gid=1003(oo) groups=1003(oo)
##-c
[root@shiying ~]# useradd pp -c '5555'
[root@shiying ~]# cat /etc/passwd
pp:x:1004:1004:5555:/home/pp:/bin/bash
## -d
[root@shiying ~]# useradd rr -d /666
[root@shiying ~]# cat /etc/passwd
rr:x:1006:1006::/666:/bin/bash
##-M
[root@shiying ~]# useradd tt -M
[root@shiying ~]# cat /etc/passwd
tt:x:1008:1008::/home/tt:/bin/bash
[root@shiying ~]# ll /home/
total 0
drwx------. 2 oo       oo   62 Apr  2 20:33 oo
drwx------. 2 pp       pp   62 Apr  3 01:10 pp
drwx------. 2 qq       oo   62 Apr  3 01:29 qq
drwx------. 2 shiying1 root 62 Apr  2 01:25 shiying1
drwx------. 2 yy       yy   62 Apr  2 01:37 yy
## -s
[root@shiying ~]# useradd tt1 -s /sbin/nologin
## -r
[root@shiying ~]# useradd tt2 -r
[root@shiying ~]# id tt2
uid=665(tt2) gid=665(tt2) groups=665(tt2)
## 报错1
[root@shiying ~]# useradd shiying1 -u 666 -g 666
useradd: group '666' does not exist
原因:666这个组不存在,前提,-g必须加入到一个已存在的组
## 报错2
[root@shiying ~]# useradd ss -d /666
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
原因:使用-d指定用户的家目录时,家目录不能提前创建

修改用户

usermod  modify
## 语法
usermod [选项] 用户名
## 选项
-u:修改用户时指定用户的uid
-g:修改用户时指定用户的gid 指定用户组名(该组必须存在)
-G:修改用户时指定用户的附加组,会覆盖原来的附加组(该组必须存在)
-a:修改用户附加组的时候,配合-aG追加使用
-c:修改用户时指定用户的描述信息
-d:修改用户时指定用户的家目录(该目录可以不存在,会自动创建)
-M:修改用户时不创建用户的家目录
-s:修改用户时指定用户登录的shell(默认是/bin/bash)
-r:修改用户时指定用户为系统用户
-m:修改用户时迁移用户的家目录,必须配合-dm使用
---------------------------------------
-l:更改用户登录名
-L:锁定用户
-U:解锁用户
## 举例
[root@shiying ~]# id yy
uid=1002(yy) gid=1002(yy) groups=1002(yy)
## -a -G
[root@shiying ~]# usermod shiying1 -aG oo
[root@shiying ~]# id shiying1
uid=666(shiying1) gid=0(root) groups=0(root),1002(yy),1003(oo)
## -G
[root@shiying ~]# usermod shiying1 -G root,yy
[root@shiying ~]# id shiying1
uid=666(shiying1) gid=0(root) groups=0(root),1002(yy)
## -m -d
[root@shiying ~]# usermod rr -m -d /home/rr
[root@shiying ~]# ll /home/
drwx------. 2 rr       rr   62 Apr  3 01:34 rr
##-s
[root@shiying ~]# useradd aaa -s /sbin/nologin
[root@shiying ~]# cat /etc/passwd
aaa:x:1010:1010::/home/aaa:/sbin/nologin
[root@shiying ~]# usermod aaa -s/bin/bash
[root@shiying ~]# cat /etc/passwd
aaa:x:1010:1010::/home/aaa:/bin/bash
## -l
[root@shiying ~]# id yy
uid=1002(yy) gid=1002(yy) groups=1002(yy)
[root@shiying ~]# usermod yy -l yy666
[root@shiying ~]# usermod yy666 -m -d /home/yy666
[root@shiying ~]# cat /etc/passwd
yy666:x:1002:1002::/home/yy666:/bin/bash
## 报错
[root@localhost ~]# usermod hl3 -l hl38
usermod: user hl3 is currently used by process 70107
原因:hl3用户当前正在被PID为70107进程占用,所以无法修改

删除用户

userdel   delete
注意:删除用户,默认情况下,只删除用户本身,其他相关目录文件不会删除
## 语法
userdel [选项]... 用户名
## 选项
-r:递归删除,用户所有相关文件
## 举例
[root@shiying ~]# userdel -r tt1
# 警告
[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@shiying ~]# who
#用户    #终端          #登录时间          #从哪里连接过来
root     pts/0        2022-04-01 15:27 (10.0.0.1)
## 查看当前系统登录了哪些用户
[root@shiying ~]# w
02:10:10 up 10:43,  1 user,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    10.0.0.1         15:27    2.00s  0.09s  0.00s w
## 查看当前登录的用户
[root@shiying ~]# whoami
root


举报

相关推荐

0 条评论