且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2022-09-17 08:09:57

3.7 su命令

su命令是用来切换用户的,例如我要从root用户切换到user2用户:

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


  这个 - 选项是彻底切换用户的意思,如果不加 选项也可以,但是切换得不彻底,例如当前的家目录还是root,环境变量也还是root的配置等等:

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


可以用su命令以某个用户的身份去执行一条命令,而且这个用户并不会进行登录:

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


普通用户使用su命令切换到root用户或者其他普通用户的时候都需要输入密码,而root用户切换到普通用户不需要输入密码:

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


有一种情况就是某个普通用户没有家目录,这种情况登录到这个用户的话和其他用户有点不太一样:

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


想要让这个用户恢复正常的话需要使用root用户为这个用户在home目录下创建一个家目录,然后将家目录的配置文件拷贝一份进去:

  1.创建一个家目录:

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

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


2.拷贝skel目录的配置文件,这个skel目录是模板目录里面的配置文件所有用户都是通用的,拷贝之后要更改一下所属组:

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


3.登录正常:

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


sudo命令

sudo命令可以让普通用户临时指定一个用户去执行一条命令,一般都是用于临时给普通用户授权root用户的身份。

查看配置文件命令:

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

用此命令打开文件的原因是可以在编辑此配置文件的时候检测到语法错误。


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

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

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

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

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

注意:赋予用户具体的命令时,要写命令文件的绝对路径,并且要用逗号加空格分割


普通用户使用想要查看root目录是权限不够的:

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


  但是由于刚才我们在配置文件里授予了user2用户可以使用sudo命令临时获得以root用户身份执行lsmvcat命令的权限,所以使用sudo命令就可以查看root目录了:

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

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


在配置文件里授予权限的时候加个PASSWD: 就可以在普通用户使用sudo命令的时候不需要输入密码:

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

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


配置文件起别名的使用:

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

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

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


针对用户组进行配置权限:

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

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

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


限制root远程登录

因为root用户的密码很重要,不能轻易的被别人知道,所以我们需要让普通用户能够无需知道密码就能登录root用户:

  1.首先使用visudo命令编辑配置文件:

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

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


2.配置成功则可以使用sudo命令无需密码登录root

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


如果密码没有使用管理密码的工具管理的话,一般都是以明文状态显示的,为了防止root用户的密码不小心被别人获得后,进行远程登录的情况,所以有时候需要限制使用root用户进行远程登录

  1.修改sshd.config配置文件:

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

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

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

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

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



完成以上操作后,无论使用密钥或者是密码都无法远程登录root用户了:

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

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


只有普通用户可以远程登录:

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


因为刚刚授予了普通用户使用sudo命令可以免密码登录到root用户,所以现在普通用户可以在不知道密码的情况下登录到root

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


  想要取消限制的话,就注释掉sshd.config文件中刚刚修改的那一行,接着重启服务即可:

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

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

取消限制后就可以正常远程登录root




本文转自 ZeroOne01 51CTO博客,原文链接:http://blog.51cto.com/zero01/1972142,如需转载请自行联系原作者