Date: Tuesday, September 4, 2012 @ 22:43:54 Author: dreisner Revision: 166164
upgpkg: util-linux 2.22-2 - add etc/pam.d/su in backup array (FS#31412) - include su.1 manpage from upstream git repo - create uuidd user on install - include tmpfiles.d/uuidd.conf (create on install/upgrade) - fix --localstatedir for uuidd Added: util-linux/trunk/su.1 util-linux/trunk/uuidd.tmpfiles Modified: util-linux/trunk/PKGBUILD util-linux/trunk/util-linux.install --------------------+ PKGBUILD | 33 +++++-- su.1 | 230 +++++++++++++++++++++++++++++++++++++++++++++++++++ util-linux.install | 26 +++++ uuidd.tmpfiles | 1 4 files changed, 283 insertions(+), 7 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2012-09-05 01:16:34 UTC (rev 166163) +++ PKGBUILD 2012-09-05 02:43:54 UTC (rev 166164) @@ -4,7 +4,7 @@ pkgname=util-linux pkgver=2.22 -pkgrel=1 +pkgrel=2 pkgdesc="Miscellaneous system utilities for Linux" url="http://www.kernel.org/pub/linux/utils/util-linux/" arch=('i686' 'x86_64') @@ -16,17 +16,31 @@ license=('GPL2') options=('!libtool') source=(ftp://ftp.kernel.org/pub/linux/utils/${pkgname}/v2.22/${pkgname}-${pkgver}.tar.xz + su.1 + uuidd.tmpfiles pam-login pam-common - pam-su) -backup=(etc/pam.d/chfn etc/pam.d/chsh etc/pam.d/login) + pam-su) +backup=(etc/pam.d/chfn etc/pam.d/chsh etc/pam.d/login etc/pam.d/su) install=util-linux.install +md5sums=('ba2d8cc12a937231c80a04f7f7149303' + '7f524538dcf57284a86f03a98e624f04' + 'a39554bfd65cccfd8254bb46922f4a67' + '4368b3f98abd8a32662e094c54e7f9b1' + 'a31374fef2cba0ca34dfc7078e2969e4' + 'fa85e5cce5d723275b14365ba71a8aad') build() { cd "${srcdir}/${pkgname}-${pkgver}" + # unbreak --localstatedir + # TODO(dreisner): find out what sami hand in mind with these heuristics + sed -i '71,75d' configure.ac + ./autogen.sh + ./configure --prefix=/usr \ --libdir=/usr/lib \ + --localstatedir=/run \ --enable-fs-paths-extra=/usr/bin:/usr/sbin \ --enable-raw \ --enable-vipw \ @@ -62,8 +76,13 @@ install -m644 "$srcdir/pam-common" "$pkgdir/etc/pam.d/chsh" install -m644 "$srcdir/pam-login" "$pkgdir/etc/pam.d/login" install -m644 "$srcdir/pam-su" "${pkgdir}/etc/pam.d/su" + + # broken buildsys doesn't include su(1), which means it + # isn't even in the dist tarball + # TODO(dreisner): patch for this already sent upstream + install -m644 "$srcdir/su.1" "$pkgdir/usr/share/man/man1/su.1" + + # include tmpfiles fragment for uuidd + # TODO(dreisner): offer this upstream + install -Dm644 "$srcdir/uuidd.tmpfiles" "$pkgdir/usr/lib/tmpfiles.d/uuidd.conf" } -md5sums=('ba2d8cc12a937231c80a04f7f7149303' - '4368b3f98abd8a32662e094c54e7f9b1' - 'a31374fef2cba0ca34dfc7078e2969e4' - 'fa85e5cce5d723275b14365ba71a8aad') Added: su.1 =================================================================== --- su.1 (rev 0) +++ su.1 2012-09-05 02:43:54 UTC (rev 166164) @@ -0,0 +1,230 @@ +.TH SU "1" "June 2012" "util-linux" "User Commands" +.SH NAME +su \- run a command with substitute user and group ID +.SH SYNOPSIS +.B su +[options...] [\-] [user [args...]] +.SH DESCRIPTION +.B su +allows to run commands with substitute user and group ID. +.PP +When called without arguments +.B su +defaults to running an interactive shell as +.IR root . +.PP +For backward compatibility +.B su +defaults to not change the current directory and to only set the +environment variables +.B HOME +and +.B SHELL +(plus +.B USER +and +.B LOGNAME +if the target +.I user +is not root). It is recommended to always use the +.B \-\-login +option (instead it's shortcut +.BR \- ) +to avoid side effects caused by mixing environments. +.PP +This version of +.B su +uses PAM for authentication, account and session management. Some +configuration options found in other +.B su +implementations such as e.g. support of a wheel group have to be +configured via PAM. +.SH OPTIONS +.TP +\fB\-c\fR \fIcommand\fR, \fB\-\-command\fR=\fIcommand\fR +Pass +.I command +to the shell with the +.B \-c +option. +.TP +\fB\-\-session\-command\fR=\fIcommand\fR +Same as +.B \-c +but do not create a new session (discouraged). +.TP +\fB\-f\fR, \fB\-\-fast\fR +Pass +.B \-f +to the shell which may or may not be useful depending on the +shell. +.TP +\fB\-g\fR, \fB\-\-group\fR=\fIgroup\fR\fR +specify the primary group, this option is allowed for root user only +.TP +\fB\-G\fR, \fB\-\-supp-group\fR=\fIgroup\fR\fR +specify a supplemental group, this option is allowed for root user only +.TP +\fB\-\fR, \fB\-l\fR, \fB\-\-login\fR +Starts the shell as login shell with an environment similar to a real +login: +.RS 10 +.TP +o +clears all environment variables except for +.B TERM +.TP +o +initializes the environment variables +.BR HOME , +.BR SHELL , +.BR USER , +.BR LOGNAME , +.B PATH +.TP +o +changes to the target user's home directory +.TP +o +sets argv[0] of the shell to +.RB ' \- ' +in order to make the shell a login shell +.RE +.TP +\fB\-m\fR, \fB\-p\fR, \fB\-\-preserve-environment\fR +Preserves the whole environment, ie does not set +.BR HOME , +.BR SHELL , +.B USER +nor +.BR LOGNAME . +.TP +\fB\-s\fR \fISHELL\fR, \fB\-\-shell\fR=\fISHELL\fR +Runs the specified shell instead of the default. The shell to run is +selected according to the following rules in order: +.RS 10 +.TP +o +the shell specified with +.B \-\-shell +.TP +o +The shell specified in the environment variable +.B SHELL +if the +.B \-\-preserve-environment +option is used. +.TP +o +the shell listed in the passwd entry of the target user +.TP +o +/bin/sh +.RE +.IP +If the target user has a restricted shell (i.e. not listed in +/etc/shells) the +.B \-\-shell +option and the +.B SHELL +environment variables are ignored unless the calling user is root. +.TP +\fB\-\-help\fR +Display help text and exit. +.TP +\fB\-\-version\fR +Display version information and exit. +.SH CONFIG FILES +.B su +reads the +.I /etc/default/su +and +.I /etc/login.defs +configuration files. The following configuration items are relevant +for +.BR su (1): +.PP +.B FAIL_DELAY +(number) +.RS 4 +Delay in seconds in case of authentication failure. Number must be +a non-negative integer. +.RE +.PP +.B ENV_PATH +(string) +.RS 4 +Defines the PATH environment variable for a regular user. The +default value is +.IR /usr/local/bin:\:/bin:\:/usr/bin . +.RE +.PP +.B ENV_ROOTPATH +(string) +.br +.B ENV_SUPATH +(string) +.RS 4 +Defines the PATH environment variable for root. The default value is +.IR /usr/local/sbin:\:/usr/local/bin:\:/sbin:\:/bin:\:/usr/sbin:\:/usr/bin . +.RE +.PP +.B ALWAYS_SET_PATH +(boolean) +.RS 4 +If set to +.I yes +and \-\-login and \-\-preserve\-environment were not specified +.B su +initializes +.BR PATH . +.RE +.SH EXIT STATUS +.B su +normally returns the exit status of the command it executed. If the +command was killed by a signal, +.B su +returns the number of the signal plus 128. +.PP +Exit status generated by +.B su +itself: +.RS 10 +.TP +1 +Generic error before executing the requested command +.TP +126 +The requested command could not be executed +.TP +127 +The requested command could was not found +.RE +.SH FILES +.PD 0 +.TP 17 +/etc/pam.d/su +default PAM configuration file +.TP +/etc/pam.d/su-l +PAM configuration file if \-\-login is specified +.TP +/etc/default/su +command specific logindef config file +.TP +/etc/login.defs +global logindef config file +.PD 1 +.SH "SEE ALSO" +.BR pam (8), +.BR shells (5), +.BR login.defs (5) +.SH AUTHOR +Derived from coreutils' su which was based on an implementation from +David MacKenzie. +.SH AVAILABILITY +The su command is part of the util-linux package and is +available from +.UR ftp://\:ftp.kernel.org\:/pub\:/linux\:/utils\:/util-linux/ +Linux Kernel Archive +.UE . Modified: util-linux.install =================================================================== --- util-linux.install 2012-09-05 01:16:34 UTC (rev 166163) +++ util-linux.install 2012-09-05 02:43:54 UTC (rev 166164) @@ -1,3 +1,17 @@ +post_install() { + # create user for uuidd + if ! getent group uuidd >/dev/null; then + groupadd -r uuidd + fi + + if ! getent passwd uuidd >/dev/null; then + useradd -r -s /sbin/nologin -g uuidd uuidd + fi + + # ensure /run/uuidd exists + systemd-tmpfiles --create uuidd.conf +} + post_upgrade() { if [ "$(vercmp $2 2.21.2-4)" -lt 0 ]; then if [ -f /var/lib/hwclock/adjtime ]; then @@ -7,4 +21,16 @@ rmdir /var/lib/hwclock fi fi + + post_install } + +post_remove() { + if getent passwd uuidd >/dev/null; then + userdel uuidd + fi + + if getent group uuidd >/dev/null; then + userdel uuidd + fi +} Added: uuidd.tmpfiles =================================================================== --- uuidd.tmpfiles (rev 0) +++ uuidd.tmpfiles 2012-09-05 02:43:54 UTC (rev 166164) @@ -0,0 +1 @@ +d /run/uuidd 0755 uuidd uuidd
