diff options
author | Narayan Desai <desai@mcs.anl.gov> | 2004-08-11 20:40:57 +0000 |
---|---|---|
committer | Narayan Desai <desai@mcs.anl.gov> | 2004-08-11 20:40:57 +0000 |
commit | 8fadeaff80fd1d882ba848690d378d00f5d956fd (patch) | |
tree | 9e21df4c4ba13cc2e579c77f5040f82bd5be724c /generators | |
parent | 43dbb4c68aa84fd243de1b545d0b57e11a45ac52 (diff) | |
download | bcfg2-8fadeaff80fd1d882ba848690d378d00f5d956fd.tar.gz bcfg2-8fadeaff80fd1d882ba848690d378d00f5d956fd.tar.bz2 bcfg2-8fadeaff80fd1d882ba848690d378d00f5d956fd.zip |
Rename: generators/account.py -> src/lib/Server/Generators/account.py
}(Logical change 1.37)
git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@209 ce84e21b-d406-0410-9b95-82705330c041
Diffstat (limited to 'generators')
-rw-r--r-- | generators/account.py | 55 |
1 files changed, 0 insertions, 55 deletions
diff --git a/generators/account.py b/generators/account.py deleted file mode 100644 index b3f74beac..000000000 --- a/generators/account.py +++ /dev/null @@ -1,55 +0,0 @@ -#!/usr/bin/env python - -from Generator from Generator -from GeneratorUtils import DirectoryBacked -from 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: - 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 - ''' - - 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' - 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), ""), - - if "*" not in users: - data += "* hard maxlogins 0\n" - - return ConfigFile(filename,"root","root",'0644',data) - - def GenRootKeys(self,filename,client): - su = self.repository.entries['superusers'].data.split() - rl = self.repository.entries['rootlike'].data.split() - su += [split(x,':')[0] for x in rl if split(x,':')[1] == client] - 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) |