summaryrefslogtreecommitdiffstats
path: root/generators
diff options
context:
space:
mode:
authorNarayan Desai <desai@mcs.anl.gov>2004-08-11 20:40:57 +0000
committerNarayan Desai <desai@mcs.anl.gov>2004-08-11 20:40:57 +0000
commit8fadeaff80fd1d882ba848690d378d00f5d956fd (patch)
tree9e21df4c4ba13cc2e579c77f5040f82bd5be724c /generators
parent43dbb4c68aa84fd243de1b545d0b57e11a45ac52 (diff)
downloadbcfg2-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.py55
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)