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

su命令

su=切换用户

格式su [-] username,命令后面不加username,就是切换到root用户。

加 - 表示彻底切换用户,包括自己的配置、环境变量。

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

假如我们以普通用户user的身份去执行一条命令,但是不登陆到user用户上去也是可以的

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

假如我们创建用户时没有创建用户的家目录,所以当我们切换到这个用户的时候,就会显示成su命令,sudo命令,限制root远程登录

以下操作我们可以让他恢复正常

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

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



sudo命令

授权普通用户拥有别的用户的权限,大部分时候是授权普通用户拥有root用户的权限,要使用这个命令,需要编辑配置文件,etc/sudoers,但是直接编辑这个文件出错后系统不会报错,所以我们用visudo命令来编辑,如果编辑有问题,系统会提示错误

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


继续往下翻,一直找到root    ALL=(ALL)   ALL这一行,表示允许root用户在任何地方允许所有命令

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


然后在这条命令下面添加命令user   ALL=(ALL)    /usr/bin/ls,  /usr/bin/cd,  /usr/bin/cat,保存退出:wq;注意这里要使用命令的绝对路径并且要用空格隔开;小用法" :set nu"可以查看文件的行数。

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

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


编辑之后,user 就可以拥有root的ls,cd,cat ,的权限了,需要输入用户的密码,第二次就不需要了

使用方式如下

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


续编辑# visudo,在刚才编辑的地方添加一行命令,可以在使用sudo命令时,不需要再输入密码

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

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


visudo中还有可以给命令做别名的用法,用USER_CMD替代/usr/bin/ls,  /usr/bin/mv/,  /usr/bin/cat

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

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

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


限制root远程登录

使用root用户登录服务器有一定的危险,为安全起见,我们可以禁止root远程登录,只允许普通用户登录。首先输入#visudo,给普通用户做别名,然后设定规则,让普通用户拥有任何身份,执行su命令无需密码

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

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


限制root远程登录,首先修改配置文件/etc/ssh/sshd_config,输入/Root搜索,将#PermitRootLogin yes修改为PermitRootLogin no,保存配置文件,重启sshd服务# systemctl restart sshd.service,这样我们就成功的限制了root远程登陆

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

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

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