如何使用 Paramiko 和 sudo
运行 chmod 775
?
代码片段:
ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
r_pass = getpass.getpass(prompt='Remote password? ')
ssh_client.connect(r_ip, username=r_name, password=r_pass)
ftp = ssh_client.open_sftp()
for fn in files:
print("sending {} of {}".format(count, len(files)))
ftp.put(fn, posixpath.join(r_path_mark, fn))
ftp.chmod(r_path_mark+fn, 0o775)
最后一个 ftp.chmod
命令导致“权限被拒绝”。
最佳答案
没有通过 sudo
运行 SFTP 的标准方法 - 虽然并非不可能,但它涉及大量黑客攻击。
有关使用 su
/sudo
与 WinSCP SFTP 客户端的一些背景知识:
How do I change user after login (e.g. su root)? .
或者,您可以通过 sudo
运行 chmod
shell 命令,其他问题已经介绍过:
尽管一般情况下,您不应该以这种方式使用 sudo
来实现命令自动化。
有关替代方案,请参阅:
Allowing automatic command execution as root on Linux using SSH
关于python - 使用 Paramiko 在远程计算机上通过 sudo 执行 SFTP 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60161495/