Commit Graph

1666 Commits

Author SHA1 Message Date
Todd C. Miller
33516ed826 user_shell -> run_shell to avoid confusion with the user's SHELL variable. 2011-03-18 10:23:35 -04:00
Todd C. Miller
5d7889c0d7 Save the controlling tty process group before suspending in pty
mode.  Previously, we assumed that the child pgrp == child pid
(which is usually, but not always, the case).
2011-03-18 10:04:50 -04:00
Todd C. Miller
240642399b Save the controlling tty process group before suspending so we can
restore it when we resume.  Fixes job control problems on Linux
caused by the previous attemp to fix resuming a shell when I/O
logging not enabled.
2011-03-16 12:02:04 -04:00
Todd C. Miller
2041d39db7 Add support for ut_exit 2011-03-15 16:18:33 -04:00
Todd C. Miller
3506f01077 Add support for controlling whether utmp is updated and which user is
listed in the entry.
2011-03-15 15:53:49 -04:00
Todd C. Miller
07968755aa For legacy utmp, strip the /dev/ prefix before trying to determine
slot since the ttys file does not include the /dev/ prefix.
2011-03-15 15:51:44 -04:00
Todd C. Miller
8653ccc809 Redo utmp handling. If no getutent()/getutxent() is available,
assume a ttyslot-based utmp.  If getttyent() is available, use
that directly instead of ttyslot() so we don't have to do the
stdin dup2 dance.
2011-03-14 10:20:47 -04:00
Todd C. Miller
1e9def1efa Move utmp handling into utmp.c 2011-03-11 15:54:12 -05:00
Todd C. Miller
53da5e8cdf Update copyright years. 2011-03-11 15:34:35 -05:00
Todd C. Miller
cde2cb00f0 Add "user_shell" boolean as a way to indicate to the plugin that
the -s flag was given.
2011-03-11 15:02:13 -05:00
Todd C. Miller
7debf44742 Move noexec path into sudo.conf now that sudo itself handles noexec.
Currently can be configured in sudoers too but is now undocumented
and will be removed in a future release.
2011-03-10 16:12:33 -05:00
Todd C. Miller
a092d2fdcf Move noexec handling to sudo front-end where it is documented as being. 2011-03-10 15:11:49 -05:00
Todd C. Miller
c7a7d31905 Add support for disabling exec via solaris privileges.
Includes preparation for moving noexec support out of sudoers
and into front end as documented.
2011-03-10 14:24:10 -05:00
Todd C. Miller
caefd1abdc In handle_signals(), restart the read() on EINTR to make sure we keep up
with the signal pipe.  Don't return -1 on EAGAIN, it just means we have
emptied the pipe.
2011-03-09 11:28:51 -05:00
Todd C. Miller
1496bfed6c Add support for adding a utmp entry when allocating a new pty.
Requires the BSD login(3) or SYSV/POSIX getutent()/getutxent().
Currently only creates a new entry if the existing tty has
a utmp entry.
2011-03-08 15:37:40 -05:00
Todd C. Miller
e558b79e85 Move struct generic_plugin to sudo_plugin_int.h 2011-02-23 15:12:04 -05:00
Todd C. Miller
59515a4a6d add help text to sudo, visudo and sudoreplay for the -h option 2011-02-21 11:33:36 -05:00
Todd C. Miller
435e44808d add localstatedir; closes bug 471 2011-02-19 08:29:21 -05:00
Todd C. Miller
39d9feb438 The howmany macro lives in sys/sysmacros.h on SVR5 systems
Closes Bug 470
2011-02-19 08:23:46 -05:00
Todd C. Miller
a099aa7f2a SVR5 systems return non-zero for success on socketpair(),
check for -1 instead.  Closes Bug 469
2011-02-19 08:13:17 -05:00
Todd C. Miller
011ba5511f If sudo.conf contains no Plugin lines, use the default sudoers
policy and I/O plugins.
2011-02-16 12:15:46 -05:00
Todd C. Miller
2d88a09883 remove bogus XXX 2011-02-07 10:51:14 -05:00
Todd C. Miller
056cb8a5da Remove duplicate FD_SET of signal_pipe[0] 2011-02-06 16:55:21 -05:00
Todd C. Miller
5fc2f8f454 Pass SIGUSR1/SIGUSR2 through to the child. 2011-02-03 10:25:42 -05:00
Todd C. Miller
2959d5dadd Use special values SIGCONT_FG and SIGCONT_BG instead of SIGUSR1 and
SIGUSR2 to indicate whether the child should be continued in the
foreground or background.
2011-02-03 09:59:41 -05:00
Todd C. Miller
34a087acf6 Use pid_t not int and check the return value of kill() 2011-02-03 09:20:34 -05:00
Todd C. Miller
82c85571c9 Remove obsolete comment 2011-02-02 14:24:48 -05:00
Todd C. Miller
29f9e23c84 In non-pty mode before continuing the child, make it the foreground
pgrp if possible.  Fixes resuming a shell.
2011-02-02 14:19:23 -05:00
Todd C. Miller
8a64a8c798 If we get a signal other than SIGCHLD in the monitor, pass it directly
to the child.
2011-02-02 13:27:24 -05:00
Todd C. Miller
c18468d1a5 Save signal state before changing handlers and restore before
we execute the command.
2011-02-02 12:44:35 -05:00
Todd C. Miller
fc38481663 Perform command escaping for "sudo -s" and "sudo -i" after validating
sudoers so the sudoers entries don't need to have all the backslashes.
2011-01-25 09:53:57 -05:00
Todd C. Miller
ae2f7638f5 standardize on "return foo;" rather than "return(foo);" or "return (foo);" 2011-01-24 15:15:18 -05:00
Todd C. Miller
f7f8b6867e Update copyright year to 2011 2011-01-20 16:46:56 -05:00
Todd C. Miller
1defd7b456 Add regression tests for iolog_path() 2011-01-06 11:05:28 -05:00
Todd C. Miller
f8de3f6327 Add support for "make Makefile" to regenerate Makefile from Makefile.in 2011-01-06 10:44:28 -05:00
Todd C. Miller
5966b67dda Don't need iolog variables in struct command_details, they are for
the I/O log plugins to handle.
2010-12-28 10:50:45 -05:00
Todd C. Miller
c833ff02b6 Add use_pty command_info flag for policies to indicate that a
pty should be allocated even if no I/O logging is performed.
2010-12-20 16:27:46 -05:00
Todd C. Miller
c1a22ff152 Add remaining plugin convenience functions 2010-12-20 16:26:30 -05:00
Todd C. Miller
9948dae706 Change I/O log API to pass in command info to the I/O log open function.
Add iolog_file and iolog_dir parameters to command info.
This allows the policy plugin to specify the I/O log pathname.
Add convenience functions for calling plugin functions that
handle ABI backwards compatibility.
2010-12-20 16:20:11 -05:00
Todd C. Miller
4527bdd9b4 Use %u to print uid/gid, not %lu and adjust casts to match. 2010-11-30 15:21:36 -05:00
Todd C. Miller
d0d0e1b9f5 exec_setup() does not need to setuid(0), the Ubuntu issue was in
the sudoers module.
2010-11-23 07:35:27 -05:00
Todd C. Miller
d39747e6a5 In exec_setup() call setuid(0) to make certain the subsequent
uid and gid changes will succeed.  Fixes a problem on Ubuntu.
2010-11-23 07:26:21 -05:00
Todd C. Miller
d869ca1f90 Error out if we cannot change to root's uid so we catch the failure early. 2010-11-23 07:25:03 -05:00
Todd C. Miller
47323843a5 Give up on using VPATH to find sources as it is implemented inconsistenly
in different versions of make.
2010-11-09 10:27:02 -05:00
Todd C. Miller
c6965a5303 g/c unused $(GENERATED) 2010-11-09 07:41:34 -05:00
Todd C. Miller
01dcbfce70 Only chdir to cwd if it is different from the current cwd or there
is a new root (chroot).
2010-11-08 16:40:11 -05:00
Todd C. Miller
a11e4c8d72 If perform_io() fails, kill the child before exiting so it doesn't
complain about connection reset.  We can get an I/O error if, for
example, and we get EIO reading from stdin.
2010-10-15 16:24:42 -04:00
Todd C. Miller
93d2420de9 Fix complilation on systems with set_auth_parameters()
Sprinkle volatile to quiet warnings from gcc 2.8.0
2010-10-12 10:47:16 -04:00
Todd C. Miller
298d0cbe2d sudo binary depends on the libtool-generated libs 2010-10-11 17:40:23 -04:00
Todd C. Miller
86a4a5232f Use HAVE_DLOPEN instead of HAVE_DLFCN_H when determining whether to
include the local or system dlfcn.h
2010-10-11 17:39:51 -04:00