2016-05-05 12 views
0

Gibt es eine Entsprechung in Fabric zu os.access('/path/to/folder', os.W_OK) zu überprüfen, ob ein Remote-Ordner die richtigen Berechtigungen für einen Remote-Benutzer/Gruppe hat?Fabric check Benutzer hat Berechtigungen für Datei/Ordner

Zur Zeit kann ich versuchen, in den Ordner mit with cd und fängt die Ausnahme erhalten, aber ich mag diese Weise nicht ...

Antwort

1

Sie können nicht die os lib aus offensichtlichen Gründen verwenden; aber Sie können test verwenden. Ich machte ein schnelles 2-Minuten-Beispiel, wie man es benutzt.

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) 

Ausgang:

$ fab sometask 
False 
True 

Done. 
Disconnecting from 127.0.0.1:2222... done. 
Verwandte Themen