Day08-用户管理1(Linux系统的用户是什么),usera
2019-08-05 本文已影响25人
郝煜_Hyman
1.什么是用户?
能正常登陆系统的都算用户
-
windows系统和linux系统的用户有什么区别?
本质上没有区别,linux支持多个用户同一时刻登陆系统,互相之间不影响。
而windows只允许同一时刻不允许多个用户登录, (WindowsServer2008除外)。
2.为什么要创建用户?
1.系统上的每一个进程(运行的程序),都需要一个特定的用户运行。
2.通常在公司是使用普通用户管理服务器,因为root权限过大,容易造成故障。
3.如何查看系统中所存在的用户?
[root@haoyu1 ~]# id #id默认是查看当前用户的信息
uid=0(root) gid=0(root) groups=0(root)
[root@haoyu1 ~]# id hyman1 #查看用户hyman1的信息
uid=6667(hyman1) gid=6667(hyman1) groups=6667(hyman1)
4.创建用户会在系统的哪个配置中保存信息?
当创建一个用户时,系统会操作/etc/passwd /etc/shadow
这两个文件,变更文件中的内容。
[root@haoyu1 ~]# head -1 /etc/passwd #查看/etc/passwd的第一行
root:x:0:0:root:/root:/bin/bash #以:作为分隔符,总共七列
root:x:0:0:root:/root:/bin/bash #以:作为分隔符,总共七列 |
---|
第一列 root:用户名称 |
第二列 x:密码占位符 |
第三列 0:用户UID |
第四列 0:组GID |
第五列 root注释信息 |
第六列 /root用户家目录 |
第七列 /bin/bash登录shell |
[root@haoyu1 ~]# head -1 /etc/shadow #查看/etc/shadow的第一行
hyman1:!!:16312:0:99999:7:2:66275: #以:作为分隔符,总共九列
hyman1:!!:16312:0:99999:7:2:66275: |
---|
第一列 hyman1:用户名称 |
第二列 !!:密码为一长串字符,!!则表示无密码 |
第三列 16312:最近一次变更密码,从1970年到现在,过了多少天 |
第四列 0:密码最少使用天数,0无限制 |
第五列 99999:密码最长使用天数,默认99999不过期 |
第六列 7:密码到期前,系统会在密码到期前7天提醒变更密码 |
第七列 2:密码到期后,密码过期后2天强制提示变更用户密码 |
第八列 66275:账户失效时间,从1970年起,账户在这个日期前可使用,到期后失效 |
5.系统对用户有一个约定?
用户UID | 系统中约定的含义 |
---|---|
0 | 超级管理员,最高权限,有着极强的破坏能力 |
1~200 | 系统用户,用来运行系统自带的进程,默认已创建 |
201~999 | 系统用户,用来运行用户安装的程序,所以此类用户无需登录系统 |
1000+ | 普通用户,正常可以登录系统的用户,权限比较小,能执行的任务有限 |
PS:在CentOS7系统之前,UID1-499用于系统用户,而UID500+则用于普通用户。
6.下面我们就围绕着用户的创建、变更、删除等来讲讲涉及到的命令: useradd、usermod、userdel
useradd添加用户
1.创建bgx用户,UID5001,基本组students,附加组sa 注释信 息:2019 new student,登陆shell:/bin/bash
[root@hyman1 ~]# groupadd students
[root@hyman1 ~]# groupadd sa
[root@hyman1 ~]# useradd oldxu -u5001 -g students G sa -c "2020 new" -s /bin/bash
- 检查用户
[root@hyman1 ~]# id oldxu
uid=5001(oldxu) gid=1003(students) groups=1003(students),1004(sa)
- 检查用户
[root@hyman1 ~]# grep "oldxu" /etc/passwd
oldxu:x:5001:1003:2020 new:/home/oldxu:/bin/bash
2.创建mysql系统用户,-M不建立用户家目录 -s指定nologin使其用户无法登陆系统
[root@hyman1 ~]# useradd -r -M -s /sbin/nologin mysql
- 检查用户
[root@hyman1 ~]# id mysql
uid=997(mysql) gid=995(mysql) groups=995(mysql)
- 检查用户
[root@hyman1 ~]# grep "mysql" /etc/passwd
mysql:x:997:995::/home/mysql:/sbin/nologin
- 模拟登陆.登陆失败
[root@hyman1 ~]# su - mysql
This account is currently not available.
3.创建一个xlw用户,uid为6666,附加组为sa,用户的家目录 为/tmp/xlw 登陆的shell为/sbin/nologin
[root@hyman1 ~]# useradd od -u 777 -G sa -d /tmp/od -s /sbin/nologin
PS: UID GID 在整个系统是唯一的。
useradd命令的选项
-u | 指定要创建用户的UID,不允许冲突 |
---|---|
-g | 指定要创建用户的默认组(基本组) |
-G | 指定要创建用户的附加组,逗号隔开可添加多个附加组 |
-d | 制定要创建用户的家目录 |
-s | 指定要创建用户的bash shell /bin/bash /sbin/nologin |
-c | 指定要创建用户的注释信息 |
-M | 给创建的用户不创建家目录 |
-r | 创建系统用户,默认无家目录 [999-200] |
usermod修改用户[重要程度一般]
1.检查之前创建的od用户
[root@hyman1 ~]# id od
uid=777(od) gid=6667(od) groups=6667(od),1004(sa)
2.修改od用户uid 9999、gid (devops),附加组 dba,sa,dsb
[root@hyman1 ~]# groupadd devops
[root@hyman1 ~]# groupadd dba
[root@hyman1 ~]# groupadd sa
[root@hyman1 ~]# groupadd dsb
[root@hyman1 ~]# usermod od -u9999 -g devops -aG dba,sa,dsb
3.修改od用户的注释信息, 用户家目录, 登录shell, 登录名
[root@hyman1 ~]# usermod od -c "oldboyedu.com" -md /home/oldboy -s /bin/bash -l oldboy
[root@hyman1 ~]# grep "oldboy" /etc/passwd
oldboy:x:9999:6668:oldboyedu.com:/home/oldboy:/bin/bas h
usermod命令的选项
-u | 指定要修改用户的UID |
---|---|
-g | 指定要修改用户基本组 |
-G | 指定要修改用户附加组,使用逗号隔开,覆盖原有的附加组 |
-aG | 追加指定用户的附加组(不覆盖) |
-d | 指定要修改用户家目录 -md 旧家搬新家 |
-s | 指定要修改用户的bash shell |
-c | 指定要修改用户的注释信息 |
-l | 指定要修改用户的登录名 |
-L | 指定要锁定的用户 |
-U | 指定要解锁的用户 |
userdel删除用户
选项 -r 删除用户同时删除它的家目录
1.删除user1用户,但不删除用户家目录和 mail spool
[root@hyman1 ~]# userdel user1
2.-r参数可以连同用户家目录一起删除(慎用)
[root@hyman1 ~]# userdel -r user1
PS: 与用户相关的还有很多命令,以下简单列举一些,但都不是常用 命令,所以了解即可。
- 使用finger命名查询用户信息以及登录信息
示例:finger UserName
- 使用chfn命令修改用户信息(不常用)
示例:chfn UserName
- 使用chsh命令修改用户登录Bash Shell(不常用)
示例:chsh UserName
- 使用who、whoami、w检查用户登陆情况
[root@hyman1 ~]# who
root pts/0 2019-08-05 08:59 (10.0.0.1)
root pts/1 2019-08-05 10:14 (10.0.0.1)
root pts/2 2019-08-05 12:26 (10.0.0.1)
[root@hyman1 ~]# whoami #当前登录系统的用户是
root
[root@haoyu1 ~]# w #用于显示已经登陆系统的用户列表,并显示用户正在执行的指令。
17:50:39 up 6:23, 3 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:27 7.00s 0.09s 0.02s w
root pts/1 10.0.0.1 17:50 33.00s 0.00s 0.00s -bash
hyman1 pts/2 10.0.0.1 17:50 3.00s 0.01s 0.01s -bash
w命令各项代表的意思