You*_*ung 4 python linux paramiko
我正在使用 paramikoput方法将文件从本地发送到远程服务器。但是,我在执行sudo su - user命令以从远程查看文件时遇到问题。我也尝试从本地更改权限,但文件权限在传输时保持不变。
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(<Host>, username=<User Name>, password=<Password)
sftp = ssh.open_sftp()
sftp.put(<Source>, <Destination>)
sftp.close()
Run Code Online (Sandbox Code Playgroud)
有没有办法sudo su - user使用 paramkio执行命令,以便可以从远程读取传输的文件?
谢谢!
不,你不能这样做......但是你可以解决它,通过在上传后使用 sudo 移动文件
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(<Host>, username=<User Name>, password=<Password)
sftp = ssh.open_sftp()
sftp.put(<Source>, destination_i_CAN_write_to)
sftp.close()
#now move the file to the sudo required area!
stdin, stdout, stderr = ssh.exec_command("sudo -S -p '' mv /uploaded/path/to/file.txt /restricted/sudo/path/file.txt",**kwargs)
stdin.write(SUDO_PASSWORD + "\n")
stdin.flush()
Run Code Online (Sandbox Code Playgroud)
该-S旗sudu告诉它期望的密码来从标准输入
该-p ''标志告诉 sudo 使用''或空字符串作为密码提示
您不能简单地sudo su - username在exec_command调用之前使用open_ssh,因为每次调用都exec_command在其自己的子shell中运行,因此更改不会传播回主会话
| 归档时间: |
|
| 查看次数: |
4723 次 |
| 最近记录: |