Todd C. Miller
8133cdfdf6
Use sys/stat.h defines instead of bare octal values.
2016-11-07 13:36:05 -07:00
Todd C. Miller
7c56179c7d
Use "double quotes" in messages instead of a combination of the
...
accent (grave) mark and apostrophe.
2016-11-02 17:10:17 -06:00
Todd C. Miller
2dbe50d1e1
Remove inaccurate XXX comment, sudo_file_parse() sends mail on parse error.
2016-10-31 16:21:50 -06:00
Todd C. Miller
271a07ff00
Make the I/O log file/dir permissions and owner configurable.
2016-10-29 12:45:55 -06:00
Todd C. Miller
ead485b96b
Fix typo that broke short host name matching when the fqdn
...
flag is enabled. Bug #757
2016-09-09 16:26:22 -06:00
Todd C. Miller
3f022419ae
Be consistent with the naming of the variable used to store the
...
function return value. Previously, some code used "rval", some
used "ret". This standardizes on "ret" and uses "rc" for temporary
return codes.
2016-09-08 16:38:08 -06:00
Todd C. Miller
b80309e6d8
In sudoers_main() avoid setting rval prematurely. Prevents a crash
...
when auditing fails after successfully authenticating. Bug #756
2016-09-05 19:44:46 -06:00
Todd C. Miller
ed18d0d5f8
Make the behavior when we cannot write to a log or audit file
...
configurable. File log failures are ignored by default for consistency
with syslog. Audit errors are ignored by default to allow the admin
to fix the issue. I/O log file errors are still fatal by default
since if I/O logging is activated it is usually to have an audit trail.
Bug #751
2016-08-17 07:22:51 -06:00
Todd C. Miller
985ab1dd3e
Cache the user's group IDs and group names separately and only
...
resolve group IDs -> names when needed. If the sudoers file doesn't
contain groups we will no longer try to resolve all the user's group
IDs to names, which can be expensive on some systems.
2016-08-13 16:27:44 -06:00
Todd C. Miller
a08ea1b14d
Set runas_pw early and adjust runaslist_matches() to deal. Since
...
we now set runas_default early there is no need to call update_defaults
with SETDEF_RUNAS after sudoers has been parsed.
2016-08-10 10:56:05 -06:00
Todd C. Miller
56ead73886
Load sudoers group plugin via an early callback.
2016-08-09 13:14:31 -06:00
Todd C. Miller
256ca993b9
Update defaults in visudo after sudoers has been edited so we pick
...
up locale changes. The init_defaults() function will now re-init
the sudoers locale.
2016-07-22 10:41:56 -06:00
Todd C. Miller
e257f2c9e3
Set the warn/fatal locale helper function in sudoers_policy_init()
...
so warning messages during sudoers loading are displayed in the
user's own locale.
2016-07-20 15:52:32 -06:00
Todd C. Miller
b5c2ca2fe5
Move sudoers locale callback function to locale.c and user it in
...
visudo and testsudoers.
2016-07-20 14:16:00 -06:00
Todd C. Miller
30f7ecca10
In cb_sudoers_locale() actually set the locale in addition to storing
...
its name. Otherwise, it won't take effect until sudoers lookup time.
2016-07-20 13:36:45 -06:00
Todd C. Miller
6daf3c5ce1
Only set early defaults once, regardless of how many times the
...
variable is set in sudoers. This avoids running an early callback
more than once. For example, we don't want to call cb_fqdn() if
sudo is compiled with FQDN set but sudoers has "Defaults !fqdn".
2016-07-19 14:58:06 -06:00
Todd C. Miller
08e369572e
In cb_fqdn() just return if the fqdn flag is set to false.
2016-07-19 14:52:33 -06:00
Todd C. Miller
d92a396da5
add debug_decl for cb_runas_default and cb_sudoers_locale
2016-07-18 12:20:46 -06:00
Todd C. Miller
36b18c6e64
Convert fqdn to a callback and add it to the list of early defaults.
2016-07-18 12:19:07 -06:00
Todd C. Miller
9b42640ef5
Change defaults callbacks to take a union sudo_defs_val * instead
...
of a char *.
2016-07-18 12:11:25 -06:00
Todd C. Miller
7bfe2e7969
Set the sudoers locale before opening the sudoers file.
...
Previously the sudoers locale was used when evaluating sudoers
but not during the inital parse. Bug #748
2016-06-30 12:40:19 -06:00
Todd C. Miller
a2e541aef8
O_NOCTTY has no effect when opening /dev/tty as the open can only
...
succeed if there is already a controlling tty.
2016-05-16 11:17:20 -06:00
Todd C. Miller
05db5aa3b8
Remove sudo_mkpwcache() and sudo_mkgrcache(). We now create the
...
caches as needed on demand. Also remove calls to sudo_freepwcache()
and sudo_freegrcache() that are immediately followed by execve(),
they are not needed.
2016-05-11 09:40:31 -06:00
Todd C. Miller
23d288563e
Eliminate use of setpwent()/endpwent() and setgrent()/endgrent().
...
Sudo never iterates over the passwd or group file.
Rename sudo_set{pw,gr}ent() -> sudo_mk{pw,gr}cache() and
use sudo_free{pw,gr}cache() instead of sudo_end{pw,gr}ent().
2016-05-11 07:06:45 -06:00
Todd C. Miller
5ee1e5bbcb
Newer versions of Ubuntu have switched from using the "admin" group
...
to the "sudo" group to align with Debian. create_admin_success_flag()
now accepts either one.
https://bugs.launchpad.net/ubuntu/+source/sudo/+bug/1387347
2016-05-06 14:30:46 -06:00
Todd C. Miller
151e03fb5b
Instead of using stat(2) to see if the admin flag file exists and
...
creating it if not, just try to create the file and treat EEXIST
as a non-error. Coverity CID 104121.
2016-05-06 14:12:08 -06:00
Todd C. Miller
64142f9da2
Avoid calling fclose(NULL) if the sudoers file is not secure and
...
restore_perms() fails. Coverity CID 104090.
2016-05-05 15:01:22 -06:00
Todd C. Miller
6717c32022
When determining whether or not "sudo -l" or "sudo -b" should prompt
...
for a password, take all sudoers sources into account. In other
words, if both file and ldap sudoers sources are in use, "sudo -v"
will now require that all entries in both sources be have NOPASSWD
(file) or !authenticate (ldap) in the entries.
2016-04-19 10:08:51 -06:00
Todd C. Miller
578be4f39c
Use SUDOERS_DEBUG_UTIL not SUDO_DEBUG_UTIL in the plugin.
2016-01-22 11:22:58 -07:00
Todd C. Miller
333faa20e2
When parsing def_editor, break out of the loop when we find the
...
first valid editor. Bug #714
2015-08-21 11:25:02 -06:00
Todd C. Miller
7ef9b5827e
Remove extraneous while() from botched do {} while() loop
...
conversion to use sudo_strsplit. Noticed by Radovan Sroka.
2015-08-18 08:34:10 -06:00
Todd C. Miller
4abc13bfca
Move comment to match moved code.
2015-08-04 16:15:11 -06:00
Todd C. Miller
0b241088b3
There's no need to conditionalize the #include <unistd.h>, we require
...
a POSIX system.
2015-07-02 09:08:28 -06:00
Todd C. Miller
d3bc17a611
Return -1, not 0 from sudoers when there is an error (as opposed to
...
a policy denial).
2015-06-25 11:12:36 -06:00
Todd C. Miller
81f94499bf
Check restore_perms() return value in all cases, pushing the
...
return value back up the call stack.
2015-06-25 11:12:36 -06:00
Todd C. Miller
4a07b472f0
Only include stddef.h where it is needed.
2015-06-20 05:34:35 -06:00
Todd C. Miller
c36415417f
Add function name to "unable to allocate memory" warnings.
2015-06-19 14:51:17 -06:00
Todd C. Miller
dc883f2454
We require ANSI C so stop using the obsolete STDC_HEADERS.
2015-06-19 14:29:27 -06:00
Todd C. Miller
4f9cabd005
Remove obsolete memory.h include.
2015-06-18 21:02:57 -06:00
Todd C. Miller
ac13264b44
Use a common function for resolviong the user's editor in sudoedit
...
and visudo. The find_path() function now returns a dynamically
allocated path instead of using a static string.
2015-06-18 09:51:36 -06:00
Todd C. Miller
07f9814450
Remove remaining SUDO_MAIN remnants.
2015-06-17 10:20:14 -06:00
Todd C. Miller
d004b02fc6
Use non-exiting allocatings in the sudoers plugin.
2015-06-17 06:49:59 -06:00
Todd C. Miller
25917e435c
We need to unlimit RLIMIT_NPROC in sudoers as well as the sudo front
...
end since set_perms() and restore_perms change the read uid and may
fail with EAGAIN on Linux kernels prior to 3.1.
2015-06-12 15:30:06 -06:00
Todd C. Miller
8eff57f070
Bring back VALIDATE_ERROR which will be used in the case of memory
...
allocation errors.
2015-06-04 20:42:42 -06:00
Todd C. Miller
9d1c408b73
Non-exiting allocators for log functions. If log_allowed() fails
...
the user may not run the command. We don't try to return early for
log_failure(), log_auth_failure() or log_denial() as we would not
run the command in that case.
2015-05-27 10:55:27 -06:00
Todd C. Miller
2bf454b74d
Use non-exiting allocators in the redblack tree and fix the fallout.
...
Also switch to non-exiting allocators in affected code blocks.
2015-05-27 09:51:54 -06:00
Todd C. Miller
8d1708434f
Add sudo_strsplit(), similar to strtok_r() but non-destructive and
...
operates on non-C strings (requires a length parameter).
2015-05-26 15:46:41 -06:00
Todd C. Miller
05a01d4c5d
Avoid using a leading underbar in defines as they are reserved in
...
ISO C.
2015-05-21 11:13:20 -06:00
Todd C. Miller
8bc70a635c
Instead of trying to make weak functions work on all platforms,
...
just use a registration function for a plugin-specific setlocale
function. The sudoers version just wraps sudoers_setlocale().
2015-05-11 14:51:32 -06:00
Todd C. Miller
caf5d45e0f
Previously, debug_return_bool was the same as debug_return_int
...
except that it logged true/false for 1/0. However, this appears
to trigger a bug in some compilers. To avoid this, debug_return_bool
now uses bool, not int. Callers that were passing it an int have
been converted to use debug_return_int instead.
2015-05-07 10:33:23 -06:00