예제 #1
0
    def fix_munin_master_ip(self, element):

        if self.master_ip:
            mip = "allow ^%s$\n" % self.master_ip.replace('.','\.')
            loc_n_mip = LOCIP + mip
            if not files.contains(element['name'], loc_n_mip):
                files.replace_in(element['name'],
                                self.LOCIP, 
                                loc_n_mip)
예제 #2
0
 def fix_grub(self, element):
     files.replace_in(element['name'],
                     '#GRUB_GFXMODE=640x480\n',
                     'GRUB_GFXMODE=1024x768\nGRUB_GFXPAYLOAD_LINUX=1024x768\n')
     cmd_list = [
         "update-grub",
     ]
     completed, pinfo = core.exec_cmd_list(cmd_list)
     if not completed:
         raise Exception(t("Error in installation!"), element['name'])
예제 #3
0
    def fix_centrify_conf(self, element):
        if CONF_MAP('centrify', 'pam_allow_enabled'):
            if not files.contains(element['name'], '\npam.allow.users: file:/etc/centrifydc/users.allow\n'):
                files.replace_in(element['name'],
                                '\n# pam.allow.users: file:/etc/centrifydc/users.allow\n',
                                '\npam.allow.users: file:/etc/centrifydc/users.allow\n')

            if not files.contains(element['name'], '\npam.allow.groups: file:/etc/centrifydc/groups.allow\n'):
                files.replace_in(element['name'],
                                '\n# pam.allow.groups: file:/etc/centrifydc/groups.allow\n',
                                '\npam.allow.groups: file:/etc/centrifydc/groups.allow\n')
예제 #4
0
    def fix_centrifydc(self, element):

        files.replace_in('/etc/apt/sources.list',
                            '# deb http://archive.canonical.com/ubuntu precise partner',
                            'deb http://archive.canonical.com/ubuntu precise partner')

        cmd_list = [
            'apt-get update',
            "bash -c 'DEBIAN_FRONTEND=noninteractive apt-get install -y centrifydc'",
        ]
        completed, pinfo = core.exec_cmd_list(cmd_list)
        if not completed:
            raise Exception(t("Error in installation!"), element['name'])
예제 #5
0
 def move_mysql(self, element):
     if not files.contains('/etc/apparmor.d/usr.sbin.mysqld', '/data/mysql/'):
         files.replace_in('/etc/apparmor.d/usr.sbin.mysqld',
                             '/var/lib/mysql/',
                             '/data/mysql/')
     if not files.realpath('/var/lib/mysql/') == '/data/mysql':
         cmd_list = [
             "/etc/init.d/mysql stop",
             "mv /var/lib/mysql/ /data/",
             "ln -s /data/mysql /var/lib/mysql",
             "chown -h mysql:mysql /var/lib/mysql",
             "service apparmor reload",
             "/etc/init.d/mysql start",
         ]
         completed, pinfo = core.exec_cmd_list(cmd_list)
         if not completed:
             raise Exception(t("Error in installation!"), element['name'])
예제 #6
0
파일: setup.py 프로젝트: pylanglois/uwsa
    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!")
예제 #7
0
    def fix_secure_php(self, element):

        if not files.contains(element['name'], '\nexpose_php = Off\n'):
            files.replace_in(element['name'],
                            '\nexpose_php = On\n',
                            '\nexpose_php = Off\n')
        if CONF_MAP('site', 'php_enhanced_security'):
            if not files.contains(element['name'], self.dis_fun ):
                files.replace_in(element['name'], self.org_dis_fun, self.dis_fun)
        else:    
            files.replace_in(element['name'], self.dis_fun, self.org_dis_fun)
예제 #8
0
    def fix_secure(self, element):

        if not files.contains(element['name'], '\nServerTokens Prod'):
            files.replace_in(element['name'],
                            'ServerTokens OS',
                            'ServerTokens Prod')

        if not files.contains(element['name'], '\nServerSignature Off'):
            files.replace_in(element['name'],
                            '#ServerSignature Off',
                            'ServerSignature Off')

        if not files.contains(element['name'], '\n#ServerSignature On'):
            files.replace_in(element['name'],
                            'ServerSignature On',
                            '#ServerSignature On')

        if not files.contains(element['name'], self.root_directive):
            files.append(element['name'], self.root_directive)
예제 #9
0
 def fix_common_session(self, element):
     if not files.contains(element['name'], '\nsession\trequired\tpam_script.so\trunas=root\n'):
         files.replace_in(element['name'],
                         'session\trequired\tpam_unix.so',
                         'session\trequired\tpam_script.so\trunas=root\nsession\trequired\tpam_unix.so\n')
예제 #10
0
    def fix_ufw(self, element):

        files.replace_in(element['name'],
                        '\n#& ~\n', 
                        '\n& ~\n')
예제 #11
0
    def fix_backup(self, element):

        files.replace_in(element['name'],
                        'BACKUPDIR="/var/lib/automysqlbackup"',
                        'BACKUPDIR="/data/automysqlbackup"', )