Linux下的用户有什么用,或者说我们为什么要创建用户?
- 1.系统上的每一个进程(运行的程序),都需要一个特定的用户运行
- 2.通常在公司是使用普通用户管理服务器,因为root权限过大,容易造成故障。
用户存在哪儿?
- /etc/passwd:纪录用户信息,但是不记录密码
[root@node2~]# head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
/etc/passwd以:为分隔符,共可分为7列。
第一列 | 第二列 | 第三列 | 第四列 | 第五列 | 第六列 | 第七列 |
---|---|---|---|---|---|---|
root | x | 0 | 0 | root | /root | /bin/bash |
用户名 | 密码占位符 | 用户UID | 组GID | 注释信息 | 用户家目录 | 用户登陆shell |
-
/etc/shadow:密码信息。
shadow解释
-
- 系统对用户的约定
用户UID | 系统中约定的含义 |
---|---|
0 | 超级管理员,最高权限,有着极强的破坏能力 |
1~200 | 系统用户,用来运行系统自带的进程,默认已创建 |
201~999 | 系统用户,用来运行用户安装的程序,所以此类用户无需登陆系统 |
1000+ | 普通用户,正常可以登陆系统的用户,权限比较小,能执行的任务有限 |
在CentOS7系统之前,UID1-499用于系统用户,而500+则用于普通用户。
用户相关命令
useradd:用于新增用户
useradd常用选项及说明
选项 | 解释 |
---|---|
-u | 指定用户的UID |
-g | 指定用户的默认组,只能有一个 |
-G | 指定用户的附加组,逗号隔开可以添加多个 |
-d | 指定要创建的用户的家目录 |
-s | 指定要创建用户的bash shell |
-c | 指定要创建用户的注释信息 |
-M | 给创建的用户不创建家目录 |
-r | 创建系统账户,默认无家目录 |
- 例1:创建ennan用户,UID5001,基本组students,附加组sa 注释信息:2019 new student,登陆shell:/bin/bash
# 用groupadd添加相关的用户组
[root@node2~]# groupadd students
[root@node2~]# groupadd sa
[root@node2~]# useradd ennan -u 5001 -g students -G sa -c "20190805" -s /bin/bash
# 用id命令和查看/etc/passwd文件来确认用户是否创建成功
[root@node2~]# id ennan
uid=5001(ennan) gid=6669(students) groups=6669(students),6670(sa)
[root@node2~]# grep "ennan" /etc/passwd
ennan:x:5001:6669:20190805:/home/ennan:/bin/bash
- 例2:创建mysql系统用户,-M不建立用户家目录 -s指定nologin使其用户无法登陆系统。
# 使用-r可创建系统用户,默认不创建家目录
[root@node2~]# useradd mysql -r -s /sbin/nologin
[root@node2~]# id mysql
uid=995(mysql) gid=995(mysql) groups=995(mysql)
[root@node2~]# grep "mysql" /etc/passwd
mysql:x:995:995::/home/mysql:/sbin/nologin
usermod:用于更改用户信息
usermod常用选项及说明
选项 | 解释 |
---|---|
-a | 更改用户组的时候,保存原有组不变,直接追加 |
-m | 保持原有的家目录配置 |
-l | 指定要修改的用户的登录名 |
-u | 指定用户的UID |
-g | 指定用户的默认组,只能有一个 |
-G | 指定用户的附加组,逗号隔开可以添加多个 |
-d | 指定要创建的用户的家目录 |
-s | 指定要创建用户的bash shell |
-c | 指定要创建用户的注释信息 |
- 例1:将用户恩楠的UID改为9999,并添加附属组dba
# 查看用户ennan的信息
[root@node2~]# id ennan
uid=5001(ennan) gid=6669(students) groups=6669(students),6670(sa)
# 添加用户组dba
[root@node2~]# groupadd dba
[root@node2~]# usermod ennan -u 9999 -aG dba
# 若不加-a选项,附属组不会保留原先设置的组,会直接变更为dba
[root@node2~]# id ennan
uid=9999(ennan) gid=6669(students) groups=6669(students),6670(sa),6671(dba)
- 例2:将用户ennan的用户名修改为wu,家目录修改问/tmp/wu
[root@node2~]# usermod ennan -md /tmp/ennan -l wu
# 更改用户家目录时应加上-m选项,否者,原来的家目录配置不会生效
[root@node2~]# id wu
uid=9999(wu) gid=6669(students) groups=6669(students),6670(sa),6671(dba)
# 更改用户家目录加了-m选项
[root@node2~]# su - wu
Last login: Mon Aug 5 15:43:49 CST 2019 on pts/1
[wu@node2 ~]$
[wu@node2 ~]$
# 更改用户家目录,没加-m选项
[root@node2~]# su - wu
Last login: Mon Aug 5 15:45:28 CST 2019 on pts/1
su: warning: cannot change directory to /tmp/liu: No such file or directory
-bash-4.2$
-bash-4.2$
userdel:用于删除用户
userdel常用选项及说明
选项 | 解释 |
---|---|
-r | 删除用户的同时删除他的家目录 |
- 例1:删除用户user1,不删除用户家目录、mail和spool
[root@node2~]# userdel user1
- 例2:删除用户user1及其家目录
[root@node2~]# userdel -r user1
用户数据可能会放置于家目录内,-r选项删除用户时,会删除其家目录,慎用!!!
用户相关其他命令
who:目前登录系统的用户信息。
[root@node2~]# who
root tty1 2019-08-05 08:26
root pts/0 2019-08-05 08:27 (192.168.16.44)
whoami:当前登陆系统的用户是
[root@node2~]# whoami
root
w:用于显示已经登陆系统的用户列表,并显示用户正在执行的指令。
[root@node2~]# w
16:31:29 up 7:20, 3 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 08:26 8:04m 0.05s 0.05s -bash
root pts/0 192.168.16.44 08:27 3:01m 0.92s 0.92s -bash
root pts/1 192.168.16.44 14:42 1.00s 0.90s 0.03s w
16:31:29 当前系统时间
up 7:20当前系统运行的时长
3 users有多少用户登陆了系统
load average: 0.00, 0.01, 0.05当前系统负载状态。
0.00:1分钟内平均负载
0.01:5分钟内平均负载
0.05:15分钟内平均负载
JCPU指的是与该tty终端连接的所由进程占用的时间,不包括过去的后台作业时间
PCPU指的是当前进程(即w项中显示的)所占用的时间。
网友评论