day4.2

day4.3

用户管理

# Linux中用户的概括
用户指的是能够正常登录Linux或windows系统
# 与windows用户的区别
支持同一个用户多个设备同时登录
支持不同的用户多个设备同时登录
# 用户的作用
1.系统上每一个进程都需要特定的用户运行
2.每一个文件都有特定的用户拥有,所以访问一个文件或目录受到用户的限制
3.进程能够以何种方式访问某一个文件或目录,与进程所关联的用户有关

查看系统用户的命令

# 查看用户特定信息
id:默认情况下不加用户名,则查看当前登陆用户的信息

# 语法
id 用户名
[root@localhost ~]# id wc
uid=1000(wc)	用的id号
gid=1000(wc)	用户组号
groups=1000(wc) 该用户的所有信息

# 查看进程
[root@localhost ~]# ps -ef

系统用户相关配置文件

# 用户信息配置文件
/etc/passwd

举例
[root@28technicians ~]# 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

第一列 第二列 第三列 第四列 第五列 第六列 第七列
内容 root x 0 0 root /root /bin/bash
作用 用户名 密码占位符 uid gid 描述信息 用户的家目录 用户登陆的shell
# /etc/shadow
存放用户密码相关信息文件

[root@28technicians ~]# cat /etc/shadow
root:$6$HIZwKMy6GZ5jHzYA$cnBPWWwBCT4b69LHBPI9T25nhOTMNwa6u/jcTYJa4xwHPSzEGoYaAwT5MzkQ5Fx.zinjBQGj/nHiqchE109UX/::0:99999:7:::
bin:*:17834:0:99999:7:::
daemon:*:17834:0:99999:7:2:66275
以:为分隔符 第一列 第二列 第三列 第四列 第五列 第六列 第七列 第八列 第九列
内容 root *(!!)没加密 17834 0 99999 7 2 66275
作用 用户名 密码(加密) 从1970年开始 上一次修改密码过了多少天 密码最少使用多少天,0代表没有限制 密码最大使用多少天 密码快过期的7天提示要修改密码 密码过期后强制修改密码 用户快过期时间从1970年开始
#用户的分类
用户的uid 系统中含义
0 超级管理员用户
1-200 系统用户(系统自己创建的)
201-999 系统用户(可以手动创建的)
1000+ 普通用户
# 用户组信息配置文件
/etc/group

举例
[root@28technicians ~]# cat /etc/group
root:x:0:
bin:x:1:
daemon:x:2:

# 用户组密码储存文件
/etc/gshadow

举例
[root@28technicians ~]# cat /etc/gshadow
root:::
bin:::
daemon:::

chage命令修改用户信息(了解)

-d	设置用户两次改变密码之间使用天数
-d //设置最近一次更改密码时间, 0下次登陆系统强制修改密码
-m //设置用户两次改变密码之间使用"最小天数"
-M //设置用户两次改变密码之间使用"最大天数"
-W //设置密码更改警告时间将过期警告天数设为“警告天数”
-I //设置密码过期天数后, 密码为失效状态
-E //设置用户过期时间, 账户失效后无法登陆
-l //显示用户信

用户操作命令

用户创建

# useradd adduser

创建用户在默认情况下,会同时创建出跟该用户名相同的组,跟uid相同的uid,除非-g指定组,则不会创建同名组

# 语法
useradd [选项]... 用户名

# 选项
-u:创建用户时指定用户的uid

举例
[root@28technicians ~]# useradd wc1 -u 666
[root@28technicians ~]# id wc1
uid=666(wc1) gid=1001(wc1) groups=1001(wc1)

-g:创建用户时指定用户的gid 指定用户组名(改组必须存在)

举例
[root@28technicians ~]# useradd wc2 -g root
[root@28technicians ~]# id wc2
uid=1001(wc2) gid=0(root) groups=0(root)

-G:创建用户时指定用户的附加组(改组必须存在)

举例
[root@28technicians ~]# useradd wc2 -G root
[root@28technicians ~]# id wc2
uid=1001(wc2) gid=1001(wc2) groups=1001(wc2),0(root)

-c:创建用户指定用户的描述信息

举例
[root@28technicians ~]# useradd wc2 -c 'dsb'
[root@28technicians ~]# cat /etc/passwd
wc2:x:1001:1001:dsb:/home/wc2:/bin/bash

-d:创建用户时指定用户的家目录(该目录可以不存在,会自动创建)
-m:修改用户时迁移用户的家目录,必须配合-d使用

举例
[root@28technicians ~]# useradd wc2 -d /dsb
[root@28technicians ~]# cat /etc/passwd
wc2:x:1001:1001:dsb:/dsb:/bin/bash

[root@28technicians ~]# useradd wc2 -m -d /home/aaa
[root@28technicians ~]# cat /etc/passwd
wc2:x:1001:1001:dsb:/home/aaa:/bin/bash
-M:创建用户时不能创建用户的家目录

举例
[root@28technicians ~]# useradd wc2 -M 
[root@28technicians ~]# cat /etc/passwd
wc2:x:1001:1001:dsb:/home/wc2:/bin/bash
-s:创建用户时指定登陆的shell(默认是/bin/bash)

举例
[root@28technicians ~]# useradd wc2 -s /sbin/nologin
[root@28technicians ~]# cat /etc/passwd
wc2:x:1001:1001:dsb:/home/wc2:/sbin/nologin
-r:创建用户时指定用户为系统用户

举例
[root@28technicians ~]# useradd wc3 -r
[root@28technicians ~]# cat /etc/passwd
wc3:x:998:996::/home/wc3:/bin/bash
# 报错1
[root@localhost ~]# useradd zls1 -u 666 -g 666
useradd: group '666' does not exist
原因:666这个组不存在,前提,-g必须加入到一个已存在的组
# 报错2
[root@localhost ~]# mkdir /dsb
[root@localhost ~]# useradd hl1 -d /dsb/
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:修改用户附加组的时候,配合-a追加使用
-c:修改用户时指定用户的描述信息
-d:修改用户时指定用户的家目录(该目录可以不存在,会自动创建)
-M:修改用户时不创建用户的家目录
-s:修改用户时指定用户登录的shell(默认是/bin/bash)
-r:修改用户时指定用户为系统用户
---------------------------------------

-l:更改用户登录名
-L:锁定用户
-U:解锁用户

举例
[root@localhost ~]# id wc1
uid=1001(wc1) gid=1001(wc1) groups=1001(wc1),0(root),1000(zhu)
[root@localhost ~]# usermod wc1 -G hl
[root@localhost ~]# id wc1
uid=1001(wc1) gid=1001(wc1) groups=1001(wc1),1003(hl)
# -aG
[root@localhost ~]# id wc1
uid=1001(wc1) gid=1001(wc1) groups=1001(wc1),0(root),1000(zhu)
[root@localhost ~]# usermod wc1 -aG hl
[root@localhost ~]# id wc1
uid=1001(wc1) gid=1001(wc1) groups=1001(wc1),0(root),1000(zhu),1003(hl)
# -md
[root@localhost ~]# usermod hl -m -d /home/hl
# -s[root@localhost ~]# usermod hl -m -d /home/hl
# -l[root@localhost ~]# usermod hl3 -l hl38
## 报错
[root@localhost ~]# usermod hl3 -l hl38
usermod: user hl3 is currently used by process 70107
原因:hl3用户当前正在被PID为70107进程占用,所以无法修改

删除用户

usedel delete

注意:删除用户,默认情况下,只删除用户本身,其他相关目录文件不会删除

# 语法
usedel [选项]... 用户名

# 选项
-r:递归删除,用户所有相关文件

举例
[root@28technicians ~]# userdel -r wc2

# 警告
[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选项,没有删干净(用户同样可以创建出来)

查看用户其他命令

[root@28technicians ~]# who
用户      终端         登陆时间         从哪里连接
root     tty1         2022-04-02 13:46
root     pts/1        2022-04-02 15:14 (10.0.0.1)
[root@28technicians ~]# w
 16:59:25 up  3:12,  2 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1                      13:46    3:12m  0.01s  0.01s -bash
root     pts/1    10.0.0.1         15:14    5.00s  0.05s  0.00s w
[root@28technicians ~]# whoami
root
posted @   Gabydawei  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示