缘由
刚刚我想使用开源软件WinScp在Windows环境下通过sftp协议将远程的软件copy到本地,使用的是普通用户登录,登录进去后无法切换到root用户,所以在网上搜索下解决方案。
搜索方案
搜索解决方案时,按照WinSCP使用普通用户登录切换到root用户的方法 的说明可以实现将普通用户权限提升到root权限
解决步骤
查询sftp服务器路径
- 使用普通用户权限ssh登录目标服务器,然后执行命令:cat /etc/ssh/sshd_config|grep sftp
cat /etc/ssh/sshd_config|grep sftp
搜索方案
搜索解决方案时,按照WinSCP使用普通用户登录切换到root用户的方法 的说明可以实现将普通用户权限提升到root权限
解决步骤
查询sftp服务器路径
使用普通用户权限ssh登录目标服务器,然后执行命令:cat /etc/ssh/sshd_config|grep sftp
cat /etc/ssh/sshd_config|grep sftp

我的linux服务器结果是:Subsystem sftp /usr/libexec/openssh/sftp-server
WinScp设置
由上一步得知sftp服务器路径是/usr/libexec/openssh/sftp-server,所以需要在会话的->高级->环境->SFTP的SFTP服务器配置里输入:
sudo /usr/libexec/openssh/sftp-server


在高级站点设置对话框->Shell配置的Shell输入:sudo -i
"sudo -i"是以交互式的方式将环境变量设置为超级用户root的环境变量,它和"sudo su"是有区别的,后者仅仅是切换到超级用户root身份,但环境还是原来的。

登录
设置完后,输入主机、端口、用户名、密码就可以将WinScp切换至root的目录了