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
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(): """ 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)
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)
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)