sudo 1.6.4 beta3 now available

Bob Proulx rwp at hprwp.fc.hp.com
Mon Dec 31 12:59:57 EST 2001


> The thrid beta version of sudo 1.6.4 is now available.  If there are no
> problems found I will rewrap this as a release candidate.

I have been using it briefly on HP-UX and Linux and have so far not
seen any issues.  It looks good.  Thanks for the addition of -c and -f
options to visudo.

I would like to make some suggestions concerning building sudo from
source.  Maybe not for this release since it is ready to go but
perhaps for the next release.  I don't have fully formed suggestions.
But I decided to start the discussion regardless since my thoughts
would probably never be fully formed.  :-)

I always build as a non-root user, then I always install into a
staging area with 'make prefix=/tmp/tmppath install' to create an
image, and then I package that image into a distributable package.
Unfortunately the Makefile.in includes commands to set the uid/gid
and mode as part of the installation and fails when run as non-root.
Which means I always have to modify the Makefile.in prior to configure
time to remove those commands when I build a new version of sudo.  (I
will include the differences at the end of this message for reference.
It is NOT suitable as a general patch.  I just want to make the
discussion concrete.)

It would be much nicer if there were different targets for installing
the files and then setting the uid/gid as a separate target.  This way
staging area images could be created much more easily.  Perhaps
something like:

  install: install-files install-sudoers install-ownerships

  install-files: install-dirs install-binaries install-man

This way the default behavior is maintained but a new target
'install-files' is available for people who are packaging the files in
a staging area.  The ownerships and the /etc/sudoers file will be set
by other means when packaging.  A new target 'install-ownerships'
would perform the actual chown commands by default when using
'install' but can be avoided by using 'install-files'.

Also part of this is that if you actually try to install for the very
first time into a staging area the install-sudoers target wants to see
/etc/sudoers there and is not happy unless one exists.  This creates a
bootstrapping issue.  Therefore it also needs to be a separate target.

I am not an automake expert but picking target names that are
compatible would be good for a future conversion to automake.  I took
a swag at 'install-files' but I am not sure that is the best name.  I
always strip distributed binaries and the automake target for that is
'install-strip' which leaves me wondering about 'install-files-strip'
or some such.  But then life starts getting way to complicated.

Supporting 'make DESTDIR=/tmp/path install' would be a plus.  Since I
package up a lot of things I always have to check different utilities,
does it support DESTDIR to redirect image builds or not?

I would like the ability to change the man page section at configure
time.  Currently a large case statement sets the man page section to
1m for a variety of platforms including hpux.  However I personally
like to use section 8 for compatibility reasons.  But there is no
method to override the script selection at this time.  Therefore I
usually have to munge the configure script to override the case
statement selected value.  It would be nicer if I could select an
override somehow.

Using autoconf-2.52 which has better support for hpux would improve
the configure script.  Your configure time case statement could be
shortened considerably for the hpux cases.  But I am not sure how
involved it would be for you to upgrade.  It is working suitably fine
as is with the older autoconf.

Bob


diff -ru ../sudo-1.6.4b3.original/Makefile.in ./Makefile.in
--- ../sudo-1.6.4b3.original/Makefile.in	Sun Dec 30 11:58:34 2001
+++ ./Makefile.in	Sun Dec 30 17:14:48 2001
@@ -285,14 +285,14 @@
 
 sudoers.cat: sudoers.man
 
-install: install-dirs install-binaries install-sudoers install-man
+install: install-dirs install-binaries install-man
 
 install-dirs:
 	$(SHELL) $(srcdir)/mkinstalldirs $(sudodir) $(visudodir) $(sudoersdir) $(mandirsu) $(mandirform)
 
 install-binaries: $(PROGS)
-	$(INSTALL) -o $(install_uid) -g $(install_gid) -m 4111 -s sudo $(sudodir)/sudo
-	$(INSTALL) -o $(install_uid) -g $(install_gid) -m 0111 -s visudo $(visudodir)/visudo
+	$(INSTALL) -s sudo $(sudodir)/sudo
+	$(INSTALL) -s visudo $(visudodir)/visudo
 
 install-sudoers:
 	@if [ -f $(sudoersdir)/sudoers ]; then \
@@ -301,14 +301,14 @@
 	    chgrp $(sudoers_gid) $(sudoersdir)/sudoers; \
 	    chmod $(sudoers_mode) $(sudoersdir)/sudoers; \
 	else \
-	    $(INSTALL) -o $(sudoers_uid) -g $(sudoers_gid) -m $(sudoers_mode) \
+	    $(INSTALL) \
 		$(srcdir)/sudoers $(sudoersdir)/sudoers; \
 	fi
 
 install-man:
-	$(INSTALL) -o $(install_uid) -g $(install_gid) -m 0444 @mansrcdir@/sudo.$(mantype) $(mandirsu)/sudo.$(mansectsu)
-	$(INSTALL) -o $(install_uid) -g $(install_gid) -m 0444 @mansrcdir@/visudo.$(mantype) $(mandirsu)/visudo.$(mansectsu)
-	$(INSTALL) -o $(install_uid) -g $(install_gid) -m 0444 @mansrcdir@/sudoers.$(mantype) $(mandirform)/sudoers.$(mansectform)
+	$(INSTALL) @mansrcdir@/sudo.$(mantype) $(mandirsu)/sudo.$(mansectsu)
+	$(INSTALL) @mansrcdir@/visudo.$(mantype) $(mandirsu)/visudo.$(mansectsu)
+	$(INSTALL) @mansrcdir@/sudoers.$(mantype) $(mandirform)/sudoers.$(mansectform)
 @MAN_POSTINSTALL@
 
 check:






More information about the sudo-workers mailing list