Merge pull request #937 from minrk/service-chdir

Don't set cwd to user's home for services
This commit is contained in:
Min RK
2017-01-16 15:39:20 +01:00
committed by GitHub
2 changed files with 5 additions and 4 deletions

View File

@@ -56,7 +56,7 @@ from traitlets.config import LoggingConfigurable
from .. import orm
from ..traitlets import Command
from ..spawner import LocalProcessSpawner
from ..spawner import LocalProcessSpawner, set_user_setuid
from ..utils import url_path_join
class _MockUser(HasTraits):
@@ -80,7 +80,7 @@ class _ServiceSpawner(LocalProcessSpawner):
if not name or name == getuser():
# no setuid if no name
return
return super().make_preexec_fn(name)
return set_user_setuid(name, chdir=False)
def start(self):
"""Start the process"""

View File

@@ -639,7 +639,7 @@ def _try_setcwd(path):
os.chdir(td)
def set_user_setuid(username):
def set_user_setuid(username, chdir=True):
"""Return a preexec_fn for spawning a single-user server as a particular user.
Returned preexec_fn will set uid/gid, and attempt to chdir to the target user's
@@ -666,7 +666,8 @@ def set_user_setuid(username):
os.setuid(uid)
# start in the user's home dir
_try_setcwd(home)
if chdir:
_try_setcwd(home)
return preexec