2
0
mirror of https://github.com/sudo-project/sudo.git synced 2025-08-22 01:49:11 +00:00

Remove obsolete OS notes and move build requirements to INSTALL.

This commit is contained in:
Todd C. Miller 2013-02-10 09:45:06 -05:00
parent 987d62ec55
commit d18e050458
2 changed files with 54 additions and 166 deletions

194
INSTALL
View File

@ -7,6 +7,21 @@ more options than it did before. Please read this document fully
before configuring and building sudo. You may also wish to read the
file INSTALL.configure which explains more about the `configure' script.
System requirements
===================
To build sudo from the source distribution you need a POSIX-compliant
operating system (any modern version of BSD, Linux or Unix should
work), an ANSI/ISO C compiler that supports variadic marcos (a C99
feature) as well as the ar, make and ranlib utilities.
If you wish to modify the parser then you will need flex version
2.5.2 or later and either bison or byacc (sudo comes with a
pre-generated parser). You'll also have to run configure with the
--with-devel option or pass DEVEL=1 to make. You can get flex from
http://flex.sourceforge.net/. You can get GNU bison from
ftp://ftp.gnu.org/pub/gnu/bison/ or any GNU mirror.
Simple sudo installation
========================
@ -19,36 +34,31 @@ For most systems and configurations it is possible simply to:
"gotchas" relating to your operating system.
2) `cd' to the source or build directory and type `./configure'
to generate a Makefile and config.h file suitable for
building sudo. Before you actually run configure you
should read the `Available configure options' section
to see if there are any special options you may want
or need.
to generate a Makefile and config.h file suitable for building
sudo. Before you actually run configure you should read the
`Available configure options' section to see if there are
any special options you may want or need.
3) Edit the configure-generated Makefile if you wish to
change any of the default paths (alternatively, you could
have changed the paths via options to `configure'.
5) Type `make' to compile sudo. If you are building sudo
4) Type `make' to compile sudo. If you are building sudo
in a separate build tree (apart from the sudo source) 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
TROUBLESHOOTING file 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).
doc/TROUBLESHOOTING file 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).
6) Type `make install' (as root) to install sudo, visudo, the
5) Type `make install' (as root) to install sudo, visudo, the
man pages, and a skeleton sudoers file. Note that the install
will not overwrite an existing sudoers file. You can also
install various pieces the package via the install-binaries,
install-doc, and install-sudoers make targets.
7) Edit the sudoers file with `visudo' as necessary for your
6) Edit the sudoers file with `visudo' as necessary for your
site. You will probably want to refer the sample.sudoers
file and sudoers man page included with the sudo package.
8) If you want to use syslogd(8) to do the logging, you'll need
7) If you want to use syslogd(8) to do the logging, you'll need
to update your /etc/syslog.conf file. See the sample.syslog.conf
file included in the distribution for an example.
@ -697,92 +707,9 @@ The following options are also configurable at runtime:
binary itself. This will also disable the noexec option
as it too relies on dynamic shared object support.
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 can use
shadow passwords and include support for them if so. Shadow password
support is now compiled in by default (it doesn't hurt anything if you
don't have them configured). To disable the shadow password support,
use the --disable-shadow option to configure.
Shadow passwords are known to work on the following platforms:
SunOS 4.x
Solaris 2.x
HP-UX >= 9.x
Ultrix 4.x
Digital UNIX
IRIX >= 5.x
AIX >= 3.2.x
Linux
SCO >= 3.2.2
Pyramid DC/OSx
UnixWare
SVR4 (and variants using standard SVR4 shadow passwords)
4.4BSD based systems (including OpenBSD, NetBSD, FreeBSD, and Mac OS X)
Systems using SecureWare's C2 security.
OS dependent notes
==================
Linux:
PAM and LDAP headers are not installed by default on most Linux
systems. You will need to install the "pam-dev" package if
/usr/include/security/pam_appl.h is not present on your system.
If you wish to build with LDAP support you will also need the
openldap-devel package.
Versions of glibc 2.x previous to 2.0.7 have a broken lsearch().
You will need to either upgrade to glibc-2.0.7 or use sudo's
version of lsearch(). To use sudo's lsearch(), comment out
the "#define HAVE_LSEARCH 1" line in config.h and add lsearch.o
to the LIBOBJS line in the Makefile.
If you are using a Linux kernel older than 2.4 it is not possible
to access the sudoers file via NFS. This is due to a bug in
the Linux client-side NFS implementation that has since been
fixed. There is a workaround on the sudo ftp site, linux_nfs.patch,
if you need to NFS-mount sudoers on older Linux kernels.
Solaris:
You need to have a C compiler in order to build sudo. Since
Solaris does not come with one by default this means that you
either need to either install the Solaris Studio compiler suite,
available for free from www.oracle.com, or have a copy of the
GNU C compiler (gcc) which is can be installed via the pkg
utility on Solaris 11 and higher and is distributed on the
Solaris Companion CD for older Solaris releases. You can also
get them from various places on the net, including
http://www.sunfreeware.com/
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. You can set the
CC environment variable to the non-ucb compiler when
running `configure' if it is not the first cc in your
path. Some sites link /usr/ucb/cc to gcc; configure will
not notice this and still refuse to use /usr/ucb/cc, so
make sure gcc is also in your path if your site is setup
this way.
Also: Older versions of Solaris come with a broken syslogd.
If you have having problems with sudo logging you should
make sure you have the latest syslogd patch installed.
This is a problem for Solaris 2.4 and 2.5 at least.
Sudo NLS support may not work properly with Solaris 11 due to
how the runpath is specified in the locale-specific shared
objects. See the TROUBLESHOOTING file for a workaround.
Mac OS X:
The pseudo-tty support in the Mac OS X kernel has bugs related
to its handling of the SIGTSTP, SIGTTIN and SIGTTOU signals.
It does not restart reads and writes when those signals are
delivered. This may cause problems for some commands when I/O
logging is enabled. The issue has been reported to Apple and
is bug id #7952709.
HP-UX:
The default C compiler shipped with HP-UX is not an ANSI compiler.
You must use either the HP ANSI C compiler or gcc to build sudo.
@ -799,33 +726,30 @@ HP-UX:
sudo session required libpam_hpsec.so.1 bypass_umask bypass_last_login
Digital UNIX:
By default, sudo will use SIA (Security Integration Architecture)
to validate a user. If you want to use an alternative authentication
method that does not go through SIA, you need to use the
--disable-sia option to configure. If you use gcc to compile
you will get warnings when building interfaces.c. These are
harmless but if they really bug you, you can edit
/usr/include/net/if.h around line 123, right after the comment:
/* forward decls for C++ */
change the line:
#ifdef __cplusplus
to:
#if defined(__cplusplus) || defined(__GNUC__)
If you don't like the idea of editing the system header file
you can just make a copy in gcc's private include tree and
edit that.
Linux:
PAM and LDAP headers are not installed by default on most Linux
systems. You will need to install the "pam-dev" package if
/usr/include/security/pam_appl.h is not present on your system.
If you wish to build with LDAP support you will also need the
openldap-devel package.
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.
Mac OS X:
The pseudo-tty support in the Mac OS X kernel has bugs related
to its handling of the SIGTSTP, SIGTTIN and SIGTTOU signals.
It does not restart reads and writes when those signals are
delivered. This may cause problems for some commands when I/O
logging is enabled. The issue has been reported to Apple and
is bug id #7952709.
SCO ODT:
You'll probably need libcrypt_i.a available via anonymous ftp
from sosco.sco.com. The necessary files are /SLS/lng225b.Z
and /SLS/lng225b.ltr.Z.
Solaris:
You need to have a C compiler in order to build sudo. Since
Solaris does not come with one by default this means that you
either need to either install the Solaris Studio compiler suite,
available for free from www.oracle.com, or install the GNU C
compiler (gcc) which is can be installed via the pkg utility
on Solaris 11 and higher and is distributed on the Solaris
Companion CD for older Solaris releases. You can also download
gcc packages from http://www.opencsw.org/packages/CSWgcc4core/
SunOS 4.x:
SunOS does not ship with an ANSI C compiler. You will need to
@ -833,24 +757,4 @@ SunOS 4.x:
The /bin/sh shipped with SunOS blows up while running configure.
You can work around this by installing bash or zsh. If you
have bash or zsh in your path, configure will use it instead
automatically.
ULTRIX 4.x:
ULTRIX does not ship with an ANSI C compiler. You will need to
install an ANSI compiler such as gcc to build sudo.
The /bin/sh shipped with ULTRIX blows up while running configure.
You can work around this by installing bash or zsh. If you
have bash or zsh in your path, configure will use it instead
automatically.
ULTRIX ships with the 4.2BSD syslog(3) which does not
allow things like logging different facilities to different
files, redirecting logs to a single loghost and other niceties.
You may want to just grab and install:
ftp://www.sudo.ws/pub/sudo/misc/jtkohl-syslog-complete.tar.gz
(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 run configure with --with-logging=file
have bash or zsh in your path, configure will use it automatically.

26
README
View File

@ -29,26 +29,10 @@ the UPGRADE file in the doc directory.
For a history of sudo please see the HISTORY file in the doc directory.
You can find a list of contributors to sudo in the doc/CONTRIBUTORS file.
System requirements
===================
To build sudo from the source distribution you need a POSIX-compliant
operating system (any modern version of BSD, Linux or Unix should
work), an ANSI/ISO C compiler that supports variadic marcos (a C99
feature) and the ar, make and ranlib utilities.
If you wish to modify the parser then you will need flex version
2.5.2 or later and either bison or byacc (sudo comes with a pre-flex'd
tokenizer and pre-yacc'd grammar parser). You'll also have to
uncomment a few lines from the Makefile or run configure with the
--with-devel option. You can get flex from http://flex.sourceforge.net/.
You can get GNU bison from ftp://ftp.gnu.org/pub/gnu/bison/ or any
GNU mirror.
Building the release
====================
Please read the installation guide in the `INSTALL' file before
trying to build sudo. Pay special attention to the "OS dependent notes"
section.
Please read the installation guide in the `INSTALL' file before trying to
build sudo. Pay special attention to the "OS dependent notes" section.
Copyright
=========
@ -81,9 +65,9 @@ for the appropriate links.
Web page
========
There is a sudo web page at http://www.sudo.ws/ that contains
an overview of sudo, documentation, downloads, information about
beta versions and other useful info.
There is a sudo web page at http://www.sudo.ws/ that contains an
overview of sudo, documentation, downloads, a bug tracker, information
about beta versions and other useful info.
Bug reports
===========