CHANGES from sudo 1.2 (unofficial version)

01) sudo now works under hpux, aix, sunos, bsd43, ultrix, linux, osf and irix.

02) Files w/o the executable bit will be ignored if they are in your PATH.

03) If execv() fails, perror is called (which prints out an error based on
	errno) and sudo exits with -1.

04) Included in this shar should also be a version of getpass() derived from
	the bsd net-2 source which works on bsd, ultrix, hpux, aix, and irix
	at least.  The latter three unixes have what i consider to be a broken
	getpass() in that if /dev/tty can't be opened it doesn't just use stdin
	like bsd getpass().  This means you cannot do: rsh host "sudo command"
	and have it work if your ticket has expired.

05) The Makefile has changed significantly.  It now has defines for all
	supported architectures.

06) Changed MAXCOMMANDLENGTH from 48 bytes to MAXPATHLEN and included
	sys/param.h where appropriate.

07) Rewrote the code that expands links & paths.  It now works correctly.
	(rewrote find_path.c)

08) Added a define NEED_STRDUP so we don't conflict with the system's strdup(3)

09) Now does *not* pass LD_* environmental vars on to programs that get
	exec'd.  Also removes SHLIB_PATH for hpux and _RLD_* for dec osf.

10) Now searches current dir last if '.' or '' are in PATH.  Misses braindeath
    like './' but if that's in your path you deserve all the trojans you get.

11) Added in linux patches from drew + flex support.

12) Added insults back in from original sudo(8) (define USE_INSULTS).

13) visudo now uses EDITOR envar (from John_Rouillard@dl5000.bc.edu)

14) you can now specify a dir containing commands that a sudoer can do.
    (from John_Rouillard@dl5000.bc.edu)

15) Ported to Solaris 2.x (based on a port of sudo 1.1 done by UnixOps).

16) Took out setuid(0); setruid(uid); pairs that bracketed calls to
    update_timestamp() since they are unnecesary and setruid() is
    broken on systems without a setreuid(2) or setresuid(2) system call.
    (Ie: AIX and Solaris 2.x).

17) The bulk of sudo now runs with the caller's real uid.  Grep for
    be_root() to find the exceptions.

CHANGES from sudo 1.3

18) Added SECURE_PATH as suggested by russells@ccu1.auckland.ac.nz.

19) Reworked clean_envp() to modify environ (not envp) so we can use
    execvp() safely.

20) Now use execvp() instead of execve() so sudo /bin/kill works under
    broken solaris.  This also fixed sudo /etc/fastboot under stock
    4.3 BSD.  Basically, this means that any executable shell script that
    lacks a '#!/bin/sh' magic number will now work with sudo.  Personally
    I think that the broken scripts should be fixed rather than changing
    sudo, but vendors will be broken.  Sigh.

21) Added USE_EXECV define so you can make sudo use execv() if you
    want.  Using execvp() shouldn't be a problem since it is always
    handed a non-relative path that begins with '/' but some people
    may not trust execvp().

22) Log file lines will no longer get truncated.  Syslog entries that
    would overrun the syslog(3) line limit are continued on another entry.

23) When logging to a log file, long entries are indented to improve
    readability.

24) Whenever the umask is changed, it is changed back to what it was
    before.

25) Log file is written as mode 600 instead of 644

26) Umask that sudo runs with may now be specified.

27) There is now a "configure" script.

28) Sudo will use ultra fast crypt (ufc) if it finds it for systems w/o
    a real crypt(3) (non-US ConvexOs/Secure for instance).

29) _BSD_COMPAT is now defined for Irix.

30) The global variable uid is now initialized to -2 because I'm paranoid.

31) Native Solaris 2 port from Matthew.Stier@aisg.com

32) Now use sysconf(2) instead of getdtablesize(2) if it is available
    (see change #31).  Because of the the getdtablesize() emulation for
    hpux is no longer necesary.

33) Now only do a getcwd(3) or getwd(3) once and do it as the real user.
    Sudo should no longer complain that it can't get the cwd unless
    there is a real problem.

34) Changed some malloc'd globals of fixed length to be allocated from
    the stack instead as there was no win in allocating them from the
    heap.

35) Fixed AIX STATIC_FLAGS as per the AIX faq.

36) Added -V flag to sudo and visudo (for version)

37) Now treat EACCESS like EPERM when doing stat(2) in find_path.c

38) Added prototypes for sudo functions (via __P macro)

39) configure now uses uname(1) if it exists

40) gethostbyname(3) is now only called if you define FQDN.  There's really
    no reason to not trust gethostname(2) and this way if name service is
    hosed sudo isn't...

41) added -v (validate) flag to sudo to update a timestamp w/o running
    a command

42) now use tgetpass() (getpass with a timeout)

43) find_path() now uses realpath(3)

44) wrote versions of realpath(3) and getcwd(3) for those without

45) wrote tgetpass()--a getpass() that times out via select(2)

46) sudo now uses posix signals if available

47) Finally added ConvexOS C2 security support from
    "Peter A. Nikitser, Systems Software Support, QUT" <P.NIKITSER@qut.edu.au>

48) You can now #undef MAILER if you don't run sendmail or the equivalent.

49) AFS support from adamh@austin.ibm.com

50) If you define BOTH_LOGS in sudo.h you can log both via syslog(3) *ans*
    to a log file.

51) Added ultrix /etc/auth (enhanced security) support.

52) Sudo now will work with a 4.2BSD syslog (SunOS < 4 && ultrix).
    Personally, I'd say you are better off logging to a file if
    your syslog is this ancient.

53) Changed realpath(3) to sudo_realpath() since we need to do the
    chdir(2) with the invoking uid.  sudo_realpath() should be
    faster than vendor-supplied realpath(3)'s anyway...

54) No longer create a static binary on AIX since it reportedly
    causes problem on newer versions on AIX 3.x.

55) If sudo_realpath cannot chdir() back to cwd sudo will print
    and error and exit.  Previously it would either fail silently
    or print an incorrect error message.

56) Moved code to send error mail to be after the log message.
    From rouilj@cs.umb.edu.

57) Added SUDO_USER and SUDO_UID envars.  Suggested by John P. Rouillard
   (<rouilj@cs.umb.edu).

58) Added -k and -h options and rearranged some of the code to be
    more modular and less braindamaged.  This introduces the concept
    of "run modes" to sudo.

59) Fixed visudo and flex.  visudo now calls yyrestart() if you are using
    flex instead of lex.  From bostley@cs.colorado.edu.

60) Added a "cat page" for systems w/o nroff.

61) Fixed a bug whereby only the last directory specified in a Cmnd_Alias
    was checked.  Reported by "James R. Hendrick" <hendrick@ctron.com>.

62) All .{c,lex,yacc} files now include both sys/types.h and unistd.h so
    we are sure to get the typedef of uid_t.
