Exemple #1
0
    def fix_folder(self, element):
        f = element["name"]
        if element["fix_func"]:
            element["fix_func"](element)
        elif not files.is_dir(f):
            files.mkdir(f)

        if files.is_dir(f):
            files.chmod(f, **element["perm"])
Exemple #2
0
    def fix_file(self, element):

        file_list = []
        if element["name"].find("*") != -1:
            file_list = files.ls(element["name"])
        else:
            file_list = [element["name"]]

        for f in file_list:
            if element["fix_func"]:
                element["fix_func"](element)
            if files.is_file(f):
                files.chmod(f, **element["perm"])
Exemple #3
0
    def fix_cron_acl(self):
        unix_group = self.conf.get('access','unix_group')
        ldap_group = self.conf.get('access','ldap_group')

        if unix_group and CONF_MAP('unix','enabled'):
            unix_acl = self.generate_acl(unix_group)
            cron_fullpath = "/etc/cron.acl/%s" % self.get_safe_name(unix_group)
            files.create(cron_fullpath, unix_acl)
            files.chmod(cron_fullpath, u='rx',g='rx',o='rx')

        if ldap_group and CONF_MAP('ldap','enabled'):
            ldap_acl = self.generate_acl(ldap_group)
            cron_fullpath = "/etc/cron.acl/%s" % self.get_safe_name(ldap_group)
            files.create(cron_fullpath, ldap_acl)
            files.chmod(cron_fullpath, u='rx',g='rx',o='rx')
Exemple #4
0
    def run(self):
        print "pre install"
        _install.run(self)

        #script link
        source = "%s/uwsas/uwsa.py" % self.install_lib
        link = "/usr/local/bin/uwsa"
        if not files.exists(link):
            files.symlink(source,link)
        files.chmod(link, u="rx",g="rx",o="rx")

        #validate v0.3.1 old path
        if files.exists("/usr/local/lib/uwsa") and \
            inputs.get_input_yesno(t("The old uwsa path exists. Do you want to move its content to new destination?")):
            cmd_list = [
                "bash -c 'mkdir -p /var/lib/uwsa'",
                "bash -c 'cp -fr /usr/local/lib/uwsa/* /var/lib/uwsa/'",
            ]
            completed, pinfo = core.exec_cmd_list(cmd_list)
            if completed:
                cmd_list = [
                    "bash -c 'mv /usr/local/lib/uwsa /usr/local/lib/uwsa_to_delete'",
                ]
                completed, pinfo = core.exec_cmd_list(cmd_list)
            files.replace_in('/etc/uwsa/uwsa.conf','/usr/local/lib/uwsa','/var/lib/uwsa')

        #validate v0.4 remove mysql_xxx in conf

        all_conf = files.ls("/var/lib/uwsa/site/*")
        for f in all_conf:
            if files.is_file(f):
                files.replace_in(f,'mysql_schema','schema')
                files.replace_in(f,'mysql_user','user')
                files.replace_in(f,'mysql_pass','pass')

        #install prereque
        dependencies = "python-ldap python-iniparse python-mysqldb"
        print t("Will install"), dependencies
        cmd_list = [
            'apt-get update',
            "bash -c 'DEBIAN_FRONTEND=noninteractive apt-get install -y %s'" % dependencies,
        ]
        completed, pinfo = core.exec_cmd_list(cmd_list)
        if not completed:
            raise Exception(t("Cannot install uwsa dependencies! %s" % dependencies))

        print t("post install DONE!")
Exemple #5
0
 def fix_auto_mount(self):
     safe_site_name = self.get_safe_name(self.conf.get('main','site_name'))
     auto_mount = self.generate_auto_mount()
     auto_mount_filename = CONF_MAP('libpam_script','auto_mount_dir') + "/%s" % safe_site_name
     files.create(auto_mount_filename, auto_mount)
     files.chmod(auto_mount_filename, u='rx',g='rx',o='')
Exemple #6
0
 def fix_perm_dev_team(self, element):
     if not files.contains(element['name'], self.cron_acl_dev_team):
         files.create(element['name'], self.cron_acl_dev_team)
     files.chmod(element['name'], u='rx',g='rx',o='rx')
Exemple #7
0
 def fix_perm_cron(self, element):
     if not files.contains(element['name'], self.cron_acl_sudo):
         files.create(element['name'], self.cron_acl_sudo)
     files.chmod(element['name'], u='rx',g='rx',o='rx')
Exemple #8
0
 def fix_sudoers(self, element):
     if not files.contains(element['name'], '%domain\ admins ALL=(ALL) ALL'):
         files.append(element['name'], '%domain\ admins ALL=(ALL) ALL')
     files.chmod(element['name'], **element['perm'])