3.7 su命令
3.8 sudo命令
3.9 限制root远程登录


su就是切换用户的命令

su - username 切记要使用 - 。 我经常使用的时候是不加上-的,这样的话切换的不彻底,尚在之前用户的家目录下

可以采用 whoami来查看当前用户

-c 选项可以用来不登入用户,但是使用该用户来执行命令

su - -c "touch /tmp/3.33333" hello如下图所示


Linu20180415三周第三次课(4月4日)_sudo


是否还记得 useradd -M user 是建立用户但是不生成家目录?

这样虽然可以切换到这个用户但是因为没有家目录和必须的配置文件,所以无法操作。

解决办法:

  1. 首先要为这个用户创建家目录   mkdir /home/username

  2. 然后把这个目录的所属和属组改好  chmod -R username:username /home/username

  3. 此时还没有配置文件怎么办?需要到系统模板目录中拷贝 /etc/skel

  4. cp /etc/skel/.bash* /home/username

  5. 和第二步一样需要改所属和属组  chmod -R username:username /home/username 



sudo命令是让普通用户临时拥有root权限去执行命令


visudo可以打开sudo的配置文件而且可以检测错误。不建议使用vi打开/etc/sudoers这个文件

Linu20180415三周第三次课(4月4日)_sudo_02

Linu20180415三周第三次课(4月4日)_sudo_03

表示以aming用户以root的身份去执行后面的三个命令,但是上面这个是错误的写法,因为命令要用逗号分开,而且是绝对路径

Linu20180415三周第三次课(4月4日)_sudo_04


简单的说,要在sudo配置文件中加入可以操作的用户名称和操作命令,然后用户使用sudo就可以使用了,当然也可以根据文档的标准把用户组放进去

然后sudo的时候还是需要输入密码的,如果不想输出密码可以加一个 NOPASSWD

Linu20180415三周第三次课(4月4日)_用法_05

Linu20180415三周第三次课(4月4日)_sudo_06


Linu20180415三周第三次课(4月4日)_sudo_07


Linu20180415三周第三次课(4月4日)_sudo_08



限制远程root访问



如何限制root远程登陆?

进入ssh的配置文件

Linu20180415三周第三次课(4月4日)_sudo_09

查找Root

Linu20180415三周第三次课(4月4日)_用法_10

将允许root改成no并取消注释

然后重启服务 systemctl restart sshd.service 

这样就限制了root登陆了


因为root的重要性,限制远程登陆root比较好理解,这样的话运维人员可以通过把运维账户的su权限写入visudo中,然后sudo su - 切换到root下。

当然这样的话还是进入了root,所以如果从安全性上来说,只有极少数运维人员可以有这种visudo的su操作权限。

Linu20180415三周第三次课(4月4日)_用法_11

Linu20180415三周第三次课(4月4日)_用法_12

Linu20180415三周第三次课(4月4日)_sudo_13