1. 用户管理概述
简单来说:未来Linux系统会有各种的用户,每个用户都有自己 的用途,root最高权限用户,普通用户,虚拟用户。
2. UID和GID
UID user id #用户的id 类似于身份证号码
GID group id #用户组id 类似于户口本号码
3. 用户的分类
root #uid是 0
普通用户 #uid 1000
虚拟用户 #uid <1000,用于服务,进程运行使用的用户,无法直接使用
4. 用户相关的文件
用户相关的文件 说明 /etc/passwd 存放用户信息 /etc/shadow 存放密码 /etc/group 用户组信息 /etc/gshadow 用户组密码信息,几乎不会给用户组设置密码。
/etc/passwd 每一列的含义
5. 用户的管理指令
5.1 增加用户
useradd #增加用户
useradd -u #指定uid
useradd -s #指定命令解释器
useradd -M #不创建家目录
实例一:创建一个叫caoshao的用户。
实例二:创建用户mysql指定uid 1314,指定命令解释器 /bin/bash 不创建家目录
实例三: 给caishao2用户设置密码
5.2 切换用户
[root@vmware_caishao ~]# su caishao2 #切切换用户caishao2
[caishao2@vmware_caishao /root]$
ctrl + D 切回root
5.3 删除用户
尽量避免使用删除,可以通过注释来隐藏用户
[root@vmware_caishao ~]# userdel caishao2 #删除用户caishao2,但是不会删除家目录和相关文件,比如邮箱
userdel -r #全部内容
5.4 修改用户信息
5.4.1 修改密码
#修改密码
passwd 修改密码
#修改用户组
#添加用户
[root@vmware_caishao ~]# useradd oldboy
#查询
[root@vmware_caishao ~]# grep oldboy /etc/passwd
oldboy:x:1414:1414::/home/oldboy:/bin/bash
[root@vmware_caishao ~]# su - oldboy
#登出
[oldboy@vmware_caishao ~]$ logout
#修改用户组/sbin/login
[root@vmware_caishao ~]# usermod -s /sbin/nologin oldboy
#过滤查看
[root@vmware_caishao ~]# grep oldboy /etc/passwd
oldboy:x:1414:1414::/home/oldboy:/sbin/nologin
#切换用户
[root@vmware_caishao ~]# su - oldboy
Last login: Sun Sep 15 16:47:46 CST 2024 on pts/0
This account is currently not available. #无法登录
#修改为/bin/bash
[root@vmware_caishao ~]# usermod -s /bin/bash oldboy
#过滤查看
[root@vmware_caishao ~]# grep oldboy /etc/passwd
oldboy:x:1414:1414::/home/oldboy:/bin/bash
#登录
[root@vmware_caishao ~]# su - oldboy
Last login: Sun Sep 15 16:54:03 CST 2024 on pts/0
5.5 查看用户信息
##id 查看用户id信息 uid gid 属于的用户组 判断用户是否存在
[root@vmware_caishao ~]# id
uid=0(root) gid=0(root) groups=0(root)
##查看当前用户的名字也可以用于获取当前用户的名字
[root@vmware_caishao ~]# whoami
root
## w 查询谁登录了系统并且正在干啥,系统运行时间,负载信息
[root@vmware_caishao ~]# w
17:02:37 up 29 min, 1 user, load average: 0.00, 0.01, 0.02
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 10.0.0.1 16:33 5.00s 0.16s 0.00s w
6. sudo权限管理
6.1 概述
Linux系统开发人员要看日志,如何创建用户与授予权限?
这时候请使用sudo(提权),这时候可以通过普通用户+sudo权限实现这个目标,授予普通用户以root权限运行,cat,head/tail,more/less,grep.
6.2 进行sudo授权与使用
授权sudo,需要使用root。
我们用visudo授权配置,在第100行左右写如下配置。分别写上要授权的用户和命令。
#切换用户
[root@vmware_caishao ~]# su - oldboy
Last login: Sun Sep 15 20:56:58 CST 2024 on pts/0
#不用sudo访问/var/log/messages,显示权限被拒绝
[oldboy@vmware_caishao ~]$ cat /var/log/messages
cat: /var/log/messages: Permission denied
#用sudo 授权后普通用户可以访问了
[oldboy@vmware_caishao ~]$ sudo cat /var/log/messages
Sep 15 17:20:01 vmware_caishao systemd: Started Session 27 of user root.
Sep 15 17:20:04 vmware_caishao su: (to oldboy) root on pts/0
Sep 15 17:21:15 vmware_caishao su: (to oldboy) root on pts/0
Sep 15 17:22:01 vmware_caishao systemd: Started Session 28 of user root.
#用grep过滤配置结果
[root@vmware_caishao ~]# grep oldboy /etc/sudoers
oldboy ALL=(ALL) /bin/cat, /bin/head,/bin/tail
#用sudo -l 查看普通用户所拥有的权限,关注最后两行即可
[oldboy@vmware_caishao ~]$ sudo -l
....
User oldboy may run the following commands on vmware_caishao:
(ALL) /bin/cat, /bin/head, /bin/tail