def _cache_open(pathname, mode):
    f = open(pathname, mode)
    if util.via_sudo():
        uid = int(os.environ['SUDO_UID'])
        gid = int(os.environ['SUDO_GID'])
        os.fchown(f.fileno(), uid, gid)
    return f
Ejemplo n.º 2
0
def _cache_open(pathname, mode):
    f = open(pathname, mode)
    if util.via_sudo():
        uid = int(os.environ['SUDO_UID'])
        gid = int(os.environ['SUDO_GID'])
        os.fchown(f.fileno(), uid, gid)
    return f
Ejemplo n.º 3
0
def init():
    """
    Initialize the Git repository.
    """
    dirname = repo()
    try:
        os.makedirs(dirname)
        if util.via_sudo():
            uid = int(os.environ['SUDO_UID'])
            gid = int(os.environ['SUDO_GID'])
            os.chown(dirname, uid, gid)
    except OSError:
        pass
    try:
        p = subprocess.Popen(['git',
                              '--git-dir', dirname,
                              'init',
                              '--bare',
                              '-q'],
                             close_fds=True,
                             preexec_fn=unroot,
                             stdout=sys.stderr,
                             stderr=sys.stderr)
    except OSError:
        logging.error('git not found on PATH - exiting')
        sys.exit(1)
    p.communicate()
    if 0 != p.returncode:
        #sys.exit(p.returncode)
        raise GitError(p.returncode)
Ejemplo n.º 4
0
def init():
    """
    Initialize the Git repository.
    """
    dirname = repo()
    try:
        os.makedirs(dirname)
        if util.via_sudo():
            uid = int(os.environ['SUDO_UID'])
            gid = int(os.environ['SUDO_GID'])
            os.chown(dirname, uid, gid)
    except OSError:
        pass
    try:
        p = subprocess.Popen(
            ['git', '--git-dir', dirname, 'init', '--bare', '-q'],
            close_fds=True,
            preexec_fn=unroot,
            stdout=sys.stderr,
            stderr=sys.stderr)
    except OSError:
        logging.error('git not found on PATH - exiting')
        sys.exit(1)
    p.communicate()
    if 0 != p.returncode:
        #sys.exit(p.returncode)
        raise GitError(p.returncode)
 def __init__(self, dir=None):
     self.cwd = os.getcwd()
     if dir is None:
         dir = tempfile.gettempdir()
     self.tempdir = tempfile.mkdtemp(dir=dir)
     if util.via_sudo():
         uid = int(os.environ['SUDO_UID'])
         gid = int(os.environ['SUDO_GID'])
         os.chown(self.tempdir, uid, gid)
Ejemplo n.º 6
0
 def __init__(self, dir=None):
     self.cwd = os.getcwd()
     if dir is None:
         dir = tempfile.gettempdir()
     self.tempdir = tempfile.mkdtemp(dir=dir)
     if util.via_sudo():
         uid = int(os.environ["SUDO_UID"])
         gid = int(os.environ["SUDO_GID"])
         os.chown(self.tempdir, uid, gid)
Ejemplo n.º 7
0
def unroot():
    """
    Drop privileges gained through sudo(1).
    """
    if util.via_sudo():
        uid = int(os.environ['SUDO_UID'])
        gid = int(os.environ['SUDO_GID'])
        os.setgid(gid)
        os.setegid(gid)
        os.setuid(uid)
        os.seteuid(uid)
Ejemplo n.º 8
0
def unroot():
    """
    Drop privileges gained through sudo(1).
    """
    if util.via_sudo():
        uid = int(os.environ['SUDO_UID'])
        gid = int(os.environ['SUDO_GID'])
        os.setgid(gid)
        os.setegid(gid)
        os.setuid(uid)
        os.seteuid(uid)