X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=plugins%2Fspecialaccounts.py;h=545910fad1b6403a1ab2f8c8dec6852dbba133cd;hb=f9bb3327f1a77a058d98c15095a8c4e874564c9b;hp=a6c07b007cb467fbb7c4cec1f81bf586967c0988;hpb=a26fbdd37cf08b1de984319565646e04f140f046;p=nodemanager.git diff --git a/plugins/specialaccounts.py b/plugins/specialaccounts.py index a6c07b0..545910f 100644 --- a/plugins/specialaccounts.py +++ b/plugins/specialaccounts.py @@ -21,8 +21,11 @@ import tools def start(options, conf): logger.log("personkeys plugin starting up...") -def GetSlivers(plc, data, conf): - if 'accounts' not in data: return +def GetSlivers(data, conf = None, plc = None): + if 'accounts' not in data: + logger.log("specialaccounts: No account information found. DISABLED!") + return + for account in data['accounts']: name = account['name'] new_keys = account['keys'] @@ -30,24 +33,24 @@ def GetSlivers(plc, data, conf): # look up account name, which must exist pw_info = pwd.getpwnam(name) uid = pw_info[2] - gid = pw_info[3] + gid = pw_info[3] pw_dir = pw_info[5] # populate account's .ssh/authorized_keys file - dot_ssh = pw_dir + '/.ssh' + dot_ssh = os.path.join(pw_dir,'.ssh') if not os.access(dot_ssh, os.F_OK): os.mkdir(dot_ssh) - auth_keys = dot_ssh + '/authorized_keys' - logger.log("new keys = %s" % auth_keys) + auth_keys = os.path.join(dot_ssh,'authorized_keys') + logger.log("new keys = %s" % auth_keys) fd, fname = tempfile.mkstemp('','authorized_keys',dot_ssh) - for key in new_keys: + + for key in new_keys: os.write(fd,key) os.write(fd,'\n') os.close(fd) - if os.path.exists(auth_keys): - os.unlink(auth_keys) - os.rename(fname,auth_keys) + if os.path.exists(auth_keys): os.unlink(auth_keys) + os.rename(fname, auth_keys) # set permissions properly os.chmod(dot_ssh, 0700)