Commit e209cddb by Stéphane Graber

Merge pull request #667 from cjwatson/ephemeral-parse-passwd

lxc-start-ephemeral: Parse passwd directly
parents 4928c718 c6be89f8
......@@ -29,7 +29,6 @@ import argparse
import gettext
import lxc
import os
import pwd
import sys
import subprocess
import tempfile
......@@ -363,12 +362,17 @@ if os.path.exists("/proc/self/ns/pid"):
if args.user:
username = args.user
user = pwd.getpwnam(username)
os.setgid(user.pw_gid)
os.initgroups(user.pw_name, user.pw_gid)
os.setuid(user.pw_uid)
os.chdir(user.pw_dir)
os.environ['HOME'] = user.pw_dir
line = subprocess.check_output(
["getent", "passwd", username],
universal_newlines=True).rstrip("\n")
_, _, pw_uid, pw_gid, _, pw_dir, _ = line.split(":", 6)
pw_uid = int(pw_uid)
pw_gid = int(pw_gid)
os.setgid(pw_gid)
os.initgroups(username, pw_gid)
os.setuid(pw_uid)
os.chdir(pw_dir)
os.environ['HOME'] = pw_dir
except:
print(_("Unable to switch to user: %s" % username))
sys.exit(1)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment