20180612 TASK 3.4 - 3.9
6.12 任务
3.4 usermod 命令
3.5 用户密码管理
3.6 mkpasswd 命令
3.7 su 命令
3.8 sudo 命令
3.9 限制 root 远程登录
3.4 usermod 命令
## 如下是他的几个选项
usermod -u uid username
usermod -g gid/groupname username
usermod -d /home/dir
usermod -s /sbin/nologin username
## 扩展组 -G 一个用户可以有多个组, 但是 gid 只有一个, 把 gid 除外其他的组叫扩展组
useradd -G
[root@arron-01 ~]# id arron
uid=1000(arron) gid=1000(arron) 组=1000(arron)
## 增加扩展组
[root@arron-01 ~]# usermod -G grp2 arron
[root@arron-01 ~]# id arron
uid=1000(arron) gid=1000(arron) 组=1000(arron),1005(grp2)
## 更换组后发觉是替换了组, 并不是增加
[root@arron-01 ~]# usermod -G user2 arron
[root@arron-01 ~]# id arron
uid=1000(arron) gid=1000(arron) 组=1000(arron),1002(user2)
## 其实可以增加多个扩展组
[root@arron-01 ~]# usermod -G grp2,user2,user5 arron
[root@arron-01 ~]# id arron
uid=1000(arron) gid=1000(arron) 组=1000(arron),1005(grp2),1002(user2),1009(user5)
## -g 只能指定单个组
[root@arron-01 ~]# usermod -g grp2,user2 arron
usermod:“grp2,user2”组不存在
3.5 用户密码管理
- passwd 文件 - /etc/passwd 有特殊权限 set_uid , 能让普通用户更改自己的密码,
## 更改 root 用户的密码
[root@arron-01 ~]# passwd
更改用户 root 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
## 更改普通用户的密码
[root@arron-01 ~]# passwd user10
更改用户 user10 的密码 。
新的 密码:
重新输入新的 密码:
抱歉,密码不匹配。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
## 发觉更改 user10 后的密码字符串如下, 如果一个用户没有密码, 就是 !!
[root@arron-01 ~]# tail /etc/shadow
user1:!!:17690:0:99999:7:::
user2:!!:17692:0:99999:7:::
user3:!!:17692:0:99999:7:::
user4:!!:17692:0:99999:7:::
user6:!!:17692:0:99999:7:::
user5:!!:17692:0:99999:7:::
user7:!!:17692:0:99999:7:::
user8:!!:17692:0:99999:7:::
user9:!!:17692:0:99999:7:::
user10:$6$ec1Bec5S$65zMn8CqIxs/pb4Fp5sd2ol/kecklQN7syhz3fh0a7CgKX8PN2njAU6CW9I4Jd4VBmatHAWIieaPs543k//:17693:0:99999:7:::
## 如果第二段是 * 就表示密码是锁定的, 不能登录
[root@arron-01 ~]# head /etc/shadow
root:$6$Kks9Wfm3$ZXRqI52lDGTB7.xdEYEO4TsWja2JM1n.ROBL7SUrTMKwCtBvaUHwlNv6zE6MUVlTi11SNeHo1G6vJVlBN8gDj1:17693:0:99999:7:::
bin:*:17110:0:99999:7:::
daemon:*:17110:0:99999:7:::
adm:*:17110:0:99999:7:::
lp:*:17110:0:99999:7:::
sync:*:17110:0:99999:7:::
shutdown:*:17110:0:99999:7:::
halt:*:17110:0:99999:7:::
mail:*:17110:0:99999:7:::
operator:*:17110:0:99999:7:::
** 以后只要这个密码是 ! 或者* , 都表示这个密码有问题, 是不能登录的
- passwd -l username 锁定密码
## 锁定了 user10 的密码, 第二段的开头是 !!
[root@arron-01 ~]# passwd -l user10
锁定用户 user10 的密码 。
passwd: 操作成功
[root@arron-01 ~]# tail /etc/shadow
user1:!!:17690:0:99999:7:::
user2:!!:17692:0:99999:7:::
user3:!!:17692:0:99999:7:::
user4:!!:17692:0:99999:7:::
user6:!!:17692:0:99999:7:::
user5:!!:17692:0:99999:7:::
user7:!!:17692:0:99999:7:::
user8:!!:17692:0:99999:7:::
user9:!!:17692:0:99999:7:::
user10:!!$6$ec1Bec5S$65zMn8CqIxs/pb4Fp5sd2ol/kecklQN7syhz3fh0a7CgKX8PN2njAU6CW9I4Jd4VBmatHAWIieaPs543k1OQ//:17693:0:99999:7:::
## 解锁密码, passwd -u username
[root@arron-01 ~]# passwd -u user10
解锁用户 user10 的密码。
passwd: 操作成功
[root@arron-01 ~]# tail /etc/shadow
user1:!!:17690:0:99999:7:::
user2:!!:17692:0:99999:7:::
user3:!!:17692:0:99999:7:::
user4:!!:17692:0:99999:7:::
user6:!!:17692:0:99999:7:::
user5:!!:17692:0:99999:7:::
user7:!!:17692:0:99999:7:::
user8:!!:17692:0:99999:7:::
user9:!!:17692:0:99999:7:::
user10:$6$ec1Bec5S$65zMn8CqIxs/pb4Fp5sd2ol/kecklQN7syhz3fh0a7CgKX8PN2njAU6CW9I4Jd4VBmatHAWIieaPs543k1OQ//:17693:0:99999:7:::
- usermod -L username 锁定用户密码的另一个命令, usermod -U username 解锁密码
[root@arron-01 ~]# tail /etc/shadow
user1:!!:17690:0:99999:7:::
user2:!!:17692:0:99999:7:::
user3:!!:17692:0:99999:7:::
user4:!!:17692:0:99999:7:::
user6:!!:17692:0:99999:7:::
user5:!!:17692:0:99999:7:::
user7:!!:17692:0:99999:7:::
user8:!!:17692:0:99999:7:::
user9:!!:17692:0:99999:7:::
user10:$6$ec1Bec5S$65zMn8CqIxs/pb4Fp5sd2ol/kecklQN7syhz3fh0a7CgKX8PN2njAU6CW9I4Jd4VBmatHAWIieaPs543k1OQ//:17693:0:99999:7:::
## usermod -L username 锁定密码
[root@arron-01 ~]# usermod -L user10
### 第二段前多了一个 !
[root@arron-01 ~]# tail /etc/shadow
user1:!!:17690:0:99999:7:::
user2:!!:17692:0:99999:7:::
user3:!!:17692:0:99999:7:::
user4:!!:17692:0:99999:7:::
user6:!!:17692:0:99999:7:::
user5:!!:17692:0:99999:7:::
user7:!!:17692:0:99999:7:::
user8:!!:17692:0:99999:7:::
user9:!!:17692:0:99999:7:::
user10:!$6$ec1Bec5S$65zMn8CqIxs/pb4Fp5sd2ol/kecklQN7syhz3fh0a7CgKX8PN2njAU6CW9I4Jd4VBmatHAWIieaPs543k1OQ//:17693:0:99999:7:::
## usermod -U username 解锁密码
[root@arron-01 ~]# usermod -U user10
### 第二段前的 ! 消失了
[root@arron-01 ~]# tail /etc/shadow
user1:!!:17690:0:99999:7:::
user2:!!:17692:0:99999:7:::
user3:!!:17692:0:99999:7:::
user4:!!:17692:0:99999:7:::
user6:!!:17692:0:99999:7:::
user5:!!:17692:0:99999:7:::
user7:!!:17692:0:99999:7:::
user8:!!:17692:0:99999:7:::
user9:!!:17692:0:99999:7:::
user10:$6$ec1Bec5S$65zMn8CqIxs/pb4Fp5sd2ol/kecklQN7syhz3fh0a7CgKX8PN2njAU6CW9I4Jd4VBmatHAWIieaPs543k1OQ//:17693:0:99999:7:::
- passwd --stdin username 普通用户更改密码, 且以明文显示; 在 写 shell 脚本 时会用到,
[root@arron-01 ~]# passwd --stdin user10
更改用户 user10 的密码 。
*******
passwd:所有的身份验证令牌已经成功更新。
## shell 中使用 passwd 更改密码如下, 下边用到的管道符是指将前面的命令传递给后边的命令
[root@arron-01 ~]# echo "121212" |passwd --stdin user10
更改用户 user10 的密码 。
passwd:所有的身份验证令牌已经成功更新。
- echo -e "abc\n123" 在一行命令里出现换行符, 双引号里必须要有 \n 一个用户最多可以更改多少次密码呢 ?
[root@arron-01 ~]# echo -e "123\nabc"
123
abc
[root@arron-01 ~]# echo "456\def"
456\def
[root@arron-01 ~]# echo -e "123456789\nabcdefghijk" |passwd user10
更改用户 user10 的密码 。
新的 密码:无效的密码: 密码未通过字典检查 - 过于简单化/系统化
重新输入新的 密码:抱歉,密码不匹配。
新的 密码:密码更改取消。
新的 密码:密码更改取消。
passwd: 已经超出服务重试的最多次数
登录密码必须超过 10 位, 密码必须包括大小写字母, 数字, 特殊字符等, 密码不能有规律, 不能包含姓名, 生日, 公司名字, 电话号码等等
安全领域有个社会工程学, 密码爆破时就是猜测密码设定员的身上属性,
3.6 mkpasswd 命令
- mkpasswd == make passwd , 默认这个命令不存在, 要安装一个包 —— expect , shell 脚本时会分享这个工具, 这个命令可以生成随机的字符串, 可以用 keepass 工具生成密码, 但是太麻烦了, 这个对批量生成密码有好处
[root@arron-01 ~]# mkpasswd
lh67>BamH
## -l 指定长度 , -s 指定特殊字符
[root@arron-01 ~]# mkpasswd -l 12
kbzF7fM@cac3
[root@arron-01 ~]# mkpasswd -s 3 -l 12
LIgd)*86c{cg
3.7 su 命令
- su 切换用户 ; su - username , 加
-
的目的是连带用户的配置, 变量, 环境等一并切换,
[root@arron-01 ~]# whoami
root
[root@arron-01 ~]# su - arron
上一次登录:六 6月 9 16:52:07 CST 2018pts/3 上
[arron@arron-01 ~]$ pwd
/home/arron
[arron@arron-01 ~]$ id
uid=1000(arron) gid=1000(arron) 组=1000(arron),1002(user2),1005(grp2),1009(user5) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
### 不加 - 再查看用户
[root@arron-01 ~]# su arron
[arron@arron-01 root]$ pwd
/root
## .bash_logout , .bash_profile , .bashrc 都是该用户下的配置文件
[arron@arron-01 ~]$ ls -la
总用量 20
drwx------. 2 arron arron 99 6月 9 17:52 .
drwxr-xr-x. 11 root root 127 6月 11 00:49 ..
-rw-------. 1 arron arron 422 6月 11 11:18 .bash_history
-rw-r--r--. 1 arron arron 18 8月 3 2017 .bash_logout
-rw-r--r--. 1 arron arron 193 8月 3 2017 .bash_profile
-rw-r--r--. 1 arron arron 231 8月 3 2017 .bashrc
-rw-------. 1 arron arron 691 6月 9 17:52 .viminfo
## su - -c "touch file" username 不登录到 普通用户而以 arron 的身份去执行命令
[root@arron-01 ~]# su - -c "touch /tmp/611.txt" arron
[root@arron-01 ~]# ls -l /tmp/
总用量 12
-rw-rw-r--. 2 root root 170 6月 9 09:51 1.txt.bak
-rw-rw-r--. 1 arron arron 0 6月 11 11:27 611.txt
drwxr-xr-x. 3 user1 arron 24 6月 8 23:16 arron
-rwx------. 1 root root 836 6月 9 03:32 ks-script-Uxj9G8
-rwxrwxrwx. 1 arron arron 48 6月 9 17:55 siri
drwx------. 3 root root 17 6月 11 09:30 systemd-private-e6e6a6c2679f40e99495b42f612ae31b-chronyd.service-Gnz289
drwx------. 3 root root 17 6月 11 09:30 systemd-private-e6e6a6c2679f40e99495b42f612ae31b-vgauthd.service-1Xp9I6
drwx------. 3 root root 17 6月 11 09:30 systemd-private-e6e6a6c2679f40e99495b42f612ae31b-vmtoolsd.service-bgbZq3
drwxrwxrwx. 2 user1 user1 6 6月 9 18:21 user1
-rw-------. 1 user1 root 0 6月 9 03:13 yum.log
## 如上组显示为 arron , 可以通过查看如下的用户组, 所以新建文件的用户组为 arron
[root@arron-01 ~]# id arron
uid=1000(arron) gid=1000(arron) 组=1000(arron),1005(grp2),1002(user2),1009(user5)
## 如下的 鉴定故障是因为 user10 密码被锁定了
[arron@arron-01 ~]$ su - user10
密码:
su: 鉴定故障
[arron@arron-01 ~]$ 登出
[root@arron-01 ~]# echo "zhangwei527" |passwd --stdin user10
更改用户 user10 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@arron-01 ~]# su - arron
上一次登录:一 6月 11 11:31:53 CST 2018pts/0 上
[arron@arron-01 ~]$ su - user10
密码:
最后一次失败的登录:一 6月 11 11:32:06 CST 2018pts/0 上
最有一次成功登录后有 1 次失败的登录尝试。
[user10@arron-01 ~]$
## 不带家目录的创建用户 user11
[root@arron-01 ~]# useradd -M user11
[root@arron-01 ~]# ll /home/
总用量 0
drwx------. 2 arron arron 99 6月 9 17:52 arron
drwx------. 2 user4 grp2 62 6月 11 00:15 arron611
drwx------. 2 user1 user1 99 6月 9 18:28 user1
drwx------. 2 user10 grp5 83 6月 11 11:36 user10
drwx------. 2 user2 user2 62 6月 11 00:03 user2
drwx------. 2 user3 grp2 62 6月 11 00:08 user3
drwx------. 2 user7 grp3 62 6月 11 00:34 user7
drwx------. 2 user8 user8 62 6月 11 00:36 user8
drwx------. 2 user9 user9 62 6月 11 00:38 user9
[root@arron-01 ~]# su - arron
上一次登录:一 6月 11 11:37:23 CST 2018pts/0 上
[arron@arron-01 ~]$ su - user11
密码:
最后一次失败的登录:一 6月 11 11:38:48 CST 2018pts/0 上
最有一次成功登录后有 1 次失败的登录尝试。
su: 警告:无法更改到 /home/user11 目录: 没有那个文件或目录
## 是如下的这种显示表示该用户没有家目录
--bash-4.2$ pwd
/home/arron
-bash-4.2$ 登出
[arron@arron-01 ~]$ 登出
[root@arron-01 ~]# id user11
uid=1014(user11) gid=1014(user11) 组=1014(user11)
[root@arron-01 ~]# id user11
uid=1014(user11) gid=1014(user11) 组=1014(user11)
[root@arron-01 ~]# mkdir /home/user11
[root@arron-01 ~]# chown user11:user11 /home/user11/
[root@arron-01 ~]# su - user11
上一次登录:一 6月 11 11:40:07 CST 2018pts/0 上
-bash-4.2$ pwd
/home/user11
-bash-4.2$ ls -la .
总用量 0
drwxr-xr-x. 2 user11 user11 6 6月 11 11:42 .
drwxr-xr-x. 12 root root 141 6月 11 11:42 ..
-bash-4.2$ 登出
[root@arron-01 ~]# su - arron
上一次登录:一 6月 11 11:40:00 CST 2018pts/0 上
[arron@arron-01 ~]$ pwd
/home/arron
## 用户 user11 不能像 用户 arron 那样显示是因为没有如下 .bash_history , .bash_logout , .bash_profile , .bashrc 文件
[arron@arron-01 ~]$ ls -la
总用量 20
drwx------. 2 arron arron 99 6月 9 17:52 .
drwxr-xr-x. 12 root root 141 6月 11 11:42 ..
-rw-------. 1 arron arron 518 6月 11 11:38 .bash_history
-rw-r--r--. 1 arron arron 18 8月 3 2017 .bash_logout
-rw-r--r--. 1 arron arron 193 8月 3 2017 .bash_profile
-rw-r--r--. 1 arron arron 231 8月 3 2017 .bashrc
-rw-------. 1 arron arron 691 6月 9 17:52 .viminfo
## 拷贝用户的配置文件再登录用户
[root@arron-01 ~]# cp /etc/skel/.bash* /home/user11/
[root@arron-01 ~]# chown -R user11:user11 /home/user11/
[root@arron-01 ~]# su - user11
上一次登录:一 6月 11 11:44:31 CST 2018pts/0 上
## 普通用户 su 到 root 用户
[root@arron-01 ~]# su - arron
上一次登录:一 6月 11 11:44:48 CST 2018pts/0 上
[arron@arron-01 ~]$ su -
密码:
上一次登录:一 6月 11 09:32:50 CST 2018从 192.168.147.1pts/0 上
3.8 sudo 命令
- sudo 让普通用户临时以指定用户的身份去执行命令, 通常是授权普通用户
root
身份
不建议直接用 vi 命令去编辑 /etc/sudoers
, 如果语法错误, 就没办法检测到 , 如果用 visudo
是可以检测到的
[root@arron-01 ~]# visudo
>>> /etc/sudoers: 语法错误 near line 93 <<<
现在做什么?
选项有:
重新编辑 sudoers 文件(e)
退出,不保存对 sudoers 文件的更改(x)
退出并将更改保存到 sudoers 文件(危险!)(Q)
现在做什么?e
>>> /etc/sudoers: 语法错误 near line 93 <<<
现在做什么?
选项有:
重新编辑 sudoers 文件(e)
退出,不保存对 sudoers 文件的更改(x)
退出并将更改保存到 sudoers 文件(危险!)(Q)
现在做什么?Q
## 执行 visudo 命令打开的是 /etc/sudoers 文件, 不建议使用 vi /etc/sudoers 打开, 且 visudo 可以检测到语法错误
[root@arron-01 ~]# visudo
........
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
........
### 增加一行, 命令要写绝对路径, 用 , 分隔并留空格
arron ALL=(ALL) /bin/ls, /bin/mv, /bin/cat
## :set nu 在一般模式下查看编辑文件的行号
- 命令行释义
root ALL=(ALL) ALL
root 表示用户名, 第一个 ALL 表示主机, 实际上并不是, 括号里边表示的是用户( **授予的用户身份** ), 第二个 ALL 表示所有的命令
- 切换用户使用刚才设置的命令
[root@arron-01 ~]# su - arron
上一次登录:一 6月 11 11:56:53 CST 2018pts/0 上
[arron@arron-01 ~]$ ls /root/
10Linux日常运维.pptx 123 1_soft.txt 1.txz~ 2.txt 3.txt anaconda-ks.cfg
11.txt 1_hard.txt 1.txt~ 234 345 5.txt
[arron@arron-01 ~]$ ls -ld /root/
dr-xr-x---. 7 root root 4096 6月 10 19:40 /root/
[arron@arron-01 ~]$ 登出
## 发觉用户组有 set_gid 权限
[root@arron-01 ~]# ll /usr/bin/ls
-rwxr-sr-x. 1 root root 117656 11月 6 2016 /usr/bin/ls
## 更改权限重新执行
[root@arron-01 ~]# chmod g-s /usr/bin/ls
[root@arron-01 ~]# su - arron
上一次登录:一 6月 11 12:32:43 CST 2018pts/0 上
[arron@arron-01 ~]$ ls /root/
ls: 无法打开目录/root/: 权限不够
##
[root@arron-01 ~]# su - arron
上一次登录:一 6月 11 12:36:23 CST 2018pts/0 上
[arron@arron-01 ~]$ sudo /usr/bin/ls /root/
[sudo] arron 的密码:
10Linux日常运维.pptx 123 1_soft.txt 1.txz~ 2.txt 3.txt anaconda-ks.cfg
11.txt 1_hard.txt 1.txt~ 234 345 5.txt
[arron@arron-01 ~]$ ls /root/
ls: 无法打开目录/root/: 权限不够
[arron@arron-01 ~]$ sudo /usr/bin/ls /root/
10Linux日常运维.pptx 123 1_soft.txt 1.txz~ 2.txt 3.txt anaconda-ks.cfg
11.txt 1_hard.txt 1.txt~ 234 345 5.txt
[arron@arron-01 ~]$ sudo /usr/bin/cat /root/3.txt
ahsfdkaskfdjaskldf
123
[arron@arron-01 ~]$ cat /root/3.txt
cat: /root/3.txt: 权限不够
** sudo 可以让一个普通用户临时拥有 root 用户的身份, 这样就能避免把 root 用户的密码给普通用户了
## 对另一个用户进行操作
[arron@arron-01 ~]$ 登出
[root@arron-01 ~]# whoami
root
## 在 visudo 下再增加一行, 让 user10 不带密码登录
root ALL=(ALL) ALL
arron ALL=(ALL) /usr/bin/ls, /usr/bin/mv, /usr/bin/cat
user10 ALL=(ALL) NOPASSWD: /usr/bin/ls, /usr/bin/cat
## user10 下操作[root@arron-01 ~]# su - user10
上一次登录:一 6月 11 21:43:54 CST 2018pts/0 上
### 如果先登录其他的普通用户再切换到这个普通用户, 还是要输入密码, 因为 sudo 只是临时以指定用户的身份去执行指令
[root@arron-01 ~]# su - arron
上一次登录:一 6月 11 21:45:12 CST 2018pts/0 上
[arron@arron-01 ~]$ su - user10
密码:
上一次登录:一 6月 11 21:46:26 CST 2018pts/0 上
[user10@arron-01 ~]$ sudo ls /root/
10Linux日常运维.pptx 123 1_soft.txt 1.txz~ 2.txt 3.txt anaconda-ks.cfg
11.txt 1_hard.txt 1.txt~ 234 345 5.txt
## 在普通用户里边, 命令用不用绝对路径都没关系
[user10@arron-01 ~]$ sudo ls /root/
10Linux日常运维.pptx 123 1_soft.txt 1.txz~ 2.txt 3.txt anaconda-ks.cfg
11.txt 1_hard.txt 1.txt~ 234 345 5.txt
[user10@arron-01 ~]$ sudo /usr/bin/ls /root/
10Linux日常运维.pptx 123 1_soft.txt 1.txz~ 2.txt 3.txt anaconda-ks.cfg
11.txt 1_hard.txt 1.txt~ 234 345 5.txt
### 设置 Host alias
## Host Aliases
## Groups of machines. You may prefer to use hostnames (perhaps using
## wildcards for entire domains) or IP addresses instead.
# Host_Alias FILESERVERS = fs1, fs2
# Host_Alias MAILSERVERS = smtp, smtp2
### 也可以设置 user alias
## User Aliases
## These aren't often necessary, as you can use regular groups
## (ie, from files, LDAP, NIS, etc) in this file - just use %groupname
## rather than USERALIAS
# User_Alias ADMINS = jsmith, mikem
### 用户的 alias
## Command Aliases
## These are groups of related commands...
## Networking
# Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool
### 增加如下的一行
Cmnd_Alias ARRON_CMD = /usr/bin/ls, /usr/bin/mv, /usr/bin/cat
### 然后再将如下的命令更改为
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
arron ALL=(ALL) /usr/bin/ls, /usr/bin/mv, /usr/bin/cat
### 更改为
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
arron ALL=(ALL) ARRON_CMD
## 发觉命令执行是 ok 的
[root@arron-01 ~]# su - arron
上一次登录:一 6月 11 21:46:39 CST 2018pts/0 上
[arron@arron-01 ~]$ sudo ls /root/
[sudo] arron 的密码:
10Linux日常运维.pptx 123 1_soft.txt 1.txz~ 2.txt 3.txt anaconda-ks.cfg
11.txt 1_hard.txt 1.txt~ 234 345 5.txt
[arron@arron-01 ~]$ sudo cat /root/3.txt
ahsfdkaskfdjaskldf
123
## 除了用户, 还有用户组
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
## 用户组
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
users ALL=(user1,user2,user3,user4) /usr/bin/ls, /usr/bin/mv, /usr/bin/cat
## 可以先设置用户组的用户, 然后再到用户下设置用户组, 最后执行命令
- 工作中也会用到 sudo, 但是不会用的特别复杂
3.9 限制 root 远程登录
- 普通用户要想使用 root 的权限, 就要使用 su 或者 sudo 命令, 可以临时切换 root 用户, 但是 root 用户的密码不清楚, 可以把命令 su 放到 sudo 的列表里边去,
1. 服务器不能登录 root 用户, 只能登录普通用户,
2. 普通用户 su - root
3. sudo su - root , 普通用户 su - root 需要密码, 但是 root 用户 su - root 是不需要密码的
[root@arron-01 ~]# su - root
上一次登录:一 6月 11 22:42:30 CST 2018从 192.168.147.1pts/0 上
- 设置用户组
[root@arron-01 ~]# visudo
........
# User_Alias ADMINS = jsmith, mikem
User_Alias ARRONs = arron, user7, user10
........
** 增加一行 ARRONS ALL=(ALL) NOPASSWD: /usr/bin/su
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
ARRONS ALL=(ALL) NOPASSWD: /usr/bin/su
## 直接在终端运行命令, 可以用 root 去执行命令
[root@arron-01 ~]# su - arron
上一次登录:一 6月 11 22:13:14 CST 2018pts/0 上
[arron@arron-01 ~]$ sudo su -
上一次登录:一 6月 11 23:00:43 CST 2018从 192.168.147.1pts/1 上
## 且还要限制 root 用户远程登录,
[root@arron-01 ~]# vim /etc/ssh/sshd_config
......
#LoginGraceTime 2m
#PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
### 更改为
#LoginGraceTime 2m
PermitRootLogin no
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
[root@arron-01 ~]# systemctl restart sshd
- 限制了 root 登录, 不管是 密码还是秘钥, 都不能登录
- 用 PuTTY 去远程登录, 发觉是 ok 的
login as: arron
arron@192.168.147.130's password:
Last login: Mon Jun 11 23:36:03 2018 from 192.168.147.1
[arron@arron-01 ~]$
## 执行 w 命令查看是哪些终端在登录
[arron@arron-01 ~]$ w
23:40:07 up 1:00, 3 users, load average: 0.06, 0.05, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.147.1 22:42 11:35 0.21s 0.03s -bash
root pts/1 192.168.147.1 23:00 39:19 0.03s 0.03s -bash
arron pts/2 192.168.147.1 23:38 7.00s 0.07s 0.05s w
## 发觉没有其他命令的权限, 切换到 root 用户也要密码, 但是因为设置了 su 命令, 所以 sudo su - root 直接可以切换回 root 用户
[arron@arron-01 ~]$ ls /root/
ls: 无法打开目录/root/: 权限不够
[arron@arron-01 ~]$ su - root
密码:
su: 鉴定故障
[arron@arron-01 ~]$ sudo su - root
上一次登录:一 6月 11 23:03:37 CST 2018pts/0 上
最后一次失败的登录:一 6月 11 23:43:19 CST 2018pts/2 上
最有一次成功登录后有 4 次失败的登录尝试。
- 为了以后登录方便, 还是要允许
root
登录
[root@arron-01 ~]# !vim
vim /etc/ssh/sshd_config
......
#LoginGraceTime 2m
#PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
.......
[root@arron-01 ~]# systemctl restart sshd.service
- 关于用户的管理无非就是创建用户, 删除用户, 创建组, 删除组, 修改权限, passwd, su, sudo