From 14c2f6cb0ff21279e938c2c4d84fdacf1eb61280 Mon Sep 17 00:00:00 2001 From: Narayan Desai Date: Tue, 19 Oct 2004 19:09:17 +0000 Subject: fix aggregious pylint problems update to new api (Logical change 1.101) git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@465 ce84e21b-d406-0410-9b95-82705330c041 --- src/lib/Server/Generators/account.py | 58 +++++++++++++++++++----------------- 1 file changed, 30 insertions(+), 28 deletions(-) diff --git a/src/lib/Server/Generators/account.py b/src/lib/Server/Generators/account.py index a62fa0eb5..5908f6ca5 100644 --- a/src/lib/Server/Generators/account.py +++ b/src/lib/Server/Generators/account.py @@ -1,54 +1,56 @@ #!/usr/bin/env python +'''This handles authentication setup''' +__revision__ = '$Revision$' + from Bcfg2.Server.Generator import Generator, DirectoryBacked -from Bcfg2.Server.Types import ConfigFile class account(Generator): - __name__ = 'account' - __version__ = '$Id$' - __author__ = 'bcfg-dev@mcs.anl.gov' - __doc__ = '''This module generates account config files, based on an internal data repo: + '''This module generates account config files, + based on an internal data repo: static.(passwd|group|limits.conf) -> static entries dyn.(passwd|group) -> dynamic entries (usually acquired from yp) useraccess -> users to be granted login access on some hosts superusers -> users to be granted root privs on all hosts rootlike -> users to be granted root privs on some hosts ''' + __name__ = 'account' + __version__ = '$Id$' + __author__ = 'bcfg-dev@mcs.anl.gov' + __provides__ = {'ConfigFile':{}} def __setup__(self): self.repository = DirectoryBacked(self.data) self.ssh = DirectoryBacked("%s/ssh"%(self.data)) - self.__provides__ = {'ConfigFile':{'/etc/passwd':self.GenFromYP, - '/etc/group':self.GenFromYP, - '/etc/security/limits.conf':self.GenLimits, - '/root/.ssh/authorized_keys':self.GenRootKeys}} - - def GenFromYP(self,filename,client): - fname = filename.split('/')[-1] - static = self.repository.entries["static.%s"%(fname)].data - yp = self.repository.entries["dyn.%s"%(fname)].data - return ConfigFile(filename,"root","root",'0644',static+yp) - - def GenLimits(self,filename,client): - fname = 'limits.conf' + self.__provides__['ConfigFile'] = {'/etc/passwd':self.from_yp, + '/etc/group':self.from_yp, + '/etc/security/limits.conf':self.gen_limits, + '/root/.ssh/authorized_keys':self.gen_root_keys} + + def from_yp(self, entry, metadata): + fname = entry.attrib['name'].split('/')[-1] + entry.text = self.repository.entries["static.%s" % (fname)].data + entry.text += self.repository.entries["dyn.%s" % (fname)].data + entry.attrib.update({'owner':'root', 'group':'root', 'perms':'0644'}) + + def gen_limits(self, entry, metadata): static = self.repository.entries["static.limits.conf"].data superusers = self.repository.entries["superusers"].data.split() useraccess = self.repository.entries["useraccess"].data - users = [x[0] for x in useraccess if x[1] == client] - - data = static + "".join(map(lambda x:"%s hard maxlogins 1024\n"%x, superusers + users)) - + users = [x[0] for x in useraccess if x[1] == metadata.hostname] + entry.attrib.upate({'owner':'root', 'group':'root', 'perms':'0600'}) + entry.text = static + "".join(["%s hard maxlogins 1024\n" % x for x in superusers + users]) if "*" not in users: - data += "* hard maxlogins 0\n" - - return ConfigFile(filename,"root","root",'0644',data) + entry.text += "* hard maxlogins 0\n" - def GenRootKeys(self,filename,client): + def gen_root_keys(self, entry, metadata): + data = '' su = self.repository.entries['superusers'].data.split() rl = self.repository.entries['rootlike'].data.split() - su += [x.split(':')[0] for x in rl if x.split(':')[1] == client] + su += [x.split(':')[0] for x in rl if x.split(':')[1] == metadata.hostname] data = '' for user in su: if self.ssh.entries.has_key(user): data += self.ssh.entries[user].data - return ConfigFile(filename,'root','root','0600',data) + entry.attrib.update({'owner':'root', 'group':'root', 'perms':'0600'}) + entry.text = data -- cgit v1.2.3-1-g7c22