【发布时间】:2014-08-14 06:44:40
【问题描述】:
我需要在远程服务器上的某个文件上运行 chown 来更改所有者(而不是组)。 paramiko chown 命令接受 3 个参数:path、gid、uid。
在我的代码中,我有用户名,而不是 uid。所以这是我的代码:
#some code here
...
object_stat = sftp_client.stat(object_path)
sftp_client.chown(object_path, owner_username, int(object_stat.st_gid))
...
#more code
有没有办法解决这个问题?如果我们可以避免使用 shell 命令,它是首选。
谢谢!
【问题讨论】:
-
你可以使用pexpect然后直接运行chown命令。它想在你自己的系统上运行cmd。
-
@vks - 谢谢。可以期待“骑” paramiko 连接吗?还是我必须打开一个新连接?
-
不,它自己建立连接。
-
您可以通过
pwd模块从用户名中获取uid,从uid中获取用户名。 docs.python.org/2/library/pwd.html