WinSCP下su切换到root用户的方法

一直使用开源软件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即可。

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: