WinSCP普通用户提权root

一般服务器为安全禁止ssh下root账号登录,此时使用sftp登录管理服务器只能使用普通账号登录,给管理带来诸多不便,可以设置为特定普通SSH用户添加sudo权限,登录到sftp时可sudo切换到root权限下

1
2
3
4
5
6
7
8
9
10
11
# 查看sftp-server执行文件目录:
cat /etc/ssh/sshd_config|grep sftp
Subsystem sftp /usr/lib/openssh/sftp-server
# 编辑/etc/sudoers为特定用户添加执行sftp sudo权限:
# 修改为可写
chmod +w /etc/sudoers
vi /etc/sudoers
# 添加如下字段
user ALL=NOPASSWD: /usr/lib/openssh/sftp-server
# 再次修改为只读
chmod -w /etc/sudoers

sftp客户端设置登录以sudo权限执行sftp,,下图以winscp为例:

1
sudo /usr/lib/openssh/sftp-server

scp-root
scp-root

特殊说明:

1
2
3
4
5
6
7
后续如果登录失败日记显示:

sorry, you must have a tty to run sudo ; TTY=unknown

需在/etc/sudoers内注释此行:

#Defaults requiretty