在 WinSCP 中,我希望能够拥有 sudo 访问权限。在 WinSCP 中,高级 > SFTP > SFTP 服务器:sudo su -c /usr/lib/openssh/sftp-server
在 Ubuntu 22.04.1 中:
echo "user1 ALL=(ALL) NOPASSWD: ALL" | sudo tee "/etc/sudoers.d/user1-user"
我成功在 WinSCP 中获得了 sudo 访问权限。
但我不想允许所有东西都无密码。只允许 sftp-server。所以我改成ALL
了/usr/lib/openssh/sftp-server
:
user1 ALL=(ALL) NOPASSWD: /usr/lib/openssh/sftp-server
在 WinSCP 中,我收到错误:
无法初始化 SFTP 协议。主机是否正在运行 SFTP 服务器?
为什么?这是我的 Ubuntu 语法问题吗?还是 WinSCP 或 WinSCP 中的设置问题?
sftp 服务器位于/usr/lib/openssh/
答案1
我之前试过user1 ALL=(ALL) NOPASSWD: su -c /usr/lib/openssh/sftp-server
,但没有成功。当然没有成功。我忘了我需要 su 的完整路径,也就是/usr/bin/su
。谢谢 pasman pasmański!
限制 sftp 无密码 sudo 的正确方法如下:
user1 ALL=(ALL) NOPASSWD: /usr/bin/su -c /usr/lib/openssh/sftp-server