一. 用户的分类
1.1 超级管理员(root) uid=0
1.2 虚拟用户(nobody) uid=1-999
虚拟用户主要用于管理服务进程,没有家目录 ,不需要进行登陆系统
1.3 普通用户 uid=1000+
二. 用户管理有关文件
2.1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
第一列: 用户名称信息
第二列: 用户密码信息. 真正密码信息已经保存在了/etc/shadow文件中
第三列: 用户uid数值信息
第四列: 用户gid数值信息
第五列: 用户注释信息
第六列: 用户所在家目录信息
第七列: 用户是否能够登陆系统 shell信息(/sbin/nologin)
2.2 /etc/shadow
root:$6$piuEtt7VpTtUdkc4X4u1mYEo69u/::0:99999:7:::
第一列: 用户名称信息
第二列: 密码信息
第三列: 最近更改密码时间
第四列: 禁止修改密码天数
第五列: 用户必须更改口令天数
第六列: 警告更改密码期限
第七列: 不活动时间
2.3 /etc/group
三. 用户管理中重要目录
3.1 /etc/skel/ — 企业注意事项文件
[root@oldboy-xiaodao.com.cn ~]# echo “info oldboy” >/etc/skel/readme
[root@oldboy-xiaodao.com.cn ~]# useradd oldboy21
[root@oldboy-xiaodao.com.cn ~]# su - oldboy21
[oldboy21@oldboy-xiaodao.com.cn ~]$ ll
total 4
-rw-r—r—. 1 root root 18 4月 1 2020 .bash_logout
-rw-r—r—. 1 root root 193 4月 1 2020 .bash_profile
-rw-r—r—. 1 root root 231 4月 1 2020 .bashrc
-rw-r—r— 1 oldboy21 oldboy21 12 Jan 23 17:34 readme
[oldboy21@oldboy-xiaodao.com.cn ~]$ cat readme
info oldboy
案例:当家目录信息被清空之后,命令提示符会发生变化
-bash-4.2$
解决方式:
将/etc/skel目录中的数据信息复制到相应用户家目录中
cp -a /etc/skel/.bash* ~/
四. 用户管理相关命令
4.1 useradd 用于创建用户
4.1.1 相关参数总结
-u 指定用户的uid数值
-G 指定用户附属组信息
-g 指定用户主要组信息
-s 指定新建用户shell信息, 如果指定为/sbin/nologin,用户无法登陆系统
-M 创建新用户时,不给家目录
-c 创建的新用户添加注释信息
-d 指定家目录
4.1.2 案例
创建一个用户alex999指定uid为888,禁止用户登录系统,不创建家目录
useradd alex999 -u 888 -c test -s /sbin/nologin -M
4.1.3 添加用户-免交互
echo ‘hajhkkasjd’ |passwd —stdin oldboy
ps:密码里有特殊字符时不要用echo “ “ , 因为” “会解析里面的特殊符号
4.2 userdel 删除用户信息
4.2.1 解决删除用户时,有残留信息没有删除掉
1)创建用户
useradd -u uid值 相同用户名 --- uid值和家目录属主信息保持一致
2)彻底删除用户
userdel -r 用户名
4.3 usermod 修改用户信息
-u 指定新建用户的uid数值<br /> -G 指定用户还属于哪个组 指定用户附属组信息<br /> -g 指定用户属于主要组信息<br /> -s 指定新建用户shell信息, 如果指定为/sbin/nologin,用户无法登陆系统<br /> -c 创建的新用户添加注释信息 <br />
4.4 groupadd 创建用户组信息
-g 设置用户组的id信息
五. 用户查询相关命令
5.1 id
id root
uid=0(root) gid=0(root) groups=0(root)
用户的uid 用户的组id,所属组 用户所属的其它组
5.2 w
显示主机工作时间 负载情况 连接主机的用户信息
[root@oldo.com.cn ~]# w
16:40:32 up 1:41, 13 users, load average: 0.02, 0.04, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 16:35 5:28 0.02s 0.02s -bash
root pts/0 10.0.0.1 15:07 0.00s 1.81s 0.00s w
root pts/1 192.168.12.147 16:36 0.00s 7.99s 0.05s vim 1.txt
oldboy pts/2 10.0.0.1 16:26 13:44 0.03s 0.03s -bash
root pts/3 10.0.0.1 16:38 8.00s 0.57s 0.00s sleep 2
5.3 last
哪个用户从哪里远程登录你的系统 用户登录的信息
root pts/3 192.168.221.1 Mon Jul 26 20:31 still logged in
root pts/2 192.168.221.1 Mon Jul 26 19:55 - 22:12 (02:17)
root pts/0 192.168.221.1 Mon Jul 26 18:38 - 21:55 (03:16)
root pts/1 192.168.221.1 Sun Jul 25 21:33 - 21:03 (23:30)
root pts/0 192.168.221.1 Sun Jul 25 18:26 - 21:54 (03:27)
root pts/2 192.168.221.1 Sun Jul 25 16:53 - 21:31 (04:38)
root pts/1 192.168.221.1 Sun Jul 25 15:23 - 20:10 (04:46)
root pts/0 192.168.221.1 Sun Jul 25 13:31 - 17:18 (03:46)
root pts/0 192.168.221.1 Sat Jul 24 21:27 - 23:02 (01:34)
root pts/0 192.168.221.1 Wed Jul 21 22:54 - 00:38 (01:43)
reboot system boot 3.10.0-1127.el7. Wed Jul 21 22:28 - 22:33 (5+00:05)
root pts/1 192.168.221.1 Tue Jul 20 22:42 - crash (23:45)
root pts/0 192.168.221.1 Tue Jul 20 22:38 - crash (23:49)
5.4 lastlog
用户名 端口 来自 最后登陆时间
root pts/3 192.168.221.1 一 7月 26 20:31:42 +0800 2021
bin **从未登录过**
daemon **从未登录过**
adm **从未登录过**
polkitd **从未登录过**
tss **从未登录过**
abrt **从未登录过**
sshd **从未登录过**
postfix **从未登录过**
ntp **从未登录过**
test **从未登录过**
六. 用户权限管理
6.1 sudo授权
6.1.1 sudo -l 查询普通用户拥有了root用户哪些能力
[test@133 ~]$ sudo -l
匹配 %2$s 上 %1$s 的默认条目:
!visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin,
env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS",
env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE",
env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES",
env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE",
env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
6.1.2 编辑配置文件
[root@133 ~]# visudo
切换到100gg(centos7) 98gg(centos6)
## Allow root to run any commands anywhere
test ALL=(ALL) (固定不变) /usr/bin/cat /etc/shadow (命令要写绝对路径,which查看)
test ALL=(ALL) /usr/bin/cat /etc/shadow, !/bin/rm -rf /oldboy/etc/
给谁进行授权 根据主机进行授权 授予什么权力
取消密码认证,授权大量命令信息,并排除部分危险命令
test ALL=(ALL) NOPASSWD: /usr/bin/*, /bin/*, !/bin/rm -rf /root/
6.1.3 应用sudo能力
sudo cat /etc/shadow —-暂时切换到超级用户模式
sudo -i —-没有时间限制,切换到超级用户模式
6.1.4 注意事项
对于有些命令, root用户命令绝对路径和普通用户命令绝对路径不统一
添加多个命令时中间用空格隔开
6.2 使用特殊权限位进行授权
6.2.1 setuid: 在属主权限位生成一个s位 ( 4 )
总结: 让一些文件执行的时候, 可以让普通用户可以以root属主的身份进行执行
方法一: 利用字符进行特殊权限位设置<br />[root@oldboy ~]# ll /usr/bin/cat<br />-rwxr-xr-x. 1 root root 54080 Apr 11 2018 /usr/bin/cat<br />[root@oldboy ~]# chmod u+s /usr/bin/cat<br />[root@oldboy ~]# ll /usr/bin/cat<br />-rwsr-xr-x. 1 root root 54080 Apr 11 2018 /usr/bin/cat<br /> 方法二: 利用数值进行特殊权限位设置<br />[root@oldboy ~]# ll /bin/vim<br /> -rwxr-xr-x. 1 root root 2294208 Oct 31 03:57 /bin/vim<br />[root@oldboy ~]# chmod 4755 /bin/vim<br />[root@oldboy ~]# ll /bin/vim<br /> -rwsr-xr-x. 1 root root 2294208 Oct 31 03:57 /bin/vim<br />
6.2.2 setgid: 在属组权限位生成一个s位 ( 2 ) (不常用)
<br />利用数值进行特殊权限位设置<br /> [root@oldboy-xiaodao.com.cn ~]# ll /bin/cat<br /> -rwsr-xr-x. 1 root root 54080 Apr 11 2018 /bin/cat<br /> [root@oldboy-xiaodao.com.cn ~]# chmod 2755 /bin/cat <br /> [root@oldboy-xiaodao.com.cn ~]# ll /bin/cat<br /> -rwxr-sr-x. 1 root root 54080 Apr 11 2018 /bin/cat<br />
6.2.3 Stickybit(粘滞位): 其他用户权限位生成一个t位 ( 1 )
对一个目录设置粘滞位权限, 目录中数据只能被自己进行删除, 其他用户没有权力删除
方法一: 利用字符进行特殊权限位设置<br /> [root@oldboy-xiaodao.com.cn oldboy30]# ll /share_dir/ -d<br /> drwxr-xrwx 2 root root 26 Jan 25 18:38 /share_dir/<br /> [root@oldboy-xiaodao.com.cn oldboy30]# chmod o+t /share_dir/<br /> [root@oldboy-xiaodao.com.cn oldboy30]# ll /share_dir/ -d<br /> drwxr-xrwt 2 root root 26 Jan 25 18:38 /share_dir/
方法二: 利用数值进行特殊权限位设置<br /> [root@oldboy-xiaodao.com.cn oldboy30]# ll /share_dir/ -d<br /> drwxr-xrwx 2 root root 26 Jan 25 18:43 /share_dir/<br /> [root@oldboy-xiaodao.com.cn oldboy30]# chmod 1777 /share_dir/<br /> [root@oldboy-xiaodao.com.cn oldboy30]# ll /share_dir/ -d<br /> drwxrwxrwt 2 root root 26 Jan 25 18:43 /share_dir/
特殊说明: 系统中已经设置了一个共享目录 <br /> [root@oldboy-xiaodao.com.cn oldboy30]# ll -d /tmp/<br /> drwxrwxrwt. 10 root root 248 Jan 25 18:46 /tmp/<br /> PS: 一定不能随意修改此目录的权限 (mysql服务需要依赖/tmp目录权限为1777)