From cce555384b9269400f8bfd960d65c720b0653cfc Mon Sep 17 00:00:00 2001 From: Narayan Desai Date: Sat, 21 Jul 2007 15:20:11 +0000 Subject: Account plugin improvement from mschick (Resolves Ticket #470) git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@3530 ce84e21b-d406-0410-9b95-82705330c041 --- src/lib/Server/Plugins/Account.py | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) (limited to 'src/lib') diff --git a/src/lib/Server/Plugins/Account.py b/src/lib/Server/Plugins/Account.py index 96d242100..ac2eba836 100644 --- a/src/lib/Server/Plugins/Account.py +++ b/src/lib/Server/Plugins/Account.py @@ -52,19 +52,34 @@ class Account(Bcfg2.Server.Plugin.Plugin): def gen_root_keys_cb(self, entry, metadata): '''Build root authorized keys file based on current ACLs''' superusers = self.repository.entries['superusers'].data.split() - rootlike = [line.split(':', 1) for line in self.repository.entries['rootlike'].data.split()] - superusers += [user for (user, host) in rootlike if host == metadata.hostname.split('.')[0]] + try: + rootlike = [line.split(':', 1) for line in \ + self.repository.entries['rootlike'].data.split()] + superusers += [user for (user, host) in rootlike \ + if host == metadata.hostname.split('.')[0]] + except: + pass rdata = self.repository.entries - entry.text = "".join([rdata["%s.key" % user].data for user in superusers if rdata.has_key("%s.key" % user)]) + entry.text = "".join([rdata["%s.key" % user].data for user \ + in superusers if \ + rdata.has_key("%s.key" % user)]) perms = {'owner':'root', 'group':'0', 'perms':'0600'} - [entry.attrib.__setitem__(key, value) for (key, value) in perms.iteritems()] + [entry.attrib.__setitem__(key, value) for (key, value) \ + in perms.iteritems()] def gen_sudoers(self, entry, metadata): '''Build root authorized keys file based on current ACLs''' superusers = self.repository.entries['superusers'].data.split() - rootlike = [line.split(':', 1) for line in self.repository.entries['rootlike'].data.split()] - superusers += [user for (user, host) in rootlike if host == metadata.hostname.split('.')[0]] - rdata = self.repository.entries - entry.text = self.repository.entries['static.sudoers'].data%",".join(superusers) + try: + rootlike = [line.split(':', 1) for line in \ + self.repository.entries['rootlike'].data.split()] + superusers += [user for (user, host) in rootlike \ + if host == metadata.hostname.split('.')[0]] + except: + pass + entry.text = self.repository.entries['static.sudoers'].data + entry.text += "".join(["%s ALL=(ALL) ALL\n" % uname \ + for uname in superusers]) perms = {'owner':'root', 'group':'0', 'perms':'0400'} - [entry.attrib.__setitem__(key, value) for (key, value) in perms.iteritems()] + [entry.attrib.__setitem__(key, value) for (key, value) \ + in perms.iteritems()] -- cgit v1.2.3-1-g7c22