HEX
Server: Apache
System: Linux vpshost0650.publiccloud.com.br 4.4.79-grsec-1.lc.x86_64 #1 SMP Wed Aug 2 14:18:21 -03 2017 x86_64
User: bandeirantesbomb3 (10068)
PHP: 8.0.7
Disabled: apache_child_terminate,dl,escapeshellarg,escapeshellcmd,exec,link,mail,openlog,passthru,pcntl_alarm,pcntl_exec,pcntl_fork,pcntl_get_last_error,pcntl_getpriority,pcntl_setpriority,pcntl_signal,pcntl_signal_dispatch,pcntl_sigprocmask,pcntl_sigtimedwait,pcntl_sigwaitinfo,pcntl_strerror,pcntl_wait,pcntl_waitpid,pcntl_wexitstatus,pcntl_wifexited,pcntl_wifsignaled,pcntl_wifstopped,pcntl_wstopsig,pcntl_wtermsig,php_check_syntax,php_strip_whitespace,popen,proc_close,proc_open,shell_exec,symlink,system
Upload Files
File: //proc/self/root/lib/python2.7/site-packages/lwdbadmin/util.py
import ctypes
import logging
import os
import re
import socket
import subprocess


from OpenSSL import crypto

NFSFLAGS = "rw,bg,nolock,rsize=32768,wsize=32768,nfsvers=3,tcp,noacl,nosuid,noatime,nodiratime,retrans=2,nordirplus,hard,nocto,nointr,lookupcache=all,actimeo=60"

def getservices(fname="/etc/fstab"):
    ret = []
    r = re.compile("^bdfs-\d{4,4}\.fs\.locaweb\.com\.br:/storage/BDFS-\d{4,4}/(.*)/data\s+(.*)\s+nfs")
    with open(fname) as f:
        for l in f:
            m = r.match(l)
            if m:
                ret.append((m.group(1), m.group(2)))
    return ret


def setsrvips(directory, serviceip, backupip):
    with open(os.path.join(directory, "service.conf"), "w+") as f:
        f.write(" # SERVICEIP: {0}\n".format(serviceip))
        f.write(" # BACKUPIP: {0}\n".format(backupip))
        serviceip = serviceip.split('/')[0]
        backupip = backupip.split('/')[0]
        f.write("listen_addresses = '{0},{1}'\n".format(serviceip, backupip))


def getsrvips(directory):
    serviceip, backupip = None, None
    with open(os.path.join(directory, "service.conf")) as f:
        for line in f:
            m = re.match(".*#.*SERVICEIP: (.*)", line)
            if m:
                serviceip = m.group(1)
            m = re.match(".*#.*BACKUPIP: (.*)", line)
            if m:
                backupip = m.group(1)
    return (serviceip)


# this is a very hack function, just for fun. You should use the mount command
def nfs(source, target, options=''):
    host = source.split(':')[0]
    parsed = options.split(',')
    parser = {'rw': 0,
            'nfsvers=3': 0,
            'tcp': 0,
            'nosuid': 2,
            'noatime': 1024,
            'nodiratime': 2048,
            }
    flags = 0
    for flag in [x for x in parsed if x in parser.keys()]:
        flags |= parser[flag]
        parsed.remove(flag)
    ip = socket.gethostbyname(host)
    options = 'addr={0},{1}'.format(ip, ','.join(parsed))
    return mount(source, target, 'nfs', flags, options)


def mount(source, target, fs, flags=0, options=''):
    ret = ctypes.CDLL('libc.so.6', use_errno=True).mount(source, target, fs, flags, options)
    if ret < 0:
        errno = ctypes.get_errno()
        raise RuntimeError("Error mounting {} ({}) on {} with options '{}': {}".
                format(source, fs, target, options, os.strerror(errno)))


def umount(target, flags=0):
    ret = ctypes.CDLL('libc.so.6', use_errno=True).umount(target, flags)
    if ret < 0:
        errno = ctypes.get_errno()
        raise RuntimeError("Error umounting {} with flags '{}': {}".
                format(target, flags, os.strerror(errno)))


def create_self_signed_cert(name, cname, kname):

    # create a key pair
    k = crypto.PKey()
    k.generate_key(crypto.TYPE_RSA, 1024)

    # create a self-signed cert
    cert = crypto.X509()
    cert.get_subject().C = "BR"
    cert.get_subject().ST = "Sao Paulo"
    cert.get_subject().L = "Sao Paulo"
    cert.get_subject().O = "Locaweb"
    cert.get_subject().OU = "Locaweb"
    cert.get_subject().CN = name
    cert.set_serial_number(1000)
    cert.gmtime_adj_notBefore(0)
    cert.gmtime_adj_notAfter(10*365*24*60*60)
    cert.set_issuer(cert.get_subject())
    cert.set_pubkey(k)
    cert.sign(k, 'sha1')

    open(cname, "wt").write(
        crypto.dump_certificate(crypto.FILETYPE_PEM, cert))
    os.chmod(cname, 0600)
    os.chown(cname, 26, 26)
    open(kname, "wt").write(
        crypto.dump_privatekey(crypto.FILETYPE_PEM, k))
    os.chmod(kname, 0600)
    os.chown(cname, 26, 26)

def localtime():

    #ajuste /etc/localtime
    os.unlink("/etc/localtime")
    os.symlink("../usr/share/zoneinfo/America/Sao_Paulo", "/etc/localtime")