一. 用户的分类
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 ~]# w16:40:32 up 1:41, 13 users, load average: 0.02, 0.04, 0.05USER TTY FROM LOGIN@ IDLE JCPU PCPU WHATroot tty1 16:35 5:28 0.02s 0.02s -bashroot pts/0 10.0.0.1 15:07 0.00s 1.81s 0.00s wroot pts/1 192.168.12.147 16:36 0.00s 7.99s 0.05s vim 1.txtoldboy pts/2 10.0.0.1 16:26 13:44 0.03s 0.03s -bashroot 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 inroot 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 2021bin **从未登录过**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 anywheretest 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)
