20180612 TASK 3.4 - 3.9

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 用户密码管理
  1. 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:::

** 以后只要这个密码是 ! 或者* , 都表示这个密码有问题, 是不能登录的 
  1. 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:::
  1. 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:::
  1. passwd --stdin username 普通用户更改密码, 且以明文显示; 在 写 shell 脚本 时会用到,
[root@arron-01 ~]# passwd --stdin user10
更改用户 user10 的密码 。
*******
passwd:所有的身份验证令牌已经成功更新。

## shell 中使用 passwd 更改密码如下, 下边用到的管道符是指将前面的命令传递给后边的命令
[root@arron-01 ~]# echo "121212" |passwd --stdin user10
更改用户 user10 的密码 。
passwd:所有的身份验证令牌已经成功更新。 
  1. 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 命令
  1. 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 命令
  1. 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 命令
  1. 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 在一般模式下查看编辑文件的行号 

  1. 命令行释义
root    ALL=(ALL)       ALL 
root 表示用户名, 第一个 ALL 表示主机, 实际上并不是, 括号里边表示的是用户( **授予的用户身份** ), 第二个 ALL 表示所有的命令 
  1. 切换用户使用刚才设置的命令
[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 远程登录
  1. 普通用户要想使用 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 上
  1. 设置用户组
[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 登录, 不管是 密码还是秘钥, 都不能登录

mark

  1. 用 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 次失败的登录尝试。 
  1. 为了以后登录方便, 还是要允许 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

转载于:https://my.oschina.net/u/3869385/blog/1828515

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值