rewrote for sudo 1.3.6
This commit is contained in:
270
INSTALL
270
INSTALL
@@ -1,109 +1,207 @@
|
|||||||
INSTALL NOTES
|
Installation instructions for CU sudo 1.3.6
|
||||||
|
===========================================
|
||||||
|
|
||||||
0) Run the configure script, ie: "./configure". See the SUPPORTED file
|
Sudo uses a `configure' script to probe the capabilities and type
|
||||||
for a list of OS's sudo is known to work on. Configure will generate
|
of the system in question. Please read this document fully before
|
||||||
config.h, pathnames.h, Makefile and visudoers/Makefile. You shouldn't
|
configuring and building sudo.
|
||||||
need to hand-edit the Makefiles but if you don't like configure's choice
|
|
||||||
of C compiler, yacc or lex programs you may want to. You can also
|
|
||||||
use the --prefix flag to configure to install sudo/visudo in a place
|
|
||||||
other than /usr/local (ie: --prefix=/opt).
|
|
||||||
|
|
||||||
BEWARE: configure caches values in config.cache. This will cause
|
Simple sudo installation
|
||||||
problems if you are building for different architectures. You
|
========================
|
||||||
*must* do a "make realclean" to remove the configure-generated
|
|
||||||
files betweem builds in this case. Basically, you should do a
|
|
||||||
"make realclean" before you run configure each time.
|
|
||||||
|
|
||||||
NOTE: if you use shadow passwords or C2 security you need to use the
|
For most systems and configurations it is possible simply to:
|
||||||
--with-C2 flag to configure. Currently this only works for SunOS 4.x,
|
|
||||||
hpux 9.x, ultrix 4.x, Digital UNIX (aka DEC OSF1), Irix 5.x and
|
|
||||||
ConvexOS with C2 security. For hpux only, you can use
|
|
||||||
--with-C2 if you are expecting to migrate to C2 security later but it
|
|
||||||
makes password lookups about twice as slow.
|
|
||||||
|
|
||||||
NOTE2: if you use AFS, you need to run configure with --with-AFS
|
0) If you previously ran `configure' on a different host
|
||||||
|
you will probably want to do a `make clean' to remove
|
||||||
|
the old `config.cache' file. Otherwise, `configure'
|
||||||
|
will use the cached values which is probably not
|
||||||
|
what you want unless the two hosts are running the
|
||||||
|
same OS and are virtually identical. Alternately,
|
||||||
|
one can simply `rm config.cache'.
|
||||||
|
|
||||||
NOTE3: if you use DCE integrated login services (ie, the DCE security
|
1) Read the `OS dependent notes' section for any particular
|
||||||
daemon), then you need to run configure with --with-DCE. The DCE
|
"gotchas" relating to your operating system.
|
||||||
configuration option is presently known to work on HP-UX 10.0 and
|
|
||||||
HP-UX 9.X systems, where sudo is built with either gcc 2.7.0 or HP's
|
|
||||||
ANSI C compiler. To get the DCE version to compile on other platforms,
|
|
||||||
you will probably have to fiddle with the configure file and/or the
|
|
||||||
source code.
|
|
||||||
|
|
||||||
NOTE4: if you use kerberos version 4 you need to run configure
|
2) `cd' to the source or build directory and type `./configure'
|
||||||
with --with-kerb4. This has only been tested with the Cygnus
|
to generate a Makefile and config.h file suitable for
|
||||||
kerberos package (CNS) but should work for vanilla kerberos too.
|
building sudo. Before you actually run configure you
|
||||||
If you use kerberos version 5 you need to run configure with --with-kerb5.
|
should read the `Available configure options' section
|
||||||
This enables the same code as --with-kerb4 but also adds in the
|
to see if there are any special options you may want
|
||||||
kerb4 compatibility libraries. Kerb5 support is currently untested,
|
or need. Also of interest may be the section on
|
||||||
please let us know if it work for you.
|
`Mixing password authentication schemes'.
|
||||||
|
|
||||||
NOTE5: Solaries users beware, you need to make sure that the
|
3) Edit the configure-generated Makefile if you wish to
|
||||||
"real" (ie: non-ucb) cc is in your path (unless you use gcc).
|
change any of the default paths (alternately you could
|
||||||
Sudo is designed to compile with the standard C compiler and
|
have changed the paths via options to `configure'.
|
||||||
will not build correctly with /usr/ucb/cc.
|
|
||||||
|
|
||||||
1) Read the OPTIONS file and then edit options.h to enable/disable the
|
4) Edit `options.h' to enable any particular non-default
|
||||||
options you may or may not want. You should not have to edit
|
options you wish to use. Refer to the OPTIONS file for
|
||||||
sudo.h or config.h.
|
an explanation of each one. If you are building in
|
||||||
|
a separate build directory you may make a local copy
|
||||||
|
of options.h in that directory and edit it instead.
|
||||||
|
|
||||||
2) Type make. If configure did its job correctly there won't be any
|
5) Type `make' to compile sudo. If you are building sudo
|
||||||
problems. If this doesn't work, take a look at the file PORTING for
|
in a separate build tree (apart from the sudo source)
|
||||||
tips on what might have gone wrong. Please mail us if you have a
|
GNU make will probably be required. If `configure' did
|
||||||
|
its job properly (and you have a supported configuration)
|
||||||
|
there won't be any problems. If this doesn't work, take
|
||||||
|
a look at the files TROUBLESHOOTING and PORTING for tips
|
||||||
|
on what might have gone wrong. Please mail us if you have a
|
||||||
fix or if you are unable to come up with a fix (address at EOF).
|
fix or if you are unable to come up with a fix (address at EOF).
|
||||||
|
|
||||||
3) Do a make install (as root) to install sudo. If you get an error
|
6) Type `make install' (as root) to install sudo, visudo, the
|
||||||
about setuid(0) failing, something went wrong with the install and
|
man pages, and a skeleton sudoers file. Note that the install
|
||||||
the permissions on sudo are wrong. Sudo needs to run setuid root.
|
will not overwrite an existing sudoers file. You can also
|
||||||
If you get this message, chances are it's not running setuid root.
|
install various pieces the package via the install-binaries,
|
||||||
|
install-man, and install-sudoers make targets.
|
||||||
|
|
||||||
You can also install various pieces the package via install-binaries,
|
7) Edit the sudoers file with `visudo' as necessary for your
|
||||||
install-man, install-sudoers.
|
site. You will probably want to refer the sample.sudoers
|
||||||
|
file and sudoers man page included with the sudo package.
|
||||||
|
|
||||||
4) Customize /etc/sudoers for your site. Read the man page and take a
|
Available configure options
|
||||||
look at sample.sudoers to see how to do this.
|
===========================
|
||||||
|
|
||||||
5) You're done.
|
This section describes flags accepted by the sudo's `configure' script.
|
||||||
|
Defaults are listed in brackets after the description.
|
||||||
|
|
||||||
A few notes:
|
Configuration:
|
||||||
|
--cache-file=FILE Cache test results in FILE
|
||||||
|
|
||||||
a) To use syslog with the ultrix version you may want to grab
|
--help Print the usage/help info
|
||||||
and install pub/DEC/jtkohl-syslog-complete.tar.Z available from
|
|
||||||
gatekeeper.dec.com via anonymous ftp. If you don't I'd suggest
|
|
||||||
logging to a separate file rather than using the 4.2BSD syslog()
|
|
||||||
that comes with ultrix. The jtkohl syslog is a nice port of the
|
|
||||||
4.3 syslogd that is backwards compatible with the ultrix version.
|
|
||||||
I recommend it highly.
|
|
||||||
|
|
||||||
b) visudo will *NOT* use the editor referred to by the EDITOR or
|
--no-create Do not create output files
|
||||||
VISUAL environmental variables unless you define ENV_EDITOR in
|
|
||||||
sudo.h. I like the feature, but it can be a security hole
|
|
||||||
if you don't know about it. If you have EDITOR set to something
|
|
||||||
secure (ie: no shells or external commands) in the Makefile or
|
|
||||||
sudo.h you don't want to define ENV_EDITOR. Note that vi (the default
|
|
||||||
editor) is anything *but* secure in this respect (and no, setting the
|
|
||||||
editor to a wrapper that sets the SHELL envar to /bin/true does *not*
|
|
||||||
make vi secure--you can change your shell from within vi). If you
|
|
||||||
leave the default of vi, you really don't stand to lose anything by
|
|
||||||
defining ENV_EDITOR.
|
|
||||||
|
|
||||||
c) If you have a sense of humor you may want to define USE_INSULTS to
|
--quiet, --silent Do not print `checking...' messages
|
||||||
get the insults from the "old" sudo when you enter an incorrect
|
|
||||||
password. Beware, this feature causes some people to want to throw
|
|
||||||
their machine across the room and dash it to tiny pieces.
|
|
||||||
Sci fi fans may want to define HAL as well (see insults.h).
|
|
||||||
|
|
||||||
d) If you are *not* running sendmail or some other mailer, you should
|
Directory and file names:
|
||||||
comment out the MAILER #define in sudo.h.
|
--prefix=PREFIX Install architecture-independent files in PREFIX
|
||||||
|
This really only applies to man pages.
|
||||||
|
[/usr/local]
|
||||||
|
|
||||||
e) If you are running AIX and sudo says that it cannot find a user
|
--exec-prefix=EPREFIX Install architecture-dependent files in EPREFIX
|
||||||
that is clearly listed in the sudoers file try compiling with
|
This includes the sudo and visudo executables.
|
||||||
optimization turned off. The AIX C compiler produces incorrect
|
[same as prefix]
|
||||||
code with the -O flag on some versions of AIX. In fact, I've
|
|
||||||
run into some nasty bugs in the C compiler on an AIX 3.2.x box
|
--bindir=DIR Install `sudo' in DIR [EPREFIX/bin]
|
||||||
that just produced incorrect code, even without opitmization.
|
|
||||||
Morale of the story, use gcc if you can...
|
--sbindir=DIR Install `visudo' in DIR
|
||||||
|
[EPREFIX/etc for historical reasons]
|
||||||
|
|
||||||
|
--sysconfdir=DIR Install `sudoers' file in DIR [/etc]
|
||||||
|
|
||||||
|
--mandir=DIR Install man pages in DIR [PREFIX/man]
|
||||||
|
|
||||||
|
--srcdir=DIR Find the sources in DIR [configure dir or ..]
|
||||||
|
|
||||||
|
Special features/options:
|
||||||
|
--with-getpass Use system getpass(3) instead of sudo-supplied
|
||||||
|
tgetpass() for systems where tgetpass() fails.
|
||||||
|
|
||||||
|
--with-C2 Enable C2 security (shadow password) support
|
||||||
|
See `Shadow password and C2 support' section
|
||||||
|
for a list of supported platforms.
|
||||||
|
|
||||||
|
--with-skey Enable S/Key support.
|
||||||
|
|
||||||
|
--with-SecurID Enable SecurID support.
|
||||||
|
|
||||||
|
--with-kerb4 Enable kerberos v4 support
|
||||||
|
Tested only with the Cygnus Network Security
|
||||||
|
package (CNS).
|
||||||
|
|
||||||
|
--with-kerb5 Enable kerberos v5 support.
|
||||||
|
This enables with kerberos v4 support and
|
||||||
|
links with the standard kerberos v5 libraries
|
||||||
|
as well as the v4 compatibility libraries.
|
||||||
|
|
||||||
|
--with-AFS Enable AFS support.
|
||||||
|
Written for AFS under AIX 3.2.x but should
|
||||||
|
work for AFS on most platforms.
|
||||||
|
|
||||||
|
--with-DCE Enable DCE support.
|
||||||
|
Known to work on HP-UX 9.X and 10.0.
|
||||||
|
Other platforms may require source code
|
||||||
|
and/or `configure' changes.
|
||||||
|
|
||||||
|
--with-csops Add CSOps standard options.
|
||||||
|
|
||||||
|
Shadow password and C2 support
|
||||||
|
==============================
|
||||||
|
|
||||||
|
Shadow passwords (also included with most C2 security packages)
|
||||||
|
are supported on most major platforms for which they exist.
|
||||||
|
The `configure' script will attempt to determine if your
|
||||||
|
system uses shadow passwords, but this is really just a guess.
|
||||||
|
Therefore, it is suggested that you use the `--with-C2' option
|
||||||
|
to `configure' if you need shadow password support.
|
||||||
|
|
||||||
|
Shadow passwords are supported on the following platforms:
|
||||||
|
|
||||||
|
SunOS 4.x
|
||||||
|
Solaris 2.x
|
||||||
|
HP-UX 9.x
|
||||||
|
Ultrix 4.x
|
||||||
|
Digital UNIX 3.x
|
||||||
|
Irix 5.x
|
||||||
|
AIX 3.2.x
|
||||||
|
ConvexOS with C2 security
|
||||||
|
Linux
|
||||||
|
SCO 3.2.2
|
||||||
|
SVR4 (and variants using standard SVR4 shadow passwords)
|
||||||
|
|
||||||
|
It is possible to configure in shadow password support even
|
||||||
|
if your system does not currently use shadow passwords.
|
||||||
|
That way, if you put shadow passwords in place, your installed
|
||||||
|
sudo will already support them.
|
||||||
|
|
||||||
|
Mixing password authentication schemes
|
||||||
|
======================================
|
||||||
|
|
||||||
|
It is possible to build sudo with support for several authentication
|
||||||
|
schemes, including shadow passwords, kerberos, s/key, AFS, DCE,
|
||||||
|
and normal UN*X passwords into a single binary. User validation
|
||||||
|
will take slightly longer, of course, but it may be valuable
|
||||||
|
to have a single sudo binary that is distributed among systems
|
||||||
|
with varying authentication mechanisms.
|
||||||
|
|
||||||
|
OS dependent notes
|
||||||
|
==================
|
||||||
|
|
||||||
|
Solaris 2.x:
|
||||||
|
You need to have a C compiler in order to build sudo.
|
||||||
|
Since Solaris 2.x does not come with one by default this
|
||||||
|
means that you either need to have purchased the unbundled Sun
|
||||||
|
C compiler or have a copy of the GNU C compiler (gcc).
|
||||||
|
Sparc binaries for gcc may be gotten via the URL
|
||||||
|
ftp://prep.ai.mit.edu/pub/gnu/sparc-sun-solaris2
|
||||||
|
NOTE: sudo will not build with the sun C compiler in BSD
|
||||||
|
compatibility mode (/usr/ucb/cc). Sudo is designed
|
||||||
|
to compile with the standard C compiler (or gcc) and
|
||||||
|
will not build correctly with /usr/ucb/cc.
|
||||||
|
|
||||||
|
AIX 3.2.x:
|
||||||
|
I've had various problems with the AIX C compiler producing
|
||||||
|
incorrect code when the -O flag was used. When optimization
|
||||||
|
is not used, the problems go away. Gcc does not appear
|
||||||
|
to have this problem.
|
||||||
|
|
||||||
|
Also, the AIX 3.2.x lex will not work with sudo's parse.lex.
|
||||||
|
This should not be a problem as sudo comes shipped with
|
||||||
|
a pre-generated lex.yy.c (created by flex). If you want
|
||||||
|
to modify the lex tokenizer, make sure you grab a copy of
|
||||||
|
flex from ftp.ee.lbl.gov (also available on most GNU mirrors)
|
||||||
|
and sudo will use that instead.
|
||||||
|
|
||||||
|
Ultrix 4.x:
|
||||||
|
Ultrix still ships with the 4.2BSD syslog(3) which does not
|
||||||
|
allow things like logging different faclities to different
|
||||||
|
files, redirecting logs to a single loghost and other niceties.
|
||||||
|
You may want to just grab and install:
|
||||||
|
ftp://gatekeeper.dec.com/pub/DEC/jtkohl-syslog-complete.tar.Z
|
||||||
|
(available via anonymous ftp) which is a port if the 4.3BSD
|
||||||
|
syslog/syslogd that is backwards compatible with the Ultrix version.
|
||||||
|
I recommend it highly. If you do not do this you probably want
|
||||||
|
to set `LOGGING' to SLOG_FILE in options.h.
|
||||||
|
|
||||||
Please send changes, bugs, security holes, and gripes to:
|
Please send changes, bugs, security holes, and gripes to:
|
||||||
sudo-bugs@cs.colorado.edu
|
sudo-bugs@cs.colorado.edu
|
||||||
|
Reference in New Issue
Block a user