su命令sudo命令限制root远程登录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了su命令sudo命令限制root远程登录相关的知识,希望对你有一定的参考价值。

一:su命令

● su 的用法:
  su [OPTION选项参数] [用户]
  -, -l, ——login 登录并改变到所切换的用户环境;
  -c, ——commmand=COMMAND 执行一个命令,然后退出所切换到的用户环境;
语法:su username,临时切换到username用户
或者su - username,切换到username用户,并初始化各种环境变量
如果某个用户没有创建家目录,则需创建家目录,并将相关配置文件拷贝过来。
技术分享图片

二:sudo命令

● sudo(有时间限制)
临时执行root命令,需要输入用户密码,并且需要root预先设定。我们可以使用visudo命令来编辑配置文件/etc/sudoers
安装visudo命令:yum install -y sudo
默认root能够sudo,因为文件中有一行“root ALL=(ALL) ALL”,在该行下加入“test ALL=(ALL)ALL”,就可以让test用户有了sudo权利。
该配置分为三个部分

  1. 最左侧是用户名,指定哪个用户拥有sudo权利。
  2. 左边的ALL其实是一个用户名,即test可以切换到哪个用户身份,ALL表示所有用户。小括号里面指定主机名或者主机IP,即test用户从哪个ip登陆来的,ALL为所有。
  3. 最后的ALL,用来指定test用户可以使用的命令为哪些。多个命令用逗号隔开。
    该配置文件不用重启即可生效。

批量设置用户:
将配置文件中“# %wheel ALL=(ALL) ALL”前面的#去掉,让其生效。
表示wheel组中的所有用户都有了sudo权利,可以把需要的用户添加进来即可。

sudo -i: 为了频繁的执行某些只有超级用户才能执行的权限,而不用每次输入密码,可以使用该命令。提示输入密码时该密码为当前账户的密码。没有时间限制。执行该命令后提示符变为“#”而不是“$”。想退回普通账户时可以执行“exit”或“logout” 。
其实,还有几个类似的用法:
sudo /bin/bash : 这个命令也会切换到root的bash下,但不能完全拥有root的所有环境变量,比如PATH,可以拥有root用户的权限。这个命令和 sudo -s 是等同的。
sudo -s : 如上
sudo su : 这个命令,也是登录到了root,但是并没有切换root的环境变量,比如PATH。
sudo su - : 这个命令,纯粹的切换到root环境下,可以这样理解,先是切换到了root身份,然后又以root身份执行了 su - ,这个时候跟使用root登录没有什么区别。这个结果貌似跟sudo -i 的效果是一样的,但是也有不同,sudo 只是临时拥有了root的权限,而su则是使用root账号登录了linux系统。

所以,我们再来总结一下:
sudo su - 约等于 sudo -i
sudo -s 完全等于 sudo /bin/bash 约等于 sudo su
sudo 终究被一个"临时权限的帽子"扣住,不能等价于纯粹的登录到系统里。

三:限制root远程登陆

vi /etc/ssh/sshd_config
按Root关键字搜索
将PermitRootLogin yes 改为no
这样就禁止root直接登陆。
然后再用普通用户登陆服务器,再su或者sudo到root用户下。

以上是关于su命令sudo命令限制root远程登录的主要内容,如果未能解决你的问题,请参考以下文章

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

Linux的su命令,sudo命令和限制root远程登录

su命令sudo命令限制root远程登录

su命令sudo命令限制root远程登录

su命令 sudo命令 限制root远程登录

linux限制root远程登录su命令sudo命令