shadow/man
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
..
cs manpages: fix 'File Formats and Conversions" 2021-10-15 16:28:12 -05:00
da * NEWS, man/generate_mans.mak: Generate manpages in man1, man3, 2012-05-20 10:18:33 +00:00
de * NEWS, man/generate_mans.mak: Generate manpages in man1, man3, 2012-05-20 10:18:33 +00:00
es Update licensing info 2021-12-23 19:36:50 -06:00
fi * man/*.xml: Add author based on copyright statement. 2012-05-25 11:45:21 +00:00
fr Allow disabling of subordinate IDs. 2013-08-11 15:46:59 +02:00
hu Update licensing info 2021-12-23 19:36:50 -06:00
id * man/*.xml: Add author based on copyright statement. 2012-05-25 11:45:21 +00:00
it * NEWS, man/generate_mans.mak: Generate manpages in man1, man3, 2012-05-20 10:18:33 +00:00
ja Update licensing info 2021-12-23 19:36:50 -06:00
ko Update licensing info 2021-12-23 19:36:50 -06:00
login.defs.d Improve TTYGROUP description in login.defs manpage 2023-02-02 22:03:45 -06:00
pl * NEWS, man/generate_mans.mak: Generate manpages in man1, man3, 2012-05-20 10:18:33 +00:00
po Complete Ukrainian translation 2022-05-24 07:52:36 -05:00
pt_BR Update licensing info 2021-12-23 19:36:50 -06:00
ru * NEWS, man/generate_mans.mak: Generate manpages in man1, man3, 2012-05-20 10:18:33 +00:00
sv * NEWS, man/generate_mans.mak: Generate manpages in man1, man3, 2012-05-20 10:18:33 +00:00
tr Update licensing info 2021-12-23 19:36:50 -06:00
uk uk has no limits.5 translation 2022-08-12 13:24:24 -05:00
zh_CN * NEWS, man/generate_mans.mak: Generate manpages in man1, man3, 2012-05-20 10:18:33 +00:00
zh_TW Update licensing info 2021-12-23 19:36:50 -06:00
.gitignore 2012-02-13 Mike Frysinger <vapier@gentoo.org> 2012-02-13 20:04:40 +00:00
Makefile.am Fix VPATH build 2023-02-13 10:01:17 +01:00
README.md man: generate translations using itstool instead of xml2po 2019-11-03 13:04:17 +01:00
chage.1.xml libmisc/root_flag: add tips for --root flag only support abspath 2022-08-06 15:04:06 -05:00
chfn.1.xml libmisc/root_flag: add tips for --root flag only support abspath 2022-08-06 15:04:06 -05:00
chgpasswd.8.xml libmisc/root_flag: add tips for --root flag only support abspath 2022-08-06 15:04:06 -05:00
chpasswd.8.xml libmisc/root_flag: add tips for --root flag only support abspath 2022-08-06 15:04:06 -05:00
chsh.1.xml Supporting vendor given -shells- configuration file 2023-01-26 22:45:32 -06:00
config.xml.in * man/*.xml, man/config.xml.in: Add source and version 2011-07-08 19:49:09 +00:00
expiry.1.xml Update licensing info 2021-12-23 19:36:50 -06:00
faillog.5.xml Update licensing info 2021-12-23 19:36:50 -06:00
faillog.8.xml libmisc/root_flag: add tips for --root flag only support abspath 2022-08-06 15:04:06 -05:00
generate_mans.mak Fix VPATH build 2023-02-13 10:01:17 +01:00
generate_translations.mak Fix VPATH build 2023-02-13 10:01:17 +01:00
getsubids.1.xml Merge pull request #451 from hallyn/2021-12-05/license 2022-01-02 18:38:42 -06:00
gpasswd.1.xml libmisc/root_flag: add tips for --root flag only support abspath 2022-08-06 15:04:06 -05:00
groupadd.8.xml shadow: use relaxed usernames 2022-09-02 20:27:14 -05:00
groupdel.8.xml libmisc/root_flag: add tips for --root flag only support abspath 2022-08-06 15:04:06 -05:00
groupmems.8.xml changing lock mechanism 2022-12-29 13:58:49 -06:00
groupmod.8.xml libmisc/root_flag: add tips for --root flag only support abspath 2022-08-06 15:04:06 -05:00
groups.1.xml Improve groups and id manpages 2022-03-06 18:00:20 -06:00
grpck.8.xml libmisc/root_flag: add tips for --root flag only support abspath 2022-08-06 15:04:06 -05:00
gshadow.5.xml Update licensing info 2021-12-23 19:36:50 -06:00
id.1.xml Improve groups and id manpages 2022-03-06 18:00:20 -06:00
lastlog.8.xml libmisc/root_flag: add tips for --root flag only support abspath 2022-08-06 15:04:06 -05:00
limits.5.xml Update licensing info 2021-12-23 19:36:50 -06:00
login.1.xml Update licensing info 2021-12-23 19:36:50 -06:00
login.access.5.xml Update licensing info 2021-12-23 19:36:50 -06:00
login.defs.5.xml Update licensing info 2021-12-23 19:36:50 -06:00
logoutd.8.xml Update licensing info 2021-12-23 19:36:50 -06:00
newgidmap.1.xml newuidmap and newgidmap: support passing pid as fd 2023-02-24 12:35:49 -06:00
newgrp.1.xml Update licensing info 2021-12-23 19:36:50 -06:00
newuidmap.1.xml newuidmap and newgidmap: support passing pid as fd 2023-02-24 12:35:49 -06:00
newusers.8.xml libmisc/root_flag: add tips for --root flag only support abspath 2022-08-06 15:04:06 -05:00
nologin.8.xml Update licensing info 2021-12-23 19:36:50 -06:00
passwd.1.xml libmisc/root_flag: add tips for --root flag only support abspath 2022-08-06 15:04:06 -05:00
passwd.5.xml Update licensing info 2021-12-23 19:36:50 -06:00
porttime.5.xml Update licensing info 2021-12-23 19:36:50 -06:00
pwck.8.xml libmisc/root_flag: add tips for --root flag only support abspath 2022-08-06 15:04:06 -05:00
pwconv.8.xml libmisc/root_flag: add tips for --root flag only support abspath 2022-08-06 15:04:06 -05:00
sg.1.xml Update licensing info 2021-12-23 19:36:50 -06:00
shadow-man.xsl Supporting vendor given -shells- configuration file 2023-01-26 22:45:32 -06:00
shadow.3.xml Update licensing info 2021-12-23 19:36:50 -06:00
shadow.5.xml Update licensing info 2021-12-23 19:36:50 -06:00
su.1.xml Update licensing info 2021-12-23 19:36:50 -06:00
suauth.5.xml Update licensing info 2021-12-23 19:36:50 -06:00
subgid.5.xml Update licensing info 2021-12-23 19:36:50 -06:00
subuid.5.xml Update licensing info 2021-12-23 19:36:50 -06:00
sulogin.8.xml Update licensing info 2021-12-23 19:36:50 -06:00
useradd.8.xml Allow supplementary groups to be added via config file 2022-11-18 15:10:56 -06:00
userdel.8.xml libmisc/root_flag: add tips for --root flag only support abspath 2022-08-06 15:04:06 -05:00
usermod.8.xml Fix typos 2023-01-26 22:44:39 -06:00
vipw.8.xml libmisc/root_flag: add tips for --root flag only support abspath 2022-08-06 15:04:06 -05:00

README.md

The official releases ship with pre-built manpages.

The content of the man pages however is dependent on compile flags. So the pre-built ones might not fit your version of shadow. To build them yourself use --enable-man. Furthermore the following build requirements will be needed:

  • xsltproc
  • docbook 4
  • docbook stylesheets
  • itstool