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

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

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

不过天无绝人之路,某C很快在WInSCP官网的FAQ里找到了这个网页:

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

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

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

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

<script type="math/tex; mode=display" id="MathJax-Element-1"></script>
<script type="math/tex; mode=display" id="MathJax-Element-2"></script>
<script type="math/tex; mode=display" id="MathJax-Element-3"></script>
<script type="math/tex; mode=display" id="MathJax-Element-4"></script>
<script type="math/tex; mode=display" id="MathJax-Element-5"></script>
<script type="math/tex; mode=display" id="MathJax-Element-6"></script>$$ root 分割线 #############################

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

posted @   星火燎猿*  阅读(697)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示