1.什么是用户?
1.通俗的来说正常登录使用系统的用户
2.本质上window系统和linxu系统的用户没有什么区别。
3.linux系统支持多个用户同一时空网登录系统,互相之间不影响
4.window系统同一时刻只允许一个用户登录(指的是是个人版)
-普通用户,多个普通用户在逻辑上可以分为一个组,也可以一个用户存在与多个组
2.为什么要创建用户
1.系统上的每一个进程运行时,都需要一个特定的用户来运行
2.通常在公司是使用普通用户的服务器,因为root权限过大,容易造成故障。
3.如何查看系统中所存在的用户
[root@Eva ~]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@Eva ~]# id jack
uid=1000(jack) gid=1000(jack) groups=1000(jack)
4.创建的用户会在系统的哪个配置中保存信息
/etc/passwd 保存用户的基本属性
/etc/passwd中一行记录对应着一个用户,每行记录又被冒号(:)分隔为7个字段,其格式和具体含义如下:
[root@Eva ~]# head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
1)username 用户名
2)password 密码,现在保存在/etc/shadow 中
3)UID 用户ID
4)GID 主组ID
5)GECOS 用户注释
6)/home/dir 用户的家目录
7)shell 用户登入后使用的shell名称
/etc/shadow
[root@Eva ~]# head -1 /etc/shadow
root: : : 0 : 99999 : 7 : : :
用户密码存储在/etc/shadow,格式为(以“:”为分割符)
1)用户名
2)加密的密码
3)上次更改密码的日期(从1970-1-1开始)
4)最短密码期限(按天计算,0 = 无最短期限)
5)最长密码期限(按天计算)
6)密码警告期限(按天计算,0 = 未指定警告)
7)密码非活动期限(按天计算)
8)账号到期时间(从1970-1-1开始)
5系统对用户有一个约定
用户UID 含义
0 超级管理员,最高权限,有极强的破坏能力
1~200 系统用户,用来运行系统自带的进程,默认已创建
201~999 系统用户,用来运行用户安装的程序,无需登录系统
1000+ 普通用户,正常可以登录系统的胡勇,权限比较小,能执行的任务有限
ps:在CentOS7系统之前,UID-1-499用于系统用户,而UID 500+则用于普通用户
6.用户的创建、变更、删除
6.1 user添加用户
#1.创建bgx用户,UID5001,基本组students,附加组sa 注释信 息:2019 new student,登陆shell:/bin/bash
```
[root@Eva ~]# groupadd students
[root@Eva ~]# groupadd sa
[root@Eva ~]# useradd oldxu -u5001 -g students -G sa -c "2020 new" -s /bin/bash
#检查用户
[root@Eva ~]# id oldxu
uid=5001(oldxu) gid=6670(students) groups=6670(students),1000(sa)
#检查用户
[root@Eva ~]# grep "oldxu" /etc/passwd
oldxu:x:5001:6670:2020 new:/home/oldxu:/bin/bash
#2.创建mysql系统用户,-M不建立用户家目录 -s指定nologin使其用户 无法登陆系统
[root@Eva ~]# useradd -r -M -s /sbin/nologin mysql
#检查用户
[root@Eva ~]# id mysql
uid=997(mysql) gid=995(mysql) groups=995(mysql)
#检查用户
[root@Eva ~]# grep "mysql" /etc/passwd
mysql:x:997:995::/home/mysql:/sbin/nologin
#模拟登录
[root@Eva ~]# su mysql
This account is currently not available. #此帐户当前不可用。
#3.创建一个xlw用户,uid为6666,附加组为sa,用户的家目录 为/tmp/xlw 登陆的shell为/sbin/nologin
[root@Eva ~]# useradd od -u 777 -G sa -d /tmp/od -s /sbin/nologin
# PS: UID GID 在整个系统是唯一的. #选项
# -u 指定要创建用户的UID,不允许冲突
# -g 指定要创建用户默认组(基本组 主要的组)
# -G 指定要创建用户附加组,逗号隔开可添加多个附加组
# -d 指定要创建用户家目录
# -s 指定要创建用户的bash shell /bin/bash /sbin/nologin
# -c 指定要创建用户注释信息
# -M 给创建的用户不创建家目录
# -r 创建系统账户,默认无家目录 [999-200]
```
6.2 usermod 修改用户[重要程度一般]
```
#1.检查之前创建的od用户 [root@oldboyedu ~]# id od uid=777(od) gid=6667(od) groups=6667(od),1004(sa)
#2.修改od用户uid 9999、gid (devops),附加组 dba,sa,dsb
[root@Eva ~]# groupadd devops
[root@Eva ~]# groupadd dba
[root@Eva ~]# groupadd sa
[root@Eva ~]# groupadd dsb
[root@Eva ~]# usermod od -u9999 -g devops -aG dba,sa,dsb
#3.修改od用户的注释信息, 用户家目录, 登录shell, 登录名
[root@Eva ~]# usermod od -c "oldboyedu.com" -md /home/oldboy -s /bin/bash -l oldboy
[root@Eva ~]# grep "oldboy" /etc/passwdoldboy:x:9999:6668:oldboyedu.com:/home/oldboy:/bin/bas h
#选项 # -u 指定要修改用户的UID
# -g 指定要修改用户基本组
# -G 指定要修改用户附加组,使用逗号隔开多个附加组, 覆盖原有的附加组
#-aG 追加,不覆盖
# -d 指定要修改用户家目录
#-md 旧家搬新家 将环境一起搬过去
# -s 指定要修改用户的bash shell
# -c 指定要修改用户注释信息
# -l 指定要修改用户的登陆名
# -L 指定要锁定的用户
# -U 指定要解锁的用户
PS: 与用户相关的还有很多命令,以下简单列举一些,但都不是常用 命令,所以了解即可
1) 使用finger命名查询用户信息以及登录信息, 示例: finger UserName
2) 使用chfn命令修改用户信息,示例: chfn UserName
3) 使用chsh命令修改用户登录Bash Shell,示例: chsh UserName
4) 使用who、whoami、w检查用户登陆情况
```
6.3 userdel 删除用户
选项 -r 删除用户同时删除它的家目录
1. 删除user1用户,但不删除用户家目录和 mail spool
```
[root@ceshi ~]# userdel user1
```
2.-r参数可以连同用户家目录一起删除(慎用)
```
[root@ceshi ~]# userdel -r user1
```
PS: 与用户相关的还有很多命令,以下简单列举一些,但都不是常用命令,所以了解即可
1) 使用finger命名查询用户信息以及登录信息, 示例: finger UserName
2) 使用chfn命令修改用户信息,示例: chfn UserName
3) 使用chsh命令修改用户登录Bash Shell,示例: chsh UserName
4) 使用who、whoami、w检查用户登陆情况
```查看当前系统登录用户
[root@Eva ~]# who
root pts/0 2019-08-05 10:04 (10.0.0.1)
[root@Eva ~]# whoami
root
[root@Eva ~]# w
15:56:51 up 5:54, 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 10:04 3.00s 0.13s 0.00s w