您的位置:首页 > 其它

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

2017-11-01 00:00 501 查看

3.7 su命令

语法 : su [-] username

后面可以跟 ‘-‘ 也可以不跟,普通用户su不加username时就是切换到root用户,当然root用户同样可以su到普通用户。 ‘-‘ 这个字符的作用是,加上后会初始化当前用户的各种环境变量。



如果不加 ‘-‘ 切换到root账户下时,当前目录没有变化,而加上 ‘-‘ 切换到root账户后,当前目录为root账户的家目录,这跟直接登陆root账户是一样的。当用root切换普通用户时,是不需要输入密码的。

注:root用户后面符号为#,普通用户后面符号为$

3.8 sudo命令

用su是可以切换用户身份,如果每个普通用户都能切换到root身份,如果某个用户不小心泄漏了root的密码,那岂不是系统非常的不安全?没有错,为了改进这个问题,产生了sudo这个命令。使用sudo执行一个root才能执行的命令是可以办到的,但是需要输入密码,这个密码并不是root的密码而是用户自己的密码。默认只有root用户能使用sudo命令,普通用户想要使用sudo,是需要root预先设定的,即使用 visudo 命令去编辑相关的配置文件/etc/sudoers. 如果没有visudo这个命令,请使用 yum install -y sudo 安装。

默认root能够sudo是因为这个文件中有一行 “root ALL=(ALL) ALL” 在该行下面加入 “test ALL=(ALL) ALL” 就可以让test用户拥有了sudo的权利。使用 “visudo” 命令编辑/etc/sudoers配置文件,按 ‘i’ 进入编辑模式,编辑完成后,按 “Esc” ,再输入 ”:wq” 完成保存。



此时可以验证一下test账户的权限了。



由于切换到test账户后的当前目录依旧是在/root 下,test账户没有任何权限,所以 ‘ls’ 的时候提示说权限不够,然而使用 sudo ls 输入test账户自身的密码后就有权限了。初次使用sudo 时会有上面的一大段提示,而后再次使用sudo 命令则不再提示。

如果每增加一用户就设置一行,这样太麻烦了。所以您可以这样设置。把 “# %wheel ALL=(ALL) ALL” 前面的 ‘# ‘ 去掉,让这一行生效。它的意思是,wheel这个组的所有用户都拥有了sudo的权利。接下来就需要您把想让有sudo权利的所有用户加入到wheel这个组中即可。



配置文件/etc/sudoers包含了诸多配置项,可以使用命令 man sudoers 来获得帮助信息。一个很实用的案例,我们的需求是把Linux服务器设置成这个样子:只允许使用普通账户登陆,而普通账户登录后,可以不输入密码就能sudo切换到root账户。配置如下:



保存配置文件后,使用test, tee, 这两个账户登陆Linux后,执行命令 sudo su - 切换到root账户,获取root账户的所有权利。(不需要密码登录)



3.9 限制root远程登录

vi /etc/ssh/sshd_config,将PermitRootLogin的值yes改成no,保存配置文件后,需要重启sshd服务 service sshd restart
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: