【发布时间】:2020-05-26 10:13:52
【问题描述】:
如何使用 Paramiko 和 sudo 运行 chmod 775?
代码sn-p:
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 命令导致“permission denied”。
【问题讨论】:
-
这能回答你的问题吗? Running Sudo Command with paramiko
-
我的猜测是 sudo 通过标准输入要求输入密码。如果您连接的用户允许无密码 sudo,我认为它会起作用。否则,我对 Paramiko 不够熟悉,不知道它是否会让您在 stdin 上将密码发送到
sudo提示输入密码之后。 -
我建议改用 Ansible
标签: python ssh sftp sudo paramiko