Go to file
Serge Hallyn 6974df39a7 newuidmap and newgidmap: support passing pid as fd
Closes #635

newuidmap and newgidmap currently take an integner pid as
the first argument, determining the process id on which to
act.  Accept also "fd:N", where N must be an open file
descriptor to the /proc/pid directory for the process to
act upon.  This way, if you

exec 10</proc/99
newuidmap fd:10 100000 0 65536

and pid 99 dies and a new process happens to take pid 99 before
newuidmap happens to do its work, then since newuidmap will use
openat() using fd 10, it won't change the mapping for the new
process.

Example:

// terminal 1:
serge@jerom ~/src/nsexec$ ./nsexec -W -s 0 -S 0 -U
about to unshare with 10000000
Press any key to exec (I am 129176)

// terminal 2:
serge@jerom ~/src/shadow$ exec 10</proc/129176
serge@jerom ~/src/shadow$ sudo chown root src/newuidmap src/newgidmap
serge@jerom ~/src/shadow$ sudo chmod u+s src/newuidmap
serge@jerom ~/src/shadow$ sudo chmod u+s src/newgidmap
serge@jerom ~/src/shadow$ ./src/newuidmap fd:10 0 100000 10
serge@jerom ~/src/shadow$ ./src/newgidmap fd:10 0 100000 10

// Terminal 1:
uid=0(root) gid=0(root) groups=0(root)

Signed-off-by: Serge Hallyn <serge@hallyn.com>
2023-02-24 12:35:49 -06:00
.builds CI: add libbsd and pkg-config dependencies 2022-11-28 09:07:41 -06:00
.github run on github runner 2023-02-09 09:55:04 -06:00
contrib Remove superfluous casts 2023-02-09 10:03:03 -06:00
doc Remove traces of utmpx 2022-12-22 10:31:43 +01:00
docs fix spelling and unify whitespace 2021-08-18 18:06:02 +00:00
etc fix PAM service files --without-selinux 2022-03-04 08:51:20 -06:00
lib newuidmap and newgidmap: support passing pid as fd 2023-02-24 12:35:49 -06:00
libmisc Fix use-after-free of pointer after realloc(3) 2023-02-23 20:28:43 -06:00
libsubid Remove superfluous casts 2023-02-09 10:03:03 -06:00
man newuidmap and newgidmap: support passing pid as fd 2023-02-24 12:35:49 -06:00
po Assume getutent(3) exists (remove dead code) 2023-02-08 17:21:34 +01:00
src newuidmap and newgidmap: support passing pid as fd 2023-02-24 12:35:49 -06:00
tests Use safer allocation macros 2023-02-23 20:28:43 -06:00
.gitignore Show libsubid api version in subid.h 2021-12-05 08:02:57 -06:00
.travis.yml subids: support nsswitch 2021-04-16 21:02:37 -05:00
acinclude.m4 configure: replace obsolete autoconf macros 2022-05-10 09:55:18 +02:00
AUTHORS.md AUTHORS: improve markdown output 2022-03-18 16:10:51 -05:00
autogen.sh undo accidental autogen.sh commit: enable-shared 2021-11-27 14:56:03 -06:00
ChangeLog fix typo 2023-01-12 12:10:57 +01:00
configure.ac Add stpecpy() 2023-02-16 11:29:33 +01:00
COPYING Update licensing info 2021-12-23 19:36:50 -06:00
Makefile.am fix spelling and unify whitespace 2021-08-18 18:06:02 +00:00
NEWS fix typo 2023-01-12 12:10:57 +01:00
README Add README as symlink to README.md 2021-12-19 14:09:08 -06:00
README.md README: update content and format 2021-11-22 15:31:54 +01:00
SECURITY.md Add Christian Brauner to SECURITY.md 2021-10-25 14:26:37 -05:00
shadow.spec.in * shadow.spec.in: Fix the source (new FTP). 2008-08-31 17:30:45 +00:00
TODO fix spelling and unify whitespace 2021-08-18 18:06:02 +00:00

shadow-utils

Introduction

The shadow-utils package includes the necessary programs for converting UNIX password files to the shadow password format, plus programs for managing user and group accounts. The pwconv command converts passwords to the shadow password format. The pwunconv command unconverts shadow passwords and generates a passwd file (a standard UNIX password file). The pwck command checks the integrity of password and shadow files. The lastlog command prints out the last login times for all users. The useradd, userdel, and usermod commands are used for managing user accounts. The groupadd, groupdel, and groupmod commands are used for managing group accounts.

Sites

Contacts

There are several ways to contact us:

Mailing archives

Authors and maintainers

Authors and maintainers are listed in AUTHORS.md.