Day08-linux的用户管理

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

你可能感兴趣的:(Day08-linux的用户管理)