我有一个以本地用户身份运行的批处理作业。我需要将 sftp 文件作为同一作业的一部分,但使用 sudo 作为不同的 AD 用户。
为此,已在源服务器上设置 AD 用户,并在 sudoers 文件中执行以下配置,以使 ADMINSUDO 组中的任何用户能够执行 scp/sftp
Cmnd_Alias TSTSFTP = /usr/bin/scp, /usr/bin/sftp
%ADMINSUDO ALL=(AD_User) NOPASSWD:SETENV:TSTSFTP
当我执行时
sudo -u AD_User /usr/bin/sftp
我收到以下错误,表明 sudo 成功,但有人可以帮助解决 sftp 问题吗?
usage: sftp [-1246aCfpqrv] [-B buffer_size] [-b batchfile] [-c cipher]
[-D sftp_server_path] [-F ssh_config] [-i identity_file] [-l limit]
[-o ssh_option] [-P port] [-R num_requests] [-S program]
[-s subsystem | sftp_server] host
sftp [user@]host[:file ...]
sftp [user@]host[:dir[/]]
sftp -b batchfile [user@]host
答案1
host 是 sftp 的强制参数
使用
sudo -u AD_User /usr/bin/sftp host
注意
AD_user
如果发送应该能够读取本地文件,如果接收则应该能够写入host
必须接受无密码连接AD_user
(我希望这就是您sudo
首先使用的原因)