Skip to content

os.homedir() doesn't respect setuid #28281

Closed

Description

@neuroscr

Expected os.homedir() to home directory of the current user as a string but when the current user changes via process.setuid() this directory still show the original user's home directory

Activity

  1. Trott commented on Jun 18, 2019

    @Trott
    Member

    Expected os.homedir() to home directory of the current user as a string but when the current user changes via process.setuid() this directory still show the original user's home directory

    I understand the expectation, but at the same time, I would expect the opposite behavior--that changing the uid does not affect the home directory. Other languages seem to bear this out. Here's Python being run initially as root and then changing to an unprivileged user with a different home directory:

    Python 2.7.10 (default, Feb 22 2019, 21:55:15) 
    [GCC 4.2.1 Compatible Apple LLVM 10.0.1 (clang-1001.0.37.14)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import os
    >>> from os.path import expanduser
    >>> expanduser("~")
    '/var/root'
    >>> os.setuid(501)
    >>> expanduser("~")
    '/var/root'

    Perhaps relevant explanation about why sudo preserves the home directory by default rather than adopting the home directory of the privileged user: https://askubuntu.com/a/338449/112895

  2. neuroscr commented on Jun 18, 2019

    @neuroscr
    Author

    if that's the case, at least the documentation on os.homedir() should be updated to be precise and reflect that; save some other coders some time

    (why didn't I think of the ~username trick...)

  3. added
    docIssues and PRs related to Node.js documentation.
    osIssues and PRs related to the os subsystem.
    on Jun 19, 2019
  4. juanarbol commented on Jun 24, 2019

    @juanarbol
    Member

    Take a look to his PR #28401

  5. cclauss commented on Aug 14, 2019

    @cclauss
    Contributor

    Did this issue get resolved?

  6. bnoordhuis commented on Aug 14, 2019

    @bnoordhuis
    Member

    The PR was merged so yes, this was indeed resolved. Closing, thanks for the ping.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    docIssues and PRs related to Node.js documentation.osIssues and PRs related to the os subsystem.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions