关于Winscp连接获取root权限的方法
程序员文章站
2022-06-18 16:20:56
一直使用开源软件WinSCP与Linux服务器传输文件,界面友好且自带中文。
有的时候为了服务器的安全我们一般都是禁用root用户直接连接ssh,而是换成其它权限比较低的用户账号,这个时候我...
一直使用开源软件WinSCP与Linux服务器传输文件,界面友好且自带中文。
有的时候为了服务器的安全我们一般都是禁用root用户直接连接ssh,而是换成其它权限比较低的用户账号,这个时候我们再用WinSCP连接服务器的时候就会无法连接,更无法与服务器间传输文件,因为root账户无法登陆,而像是FTP,SFTP,SCP这些协议都不支持在登录以后切换用户。
其实解决方法还是有的,如下:
SCP协议在登录的时候可以指定shell,一般默认的也就是推荐的是/bin/bash,但是我们可以修改它来玩花样,比如改成sudo su -
但是问题又来了,sudo需要输入密码,但是WinSCP在登录的时候并没有交互过程。聪明的你一定已经想到了,只要在root权限下visudo,添加如下一行即可取消sudu时的密码:
yourusername ALL=NOPASSWD: ALL
为了可以在非tty的环境下sudo,我们还需要注释掉下面一行:
Defaults requiretty(这一行没有的话就不用注释了)
然后保存,即可在登录到WinSCP的时候享受root的快感啦!
总而言之,有以下几步:
1.普通用户ssh到服务器,切换到root权限
2.visudo,然后添加 yourusername ALL=NOPASSWD: ALL 这一行,注释掉Defaults requiretty
3.修改WinSCP的文件协议为SCP
4.修改环境-SCP/Shell下的shell为sudo su-
5.登录WinSCP即可。