WinSCP下su切换到root的技巧(禁止root远程ssh登录时)

分类:
标签:
分享到:

在实验室与服务器传输文件时一般使用的都是WinSCP这个开源软件,界面友好而且自带中文。我们的服务器早先安全意识较差,开放了root的ssh远程登录,虽然有安全隐患,但倒也方便。

后来老师突发奇想,限制了root用户的远程登录,但是重要的数据文件都是700,这可害苦了我们,每次只有先用普通账户登录,然后再su到root下。这也就算了,更可悲的是,WinSCP完全失去了用武之地。因为root账户无法登陆,而像是FTP,SFTP,SCP这些协议都不支持在登录以后切换用户。

不过天无绝人之路,某C很快在WInSCP官网的FAQ里找到了这个网页:http://winscp.net/eng/docs/faq_su,很巧妙的解决了我们遇到的问题。简单来说就是利用 sudo 加上 自定义shell 的技巧。

SCP协议在登录的时候可以指定shell,一般默认的也就是推荐的是/bin/bash,但是我们可以修改它来玩花样,比如改成sudo su -



但是问题又来了,sudo需要输入密码,但是WinSCP在登录的时候并没有交互过程。聪明的你一定已经想到了,只要在root权限下visudo,添加如下一行即可取消sudu时的密码:
yourusername ALL=NOPASSWD: ALL

为了可以在非tty的环境下sudo,我们还需要注释掉下面一行:
Defaults    requiretty

然后保存,即可在登录到WinSCP的时候享受root的快感啦!


$$$$$$$$$$$$$$$$$$$$$$$$$$ root 分割线 #############################

总而言之,有以下几步:
1.普通用户ssh到服务器,切换到root权限
2.visudo,然后添加 yourusername ALL=NOPASSWD: ALL 这一行,注释掉Defaults    requiretty
3.修改WinSCP的文件协议为SCP
4.修改环境-SCP/Shell下的shell为sudo su-
5.登录WinSCP即可。

如果有问题可以在下面留言哈!

你可能还会对下列文章感兴趣:

4条评论 你不想来一发么↓ 顺序排列 倒序排列

    向下滚动可载入更多评论,或者点这里禁止自动加载

    想说点什么呢?

    您需要登录您的Google账号才能进行评论。想要匿名评论?试试新的评论框吧↓