Fabric 检查用户拥有 file/folder 的权限
Fabric check user has permissions on file/folder
结构中是否有与 os.access('/path/to/folder', os.W_OK)
等效的功能来检查远程文件夹是否具有给定远程 user/group 的正确权限?
目前我可以尝试使用 with cd
进入文件夹并捕获异常,但我不喜欢那样...
由于显而易见的原因,您不能使用 os
库;但你可以使用 test。我做了一个 2 分钟的快速示例来说明如何使用它。
from fabric.api import env, task, run, sudo as _sudo, settings, hide
env.user = 'vagrant'
env.key_filename = '~/.vagrant/machines/default/virtualbox/private_key'
env.host_string = '127.0.0.1'
env.port = '2222'
def is_file_writable(filepath, sudo=False):
fn = run if not sudo else _sudo
with settings(warn_only=True), hide('everything'):
response = fn('test -w ' + filepath)
return response.return_code == 0
@task
def sometask():
print is_file_writable('/etc/sudoers')
print is_file_writable('/etc/sudoers', sudo=True)
输出:
$ fab sometask
False
True
Done.
Disconnecting from 127.0.0.1:2222... done.
结构中是否有与 os.access('/path/to/folder', os.W_OK)
等效的功能来检查远程文件夹是否具有给定远程 user/group 的正确权限?
目前我可以尝试使用 with cd
进入文件夹并捕获异常,但我不喜欢那样...
由于显而易见的原因,您不能使用 os
库;但你可以使用 test。我做了一个 2 分钟的快速示例来说明如何使用它。
from fabric.api import env, task, run, sudo as _sudo, settings, hide
env.user = 'vagrant'
env.key_filename = '~/.vagrant/machines/default/virtualbox/private_key'
env.host_string = '127.0.0.1'
env.port = '2222'
def is_file_writable(filepath, sudo=False):
fn = run if not sudo else _sudo
with settings(warn_only=True), hide('everything'):
response = fn('test -w ' + filepath)
return response.return_code == 0
@task
def sometask():
print is_file_writable('/etc/sudoers')
print is_file_writable('/etc/sudoers', sudo=True)
输出:
$ fab sometask
False
True
Done.
Disconnecting from 127.0.0.1:2222... done.