Daniel J Walsh 1ba26c
--- /dev/null	2004-09-30 04:21:43.103661032 -0400
Daniel J Walsh 1ba26c
+++ coreutils-5.2.1/man/runuser.1	2004-10-05 09:56:25.919169327 -0400
Tim Waugh 8d758e
@@ -0,0 +1,59 @@
Tim Waugh 8d758e
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.33.
Tim Waugh 8d758e
+.TH RUNUSER "1" "September 2004" "runuser (coreutils) 5.2.1" "User Commands"
Tim Waugh 8d758e
+.SH NAME
Tim Waugh 8d758e
+runuser \- run a shell with substitute user and group IDs, similar to su, but will not prompt for password.
Tim Waugh 8d758e
+.SH SYNOPSIS
Tim Waugh 8d758e
+.B runuser
Tim Waugh 8d758e
+[\fIOPTION\fR]... [\fI-\fR] [\fIUSER \fR[\fIARG\fR]...]
Tim Waugh 8d758e
+.SH DESCRIPTION
Tim Waugh 8d758e
+.\" Add any additional description here
Tim Waugh 8d758e
+.PP
Tim Waugh 8d758e
+Change the effective user id and group id to that of USER.
Tim Waugh 8d758e
+.TP
Tim Waugh 8d758e
+-, \fB\-l\fR, \fB\-\-login\fR
Tim Waugh 8d758e
+make the shell a login shell
Tim Waugh 8d758e
+.TP
Tim Waugh 8d758e
+\fB\-c\fR, \fB\-\-commmand\fR=\fICOMMAND\fR
Tim Waugh 8d758e
+pass a single COMMAND to the shell with \fB\-c\fR
Tim Waugh 8d758e
+.TP
Tim Waugh 8d758e
+\fB\-f\fR, \fB\-\-fast\fR
Tim Waugh 8d758e
+pass \fB\-f\fR to the shell (for csh or tcsh)
Tim Waugh 8d758e
+.TP
Tim Waugh 8d758e
+\fB\-m\fR, \fB\-\-preserve\-environment\fR
Tim Waugh 8d758e
+do not reset environment variables
Tim Waugh 8d758e
+.TP
Tim Waugh 8d758e
+\fB\-p\fR
Tim Waugh 8d758e
+same as \fB\-m\fR
Tim Waugh 8d758e
+.TP
Tim Waugh 8d758e
+\fB\-s\fR, \fB\-\-shell\fR=\fISHELL\fR
Tim Waugh 8d758e
+run SHELL if /etc/shells allows it
Tim Waugh 8d758e
+.TP
Tim Waugh 8d758e
+\fB\-\-help\fR
Tim Waugh 8d758e
+display this help and exit
Tim Waugh 8d758e
+.TP
Tim Waugh 8d758e
+\fB\-\-version\fR
Tim Waugh 8d758e
+output version information and exit
Tim Waugh 8d758e
+.PP
Tim Waugh 8d758e
+A mere - implies \fB\-l\fR.   If USER not given, assume root.
Tim Waugh 8d758e
+.SH AUTHOR
Tim Waugh 8d758e
+Written by David MacKenzie, Dan Walsh.
Tim Waugh 8d758e
+.SH "REPORTING BUGS"
Tim Waugh 8d758e
+Report bugs to <bug-coreutils@gnu.org>.
Tim Waugh 8d758e
+.SH COPYRIGHT
Tim Waugh 8d758e
+Copyright \(co 2004 Free Software Foundation, Inc.
Tim Waugh 8d758e
+.br
Tim Waugh 8d758e
+This is free software; see the source for copying conditions.  There is NO
Tim Waugh 8d758e
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Tim Waugh 8d758e
+.SH "SEE ALSO"
Tim Waugh 8d758e
+Since this command is trimmed down version of su use you can use the su manual.
Tim Waugh 8d758e
+The full documentation for
Tim Waugh 8d758e
+.B su
Tim Waugh 8d758e
+is maintained as a Texinfo manual.  If the
Tim Waugh 8d758e
+.B info
Tim Waugh 8d758e
+and
Tim Waugh 8d758e
+.B su
Tim Waugh 8d758e
+programs are properly installed at your site, the command
Tim Waugh 8d758e
+.IP
Tim Waugh 8d758e
+.B info coreutils su
Tim Waugh 8d758e
+.PP
Tim Waugh 8d758e
+should give you access to the complete manual.
Daniel J Walsh 1ba26c
--- coreutils-5.2.1/man/Makefile.am.runuser	2004-01-23 10:54:23.000000000 -0500
Daniel J Walsh 1ba26c
+++ coreutils-5.2.1/man/Makefile.am	2004-10-05 09:56:25.921169102 -0400
Tim Waugh 8d758e
@@ -7,7 +7,7 @@
Tim Waugh 8d758e
   link.1 ln.1 logname.1 \
Tim Waugh 8d758e
   ls.1 md5sum.1 mkdir.1 mkfifo.1 mknod.1 mv.1 nice.1 nl.1 nohup.1 od.1 \
Tim Waugh 8d758e
   paste.1 pathchk.1 pinky.1 pr.1 printenv.1 printf.1 ptx.1 pwd.1 readlink.1 \
Tim Waugh 8d758e
-  rm.1 rmdir.1 seq.1 sha1sum.1 shred.1 sleep.1 sort.1 split.1 stat.1 stty.1 \
Tim Waugh 8d758e
+  rm.1 rmdir.1 runuser.1 seq.1 sha1sum.1 shred.1 sleep.1 sort.1 split.1 stat.1 stty.1 \
Tim Waugh 8d758e
   su.1 sum.1 sync.1 tac.1 tail.1 tee.1 test.1 touch.1 tr.1 true.1 tsort.1 \
Tim Waugh 8d758e
   tty.1 uname.1 unexpand.1 uniq.1 unlink.1 uptime.1 users.1 vdir.1 wc.1 \
Tim Waugh 8d758e
   who.1 whoami.1 yes.1
Tim Waugh 8d758e
@@ -81,6 +81,7 @@
Tim Waugh 8d758e
 readlink.1:	$(common_dep)	$(srcdir)/readlink.x	../src/readlink.c
Tim Waugh 8d758e
 rm.1:		$(common_dep)	$(srcdir)/rm.x		../src/rm.c
Tim Waugh 8d758e
 rmdir.1:	$(common_dep)	$(srcdir)/rmdir.x	../src/rmdir.c
Tim Waugh 8d758e
+runuser.1:	$(common_dep)	$(srcdir)/runuser.x	../src/runuser.c
Tim Waugh 8d758e
 seq.1:		$(common_dep)	$(srcdir)/seq.x		../src/seq.c
Tim Waugh 8d758e
 sha1sum.1:	$(common_dep)	$(srcdir)/sha1sum.x	../src/md5sum.c
Tim Waugh 8d758e
 shred.1:	$(common_dep)	$(srcdir)/shred.x	../src/shred.c
Daniel J Walsh 1ba26c
--- /dev/null	2004-09-30 04:21:43.103661032 -0400
Daniel J Walsh 1ba26c
+++ coreutils-5.2.1/man/runuser.x	2004-10-05 09:56:25.922168989 -0400
Tim Waugh 8d758e
@@ -0,0 +1,4 @@
Tim Waugh 8d758e
+[NAME]
Tim Waugh 8d758e
+runuser \- run a shell with substitute user and group IDs
Tim Waugh 8d758e
+[DESCRIPTION]
Tim Waugh 8d758e
+.\" Add any additional description here
Daniel J Walsh 1ba26c
--- coreutils-5.2.1/README.runuser	2004-01-18 02:59:41.000000000 -0500
Daniel J Walsh 1ba26c
+++ coreutils-5.2.1/README	2004-10-05 09:56:25.925168651 -0400
Tim Waugh 8d758e
@@ -11,7 +11,7 @@
Tim Waugh 8d758e
   df dir dircolors dirname du echo env expand expr factor false fmt fold
Tim Waugh 8d758e
   ginstall groups head hostid hostname id join kill link ln logname ls
Tim Waugh 8d758e
   md5sum mkdir mkfifo mknod mv nice nl nohup od paste pathchk pinky pr
Tim Waugh 8d758e
-  printenv printf ptx pwd readlink rm rmdir seq sha1sum shred sleep sort
Tim Waugh 8d758e
+  printenv printf ptx pwd readlink rm rmdir runuser seq sha1sum shred sleep sort
Tim Waugh 8d758e
   split stat stty su sum sync tac tail tee test touch tr true tsort tty
Tim Waugh 8d758e
   uname unexpand uniq unlink uptime users vdir wc who whoami yes
Tim Waugh 8d758e
 
Daniel J Walsh 1ba26c
--- coreutils-5.2.1/tests/help-version.runuser	2004-02-17 11:04:23.000000000 -0500
Daniel J Walsh 1ba26c
+++ coreutils-5.2.1/tests/help-version	2004-10-05 09:56:25.924168764 -0400
Daniel J Walsh 1ba26c
@@ -130,6 +130,7 @@
Daniel J Walsh 1ba26c
 seq_args=10
Daniel J Walsh 1ba26c
 sleep_args=0
Daniel J Walsh 1ba26c
 su_args=--version
Daniel J Walsh 1ba26c
+runuser_args=--version
Daniel J Walsh 1ba26c
 test_args=foo
Daniel J Walsh 1ba26c
 
Daniel J Walsh 1ba26c
 # This is necessary in the unusual event that there is
Daniel J Walsh 1ba26c
--- coreutils-5.2.1/src/su.c.runuser	2004-10-05 09:56:25.680196251 -0400
Daniel J Walsh 1ba26c
+++ coreutils-5.2.1/src/su.c	2004-10-05 09:56:25.915169778 -0400
Daniel J Walsh 1ba26c
@@ -171,6 +171,10 @@
Daniel J Walsh 1ba26c
 #ifndef USE_PAM
Daniel J Walsh 1ba26c
 char *crypt ();
Daniel J Walsh 1ba26c
 #endif
Daniel J Walsh 1ba26c
+#ifndef CHECKPASSWD
Daniel J Walsh 1ba26c
+#define CHECKPASSWD 1
Daniel J Walsh 1ba26c
+#endif
Daniel J Walsh 1ba26c
+
Daniel J Walsh 1ba26c
 char *getpass ();
Daniel J Walsh 1ba26c
 char *getusershell ();
Daniel J Walsh 1ba26c
 void endusershell ();
Daniel J Walsh 1ba26c
@@ -740,7 +744,7 @@
Daniel J Walsh 1ba26c
   pw->pw_dir = xstrdup (pw->pw_dir);
Daniel J Walsh 1ba26c
   pw->pw_shell = xstrdup (pw->pw_shell);
Daniel J Walsh 1ba26c
 
Daniel J Walsh 1ba26c
-  if (!correct_password (pw))
Daniel J Walsh 1ba26c
+  if (CHECKPASSWD && !correct_password (pw))
Daniel J Walsh 1ba26c
     {
Daniel J Walsh 1ba26c
 #ifdef SYSLOG_FAILURE
Daniel J Walsh 1ba26c
       log_su (pw, 0);
Daniel J Walsh 1ba26c
--- coreutils-5.2.1/src/Makefile.am.runuser	2004-10-05 09:56:25.677196589 -0400
Daniel J Walsh 1ba26c
+++ coreutils-5.2.1/src/Makefile.am	2004-10-05 09:56:25.916169665 -0400
Daniel J Walsh 1ba26c
@@ -1,6 +1,6 @@
Daniel J Walsh 1ba26c
 ## Process this file with automake to produce Makefile.in -*-Makefile-*-
Daniel J Walsh 1ba26c
 
Daniel J Walsh 1ba26c
-EXTRA_PROGRAMS = chroot df hostid nice pinky stty su uname uptime users who
Daniel J Walsh 1ba26c
+EXTRA_PROGRAMS = chroot df hostid nice pinky stty su runuser uname uptime users who
Daniel J Walsh 1ba26c
 
Daniel J Walsh 1ba26c
 bin_SCRIPTS = groups
Daniel J Walsh 1ba26c
 bin_PROGRAMS = [ chgrp chown chmod cp dd dircolors du \
Daniel J Walsh 1ba26c
@@ -67,6 +67,7 @@
Daniel J Walsh 1ba26c
 uptime_LDADD = $(LDADD) $(GETLOADAVG_LIBS)
Daniel J Walsh 1ba26c
 
Daniel J Walsh 1ba26c
 su_LDADD = $(LDADD) $(LIB_CRYPT) @LIB_PAM@
Daniel J Walsh 1ba26c
+runuser_LDADD = $(LDADD) $(LIB_CRYPT) 
Daniel J Walsh 1ba26c
 
Daniel J Walsh 1ba26c
 $(PROGRAMS): ../lib/libfetish.a
Daniel J Walsh 1ba26c
 
Daniel J Walsh 1ba26c
@@ -84,7 +85,7 @@
Daniel J Walsh 1ba26c
 	chmod +x $@-t
Daniel J Walsh 1ba26c
 	mv $@-t $@
Daniel J Walsh 1ba26c
 
Daniel J Walsh 1ba26c
-all-local: su$(EXEEXT)
Daniel J Walsh 1ba26c
+all-local: su$(EXEEXT) runuser
Daniel J Walsh 1ba26c
 
Daniel J Walsh 1ba26c
 installed_su = $(DESTDIR)$(bindir)/`echo su|sed '$(transform)'`
Daniel J Walsh 1ba26c
 
Daniel J Walsh 1ba26c
@@ -100,7 +101,7 @@
Daniel J Walsh 1ba26c
   chmod $(setuid_root_mode) $(installed_su)
Daniel J Walsh 1ba26c
 
Daniel J Walsh 1ba26c
 install-root: su$(EXEEXT)
Daniel J Walsh 1ba26c
-	@$(INSTALL_SU)
Daniel J Walsh 1ba26c
+	@$(INSTALL_SU)	
Daniel J Walsh 1ba26c
 
Daniel J Walsh 1ba26c
 install-exec-local: su$(EXEEXT)
Daniel J Walsh 1ba26c
 	@TMPFILE=$(DESTDIR)$(bindir)/.su-$$$$; \
Daniel J Walsh 1ba26c
--- /dev/null	2004-09-30 04:21:43.103661032 -0400
Daniel J Walsh 1ba26c
+++ coreutils-5.2.1/src/runuser.c	2004-10-05 10:04:28.835490381 -0400
Daniel J Walsh 1ba26c
@@ -0,0 +1,53 @@
Daniel J Walsh 1ba26c
+#define CHECKPASSWD 0
Daniel J Walsh 1ba26c
+#define pam_start my_pam_start
Daniel J Walsh 1ba26c
+#define pam_end my_pam_end
Daniel J Walsh 1ba26c
+#define pam_setcred my_pam_setcred
Daniel J Walsh 1ba26c
+#define pam_open_session my_pam_open_session
Daniel J Walsh 1ba26c
+#define pam_close_session my_pam_close_session
Daniel J Walsh 1ba26c
+#define pam_strerror my_pam_strerror
Daniel J Walsh 1ba26c
+#define pam_getenvlist my_pam_getenvlist
Daniel J Walsh 1ba26c
+#include "su.c"
Daniel J Walsh 1ba26c
+int pam_start(const char *service_name, const char *user,
Daniel J Walsh 1ba26c
+		     const struct pam_conv *pam_conversation,
Daniel J Walsh 1ba26c
+	      pam_handle_t **pamh) {
Daniel J Walsh 1ba26c
+	return PAM_SUCCESS;
Daniel J Walsh 1ba26c
+}
Daniel J Walsh 1ba26c
+int pam_end(pam_handle_t *pamh, int pam_status) {
Daniel J Walsh 1ba26c
+	return PAM_SUCCESS;
Daniel J Walsh 1ba26c
+}
Daniel J Walsh 1ba26c
+int pam_setcred(pam_handle_t *pamh, int flags){
Daniel J Walsh 1ba26c
+	return PAM_SUCCESS;
Daniel J Walsh 1ba26c
+}
Daniel J Walsh 1ba26c
+int pam_open_session(pam_handle_t *pamh, int flags){
Daniel J Walsh 1ba26c
+	return PAM_SUCCESS;
Daniel J Walsh 1ba26c
+}
Daniel J Walsh 1ba26c
+int pam_close_session(pam_handle_t *pamh, int flags){
Daniel J Walsh 1ba26c
+	return PAM_SUCCESS;
Daniel J Walsh 1ba26c
+}
Daniel J Walsh 1ba26c
+const char *pam_strerror(pam_handle_t *pamh, int err){
Daniel J Walsh 1ba26c
+	return "";
Daniel J Walsh 1ba26c
+}
Daniel J Walsh 1ba26c
+char **pam_getenvlist(pam_handle_t *pamh){
Daniel J Walsh 1ba26c
+	return NULL;
Daniel J Walsh 1ba26c
+}
Daniel J Walsh 1ba26c
+
Daniel J Walsh 1ba26c
+int misc_conv(int num_msg, const struct pam_message **msgm,
Daniel J Walsh 1ba26c
+	      struct pam_response **response, void *appdata_ptr) {
Daniel J Walsh 1ba26c
+	return PAM_SUCCESS;
Daniel J Walsh 1ba26c
+}
Daniel J Walsh 1ba26c
+
Daniel J Walsh 1ba26c
+int pam_authenticate(pam_handle_t *pamh, int flags) {
Daniel J Walsh 1ba26c
+	return PAM_SUCCESS;
Daniel J Walsh 1ba26c
+}
Daniel J Walsh 1ba26c
+
Daniel J Walsh 1ba26c
+int pam_acct_mgmt(pam_handle_t *pamh, int flags) {
Daniel J Walsh 1ba26c
+	return PAM_SUCCESS;
Daniel J Walsh 1ba26c
+}
Daniel J Walsh 1ba26c
+
Daniel J Walsh 1ba26c
+int pam_chauthtok (pam_handle_t *pamh, int flags) {
Daniel J Walsh 1ba26c
+	return PAM_SUCCESS;
Daniel J Walsh 1ba26c
+}
Daniel J Walsh 1ba26c
+
Daniel J Walsh 1ba26c
+int pam_set_item(pam_handle_t *pamh, int item_type, const void *item) {
Daniel J Walsh 1ba26c
+	return PAM_SUCCESS;
Daniel J Walsh 1ba26c
+}