1What's new in Sudo 1.9.8p2 2 3 * Fixed a potential out-of-bounds read with "sudo -i" when the 4 target user's shell is bash. This is a regression introduced 5 in sudo 1.9.8. Bug #998. 6 7 * sudo_logsrvd now only sends a log ID for first command of a session. 8 There is no need to send the log ID for each sub-command. 9 10 * Fixed a few minor memory leaks in intercept mode. 11 12 * Fixed a problem with sudo_logsrvd in relay mode if "store_first" 13 was enabled when handling sub-commands. A new zero-length journal 14 file was created for each sub-command instead of simply using 15 the existing journal file. 16 17What's new in Sudo 1.9.8p1 18 19 * Fixed support for passing a prompt (sudo -p) or a login class 20 (sudo -l) on the command line. This is a regression introduced 21 in sudo 1.9.8. Bug #993. 22 23 * Fixed a crash with "sudo ALL" rules in the LDAP and SSSD back-ends. 24 This is a regression introduced in sudo 1.9.8. Bug #994. 25 26 * Fixed a compilation error when the --enable-static-sudoers configure 27 option was specified. This is a regression introduced in sudo 28 1.9.8 caused by a symbol clash with the intercept and log server 29 protobuf functions. 30 31What's new in Sudo 1.9.8 32 33 * It is now possible to transparently intercepting sub-commands 34 executed by the original command run via sudo. Intercept support 35 is implemented using LD_PRELOAD (or the equivalent supported by 36 the system) and so has some limitations. The two main limitations 37 are that only dynamic executables are supported and only the 38 execl, execle, execlp, execv, execve, execvp, and execvpe library 39 functions are currently intercepted. Its main use case is to 40 support restricting privileged shells run via sudo. 41 42 To support this, there is a new "intercept" Defaults setting and 43 an INTERCEPT command tag that can be used in sudoers. For example: 44 45 Cmnd_Alias SHELLS=/bin/bash, /bin/sh, /bin/csh, /bin/ksh, /bin/zsh 46 Defaults!SHELLS intercept 47 48 would cause sudo to run the listed shells in intercept mode. 49 This can also be set on a per-rule basis. For example: 50 51 Cmnd_Alias SHELLS=/bin/bash, /bin/sh, /bin/csh, /bin/ksh, /bin/zsh 52 chuck ALL = INTERCEPT: SHELLS 53 54 would only apply intercept mode to user "chuck" when running one 55 of the listed shells. 56 57 In intercept mode, sudo will not prompt for a password before 58 running a sub-command and will not allow a set-user-ID or 59 set-group-ID program to be run by default. The new 60 intercept_authenticate and intercept_allow_setid sudoers settings 61 can be used to change this behavior. 62 63 * The new "log_subcmds" sudoers setting can be used to log additional 64 commands run in a privileged shell. It uses the same mechanism as 65 the intercept support described above and has the same limitations. 66 67 * The new "log_exit_status" sudoers setting can be used to log 68 the exit status commands run via sudo. This is also a corresponding 69 "log_exit" setting in the sudo_logsrvd.conf eventlog stanza. 70 71 * Support for logging sudo_logsrvd errors via syslog or to a file. 72 Previously, most sudo_logsrvd errors were only visible in the 73 debug log. 74 75 * Better diagnostics when there is a TLS certificate validation error. 76 77 * Using the "+=" or "-=" operators in a Defaults setting that takes 78 a string, not a list, now produces a warning from sudo and a 79 syntax error from inside visudo. 80 81 * Fixed a bug where the "iolog_mode" setting in sudoers and sudo_logsrvd 82 had no effect when creating I/O log parent directories if the I/O log 83 file name ended with the string "XXXXXX". 84 85 * Fixed a bug in the sudoers custom prompt code where the size 86 parameter that was passed to the strlcpy() function was incorrect. 87 No overflow was possible since the correct amount of memory was 88 already pre-allocated. 89 90 * The mksigname and mksiglist helper programs are now built with 91 the host compiler, not the target compiler, when cross-compiling. 92 Bug #989. 93 94 * Fixed compilation error when the --enable-static-sudoers configure 95 option was specified. This was due to a typo introduced in sudo 96 1.9.7. GitHub PR #113. 97 98What's new in Sudo 1.9.7p2 99 100 * When formatting JSON output, octal numbers are now stored as 101 strings, not numbers. The JSON spec does not actually support 102 octal numbers with a '0' prefix. 103 104 * Fixed a compilation issue on Solaris 9. 105 106 * Sudo now can handle the getgroups() function returning a different 107 number of groups for subsequent invocations. GitHub PR #106. 108 109 * When loading a Python plugin, python_plugin.so now verifies 110 that the module loaded matches the one we tried to load. This 111 allows sudo to display a more useful error message when trying 112 to load a plugin with a name that conflicts with a Python module 113 installed in the system location. 114 115 * Sudo no longer sets the the open files resource limit to "unlimited" 116 while it runs. This avoids a problem where sudo's closefrom() 117 emulation would need to close a very large number of descriptors 118 on systems without a way to determine which ones are actually open. 119 120 * Sudo now includes a configure check for va_copy or __va_copy and 121 only defines its own version if the configure test fails. 122 123 * Fixed a bug in sudo's utmp file handling which prevented old 124 entries from being reused. As a result, the utmp (or utmpx) 125 file was appended to unnecessarily. GitHub PR #108. 126 127 * Fixed a bug introduced in sudo 1.9.7 that prevented sudo_logsrvd 128 from accepting TLS connections when OpenSSL is used. Bug #988. 129 130What's new in Sudo 1.9.7p1 131 132 * Fixed an SELinux sudoedit bug when the edited temporary file 133 could not be opened. The sesh helper would still be run even 134 when there are no temporary files available to install. 135 136 * Fixed a compilation problem on FreeBSD. 137 138 * The sudo_noexec.so file is now built as a module on all systems 139 other than macOS. This makes it possible to use other libtool 140 implementations such as slibtool. On macOS shared libraries and 141 modules are not interchangeable and the version of libtool shipped 142 with sudo must be used. 143 144 * Fixed a few bugs in the getgrouplist() emulation on Solaris when 145 reading from the local group file. 146 147 * Fixed a bug in sudo_logsrvd that prevented periodic relay server 148 connection retries from occurring in "store_first" mode. 149 150 * Disabled the nss_search()-based getgrouplist() emulation on HP-UX 151 due to a crash when the group source is set to "compat" in 152 /etc/nsswitch.conf. This is probably due to a mismatch between 153 include/compat/nss_dbdefs.h and what HP-UX uses internally. On 154 HP-UX we now just cycle through groups the slow way using 155 getgrent(). Bug #978. 156 157What's new in Sudo 1.9.7 158 159 * The "fuzz" Makefile target now runs all the fuzzers for 8192 160 passes (can be overridden via the FUZZ_RUNS variable). This makes 161 it easier to run the fuzzers in-tree. To run a fuzzer indefinitely, 162 set FUZZ_RUNS=-1, e.g. "make FUZZ_RUNS=-1 fuzz". 163 164 * Fixed fuzzing on FreeBSD where the ld.lld linker returns an 165 error by default when a symbol is multiply-defined. 166 167 * Added support for determining local IPv6 addresses on systems 168 that lack the getifaddrs() function. This now works on AIX, 169 HP-UX and Solaris (at least). Bug #969. 170 171 * Fixed a bug introduced in sudo 1.9.6 that caused "sudo -V" to 172 report a usage error. Also, when invoked as sudoedit, sudo now 173 allows a more restricted set of options that matches the usage 174 statement and documentation. GitHub issue #95. 175 176 * Fixed a crash in sudo_sendlog when the specified certificate 177 or key does not exist or is invalid. Bug #970 178 179 * Fixed a compilation error when sudo is configured with the 180 --disable-log-client option. 181 182 * Sudo's limited support for SUCCESS=return entries in nsswitch.conf 183 is now documented. Bug #971. 184 185 * Sudo now requires autoconf 2.70 or higher to regenerate the 186 configure script. Bug #972. 187 188 * sudo_logsrvd now has a relay mode which can be used to create 189 a hierarchy of log servers. By default, when a relay server is 190 defined, messages from the client are forwarded immediately to 191 the relay. However, if the "store_first" setting is enabled, 192 the log will be stored locally until the command completes and 193 then relayed. Bug #965. 194 195 * Sudo now links with OpenSSL by default if it is available unless 196 the --disable-openssl configure option is used or both the 197 --disable-log-client and --disable-log-server configure options 198 are specified. 199 200 * Fixed configure's Python version detection when the version minor 201 number is more than a single digit, for example Python 3.10. 202 203 * The sudo Python module tests now pass for Python 3.10. 204 205 * Sudo will now avoid changing the datasize resource limit 206 as long as the existing value is at least 1GB. This works around 207 a problem on 64-bit HP-UX where it is not possible to exactly 208 restore the original datasize limit. Bug #973. 209 210 * Fixed a race condition that could result in a hang when sudo is 211 executed by a process where the SIGCHLD handler is set to SIG_IGN. 212 This fixes the bug described by GitHub PR #98. 213 214 * Fixed an out-of-bounds read in sudoedit and visudo when the 215 EDITOR, VISUAL or SUDO_EDITOR environment variables end in an 216 unescaped backslash. Also fixed the handling of quote characters 217 that are escaped by a backslash. GitHub issue #99. 218 219 * Fixed a bug that prevented the "log_server_verify" sudoers option 220 from taking effect. 221 222 * The sudo_sendlog utility has a new -s option to cause it to stop 223 sending I/O records after a user-specified elapsed time. This 224 can be used to test the I/O log restart functionality of sudo_logsrvd. 225 226 * Fixed a crash introduced in sudo 1.9.4 in sudo_logsrvd when 227 attempting to restart an interrupted I/O log transfer. 228 229 * The TLS connection timeout in the sudoers log client was previously 230 hard-coded to 10 seconds. It now uses the value of log_server_timeout. 231 232 * The configure script now outputs a summary of the user-configurable 233 options at the end, separate from output of configure script tests. 234 Bug #820. 235 236 * Corrected the description of which groups may be specified via the 237 -g option in the Runas_Spec section. Bug #975. 238 239What's new in Sudo 1.9.6p1 240 241 * Fixed a regression introduced in sudo 1.9.6 that resulted in an 242 error message instead of a usage message when sudo is run with 243 no arguments. 244 245What's new in Sudo 1.9.6 246 247 * Fixed a sudo_sendlog compilation problem with the AIX xlC compiler. 248 249 * Fixed a regression introduced in sudo 1.9.4 where the 250 --disable-root-mailer configure option had no effect. 251 252 * Added a --disable-leaks configure option that avoids some 253 memory leaks on exit that would otherwise occur. This is intended 254 to be used with development tools that measure memory leaks. It 255 is not safe to use in production at this time. 256 257 * Plugged some memory leaks identified by oss-fuzz and ASAN. 258 259 * Fixed the handling of sudoOptions for an LDAP sudoRole that 260 contains multiple sudoCommands. Previously, some of the options 261 would only be applied to the first sudoCommand. 262 263 * Fixed a potential out of bounds read in the parsing of NOTBEFORE 264 and NOTAFTER sudoers command options (and their LDAP equivalents). 265 266 * The parser used for reading I/O log JSON files is now more 267 resilient when processing invalid JSON. 268 269 * Fixed typos that prevented "make uninstall" from working. 270 GitHub issue #87. 271 272 * Fixed a regression introduced in sudo 1.9.4 where the last line 273 in a sudoers file might not have a terminating NUL character 274 added if no newline was present. 275 276 * Integrated oss-fuzz and LLVM's libFuzzer with sudo. The new 277 --enable-fuzzer configure option can be combined with the 278 --enable-sanitizer option to build sudo with fuzzing support. 279 Multiple fuzz targets are available for fuzzing different parts 280 of sudo. Fuzzers are built and tested via "make fuzz" or as part 281 of "make check" (even when sudo is not built with fuzzing support). 282 Fuzzing support currently requires the LLVM clang compiler (not gcc). 283 284 * Fixed the --enable-static-sudoers configure option. 285 GitHub issue #92. 286 287 * Fixed a potential out of bounds read sudo when is run by a user 288 with more groups than the value of "max_groups" in sudo.conf. 289 290 * Added an "admin_flag" sudoers option to make the use of the 291 ~/.sudo_as_admin_successful file configurable on systems where 292 sudo is build with the --enable-admin-flag configure option. 293 This mostly affects Ubuntu and its derivatives. GitHub issue #56. 294 295 * The "max_groups" setting in sudo.conf is now limited to 1024. 296 This setting is obsolete and should no longer be needed. 297 298 * Fixed a bug in the tilde expansion of "CHROOT=dir" and "CWD=dir" 299 sudoers command options. A path "~/foo" was expanded to 300 "/home/userfoo" instead of "/home/user/foo". This also affects 301 the runchroot and runcwd Defaults settings. 302 303 * Fixed a bug on systems without a native getdelim(3) function 304 where very long lines could cause parsing of the sudoers file 305 to end prematurely. Bug #960. 306 307 * Fixed a potential integer overflow when converting the 308 timestamp_timeout and passwd_timeout sudoers settings to a 309 timespec struct. 310 311 * The default for the "group_source" setting in sudo.conf is now 312 "dynamic" on macOS. Recent versions of macOS do not reliably 313 return all of a user's non-local groups via getgroups(2), even 314 when _DARWIN_UNLIMITED_GETGROUPS is defined. Bug #946. 315 316 * Fixed a potential use-after-free in the PAM conversation function. 317 Bug #967. 318 319 * Fixed potential redefinition of sys/stat.h macros in sudo_compat.h. 320 Bug #968. 321 322What's new in Sudo 1.9.5p2 323 324 * Fixed sudo's setprogname(3) emulation on systems that don't 325 provide it. 326 327 * Fixed a problem with the sudoers log server client where a partial 328 write to the server could result the sudo process consuming large 329 amounts of CPU time due to a cycle in the buffer queue. Bug #954. 330 331 * Added a missing dependency on libsudo_util in libsudo_eventlog. 332 Fixes a link error when building sudo statically. 333 334 * The user's KRB5CCNAME environment variable is now preserved when 335 performing PAM authentication. This fixes GSSAPI authentication 336 when the user has a non-default ccache. 337 338 * When invoked as sudoedit, the same set of command line options 339 are now accepted as for "sudo -e". The -H and -P options are 340 now rejected for sudoedit and "sudo -e" which matches the sudo 341 1.7 behavior. This is part of the fix for CVE-2021-3156. 342 343 * Fixed a potential buffer overflow when unescaping backslashes 344 in the command's arguments. Normally, sudo escapes special 345 characters when running a command via a shell (sudo -s or sudo 346 -i). However, it was also possible to run sudoedit with the -s 347 or -i flags in which case no escaping had actually been done, 348 making a buffer overflow possible. This fixes CVE-2021-3156. 349 350What's new in Sudo 1.9.5p1 351 352 * Fixed a regression introduced in sudo 1.9.5 where the editor run 353 by sudoedit was set-user-ID root unless SELinux RBAC was in use. 354 The editor is now run with the user's real and effective user-IDs. 355 356What's new in Sudo 1.9.5 357 358 * Fixed a crash introduced in 1.9.4 when running "sudo -i" as an 359 unknown user. This is related to but distinct from Bug #948. 360 361 * If the "lecture_file" setting is enabled in sudoers, it must now 362 refer to a regular file or a symbolic link to a regular file. 363 364 * Fixed a potential use-after-free bug in sudo_logsrvd when the 365 server shuts down if there are existing connections from clients 366 that are only logging events and not session I/O data. 367 368 * Fixed a buffer size mismatch when serializing the list of IP 369 addresses for configured network interfaces. This bug is not 370 actually exploitable since the allocated buffer is large enough 371 to hold the list of addresses. 372 373 * If sudo is executed with a name other than "sudo" or "sudoedit", 374 it will now fall back to "sudo" as the program name. This affects 375 warning, help and usage messages as well as the matching of Debug 376 lines in the /etc/sudo.conf file. Previously, it was possible 377 for the invoking user to manipulate the program name by setting 378 argv[0] to an arbitrary value when executing sudo. 379 380 * Sudo now checks for failure when setting the close-on-exec flag 381 on open file descriptors. This should never fail but, if it 382 were to, there is the possibility of a file descriptor leak to 383 a child process (such as the command sudo runs). 384 385 * Fixed CVE-2021-23239, a potential information leak in sudoedit 386 that could be used to test for the existence of directories not 387 normally accessible to the user in certain circumstances. When 388 creating a new file, sudoedit checks to make sure the parent 389 directory of the new file exists before running the editor. 390 However, a race condition exists if the invoking user can replace 391 (or create) the parent directory. If a symbolic link is created 392 in place of the parent directory, sudoedit will run the editor 393 as long as the target of the link exists. If the target of the 394 link does not exist, an error message will be displayed. The 395 race condition can be used to test for the existence of an 396 arbitrary directory. However, it _cannot_ be used to write to 397 an arbitrary location. 398 399 * Fixed CVE-2021-23240, a flaw in the temporary file handling of 400 sudoedit's SELinux RBAC support. On systems where SELinux is 401 enabled, a user with sudoedit permissions may be able to set the 402 owner of an arbitrary file to the user-ID of the target user. 403 On Linux kernels that support "protected symlinks", setting 404 /proc/sys/fs/protected_symlinks to 1 will prevent the bug from 405 being exploited. For more information see 406 https://www.sudo.ws/alerts/sudoedit_selinux.html. 407 408 * Added writability checks for sudoedit when SELinux RBAC is in use. 409 This makes sudoedit behavior consistent regardless of whether 410 or not SELinux RBAC is in use. Previously, the "sudoedit_checkdir" 411 setting had no effect for RBAC entries. 412 413 * A new sudoers option "selinux" can be used to disable sudo's 414 SELinux RBAC support. 415 416 * Quieted warnings from PVS Studio, clang analyzer, and cppcheck. 417 Added suppression annotations for PVS Studio false positives. 418 419What's new in Sudo 1.9.4p2 420 421 * Fixed a bug introduced in sudo 1.9.4p1 which could lead to a crash 422 if the sudoers file contains a runas user-specific Defaults entry. 423 Bug #951. 424 425What's new in Sudo 1.9.4p1 426 427 * Sudo on macOS now supports users with more than 16 groups without 428 needing to set "group_source" to "dynamic" in /etc/sudo.conf. 429 Previously, only the first 15 were used when matching group-based 430 rules in sudoers. Bug #946. 431 432 * Fixed a regression introduced in version 1.9.4 where sudo would 433 not build when configured using the --without-sendmail option. 434 Bug #947. 435 436 * Fixed a problem where if I/O logging was disabled and sudo was 437 unable to connect to sudo_logsrvd, the command would still be 438 allowed to run even when the "ignore_logfile_errors" sudoers 439 option was enabled. 440 441 * Fixed a crash introduced in version 1.9.4 when attempting to run 442 a command as a non-existent user. Bug #948. 443 444 * The installed sudo.conf file now has the default sudoers Plugin 445 lines commented out. This fixes a potential conflict when there 446 is both a system-installed version of sudo and a user-installed 447 version. GitHub issue #75. 448 449 * Fixed a regression introduced in sudo 1.9.4 where sudo would run 450 the command as a child process even when a pseudo-terminal was 451 not in use and the "pam_session" and "pam_setcred" options were 452 disabled. GitHub issue #76. 453 454 * Fixed a regression introduced in sudo 1.8.9 where the "closefrom" 455 sudoers option could not be set to a value of 3. Bug #950. 456 457What's new in Sudo 1.9.4 458 459 * The sudoers parser will now detect when an upper-case reserved 460 word is used when declaring an alias. Now instead of "syntax 461 error, unexpected CHROOT, expecting ALIAS" the message will be 462 "syntax error, reserved word CHROOT used as an alias name". 463 Bug #941. 464 465 * Better handling of sudoers files without a final newline. 466 The parser now adds a newline at end-of-file automatically which 467 removes the need for special cases in the parser. 468 469 * Fixed a regression introduced in sudo 1.9.1 in the sssd back-end 470 where an uninitialized pointer could be freed on an error path. 471 GitHub issue #67. 472 473 * The core logging code is now shared between sudo_logsrvd and 474 the sudoers plugin. 475 476 * JSON log entries sent to syslog now use "minimal" JSON which 477 skips all non-essential white space. 478 479 * The sudoers plugin can now produce JSON-formatted logs. The 480 "log_format" sudoers option can be used to select sudo or json 481 format logs. The default is sudo format logs. 482 483 * The sudoers plugin and visudo now display the column number in 484 syntax error messages in addition to the line number. Bug #841. 485 486 * If I/O logging is not enabled but "log_servers" is set, the 487 sudoers plugin will now log accept events to sudo_logsrvd. 488 Previously, the accept event was only sent when I/O logging was 489 enabled. The sudoers plugin now sends reject and alert events too. 490 491 * The sudo logsrv protocol has been extended to allow an AlertMessage 492 to contain an optional array of InfoMessage, as AcceptMessage 493 and RejectMessage already do. 494 495 * Fixed a bug in sudo_logsrvd where receipt of SIGHUP would result 496 in duplicate entries in the debug log when debugging was enabled. 497 498 * The visudo utility now supports EDITOR environment variables 499 that use single or double quotes in the command arguments. 500 Bug #942. 501 502 * The PAM session modules now run when sudo is set-user-ID root, 503 which allows a module to determine the original user-ID. 504 Bug #944. 505 506 * Fixed a regression introduced in sudo 1.8.24 in the LDAP back-end 507 where sudoNotBefore and sudoNotAfter were applied even when the 508 SUDOERS_TIMED setting was not present in ldap.conf. Bug #945. 509 510 * Sudo packages for macOS 11 now contain universal binaries that 511 support both Intel and Apple Silicon CPUs. 512 513 * For sudo_logsrvd, an empty value for the "pid_file" setting in 514 sudo_logsrvd.conf will now disable the process ID file. 515 516What's new in Sudo 1.9.3p1 517 518 * Fixed a regression introduced in sudo 1.9.3 where the configure 519 script would not detect the crypt(3) function if it was present 520 in the C library, not an additional library. 521 522 * Fixed a regression introduced in sudo 1.8.23 with shadow passwd 523 file authentication on OpenBSD. BSD authentication was not 524 affected. 525 526 * Sudo now logs when a user-specified command-line option is 527 rejected by a sudoers rule. Previously, these conditions were 528 written to the audit log, but the default sudo log file. Affected 529 command line arguments include -C (--close-from), -D (--chdir), 530 -R (--chroot), -g (--group) and -u (--user). 531 532What's new in Sudo 1.9.3 533 534 * sudoedit will now prompt the user before overwriting an existing 535 file with one that is zero-length after editing. Bug #922. 536 537 * Fixed building the Python plugin on systems with a compiler that 538 doesn't support symbol hiding. 539 540 * Sudo now uses a linker script to hide symbols even when the 541 compiler supports symbol hiding. This should make it easier to 542 detect omissions in the symbol exports file, regardless of the 543 platform. 544 545 * Fixed the libssl dependency in Debian packages for older releases 546 that use libssl1.0.0. 547 548 * Sudo and visudo now provide more detailed messages when a syntax 549 error is detected in sudoers. The offending line and token are 550 now displayed. If the parser was generated by GNU bison, 551 additional information about what token was expected is also 552 displayed. Bug #841. 553 554 * Sudoers rules must now end in either a newline or the end-of-file. 555 Previously, it was possible to have multiple rules on a single 556 line, separated by white space. The use of an end-of-line 557 terminator makes it possible to display accurate error messages. 558 559 * Sudo no longer refuses to run if a syntax error in the sudoers 560 file is encountered. The entry with the syntax error will be 561 discarded and sudo will continue to parse the file. This makes 562 recovery from a syntax error less painful on systems where sudo 563 is the primary method of superuser access. The historic behavior 564 can be restored by add "error_recovery=false" to the sudoers 565 plugin's optional arguments in sudo.conf. Bug #618. 566 567 * Fixed the sample_approval plugin's symbol exports file for systems 568 where the compiler doesn't support symbol hiding. 569 570 * Fixed a regression introduced in sudo 1.9.1 where arguments to 571 the "sudoers_policy" plugin in sudo.conf were not being applied. 572 The sudoers file is now parsed by the "sudoers_audit" plugin, 573 which is loaded implicitly when "sudoers_policy" is listed in 574 sudo.conf. Starting with sudo 1.9.3, if there are plugin arguments 575 for "sudoers_policy" but "sudoers_audit" is not listed, those 576 arguments will be applied to "sudoers_audit" instead. 577 578 * The user's resource limits are now passed to sudo plugins in 579 the user_info[] list. A plugin cannot determine the limits 580 itself because sudo changes the limits while it runs to prevent 581 resource starvation. 582 583 * It is now possible to set the working directory or change the 584 root directory on a per-command basis using the CWD and CHROOT 585 options. CWD and CHROOT are now reserved words in sudoers--they 586 can no longer be used as alias names. There are also new Defaults 587 settings, runchroot and runcwd, that can be used to set the 588 working directory or root directory on a more global basis. 589 590 * New -D (--chdir) and -R (--chroot) command line options can be 591 used to set the working directory or root directory if the sudoers 592 file allows it. This functionality is not enabled by default 593 and must be explicitly enabled in the sudoers file. 594 595 * Fixed a regression introduced in sudo 1.9.1 where the sudoers_audit 596 symbol could not be resolved when sudo is configured with the 597 --enable-static-sudoers option. Bug #936 and GitHub issue #61. 598 599What's new in Sudo 1.9.2 600 601 * Fixed package builds on RedHat Enterprise Linux 8. 602 603 * The configure script now uses pkg-config to find the openssl 604 cflags and libs where possible. 605 606 * The contents of the log.json I/O log file is now documented in 607 the sudoers manual. 608 609 * The sudoers plugin now properly exports the sudoers_audit symbol 610 on systems where the compiler lacks symbol visibility controls. 611 This caused a regression in 1.9.1 where a successful sudo command 612 was not logged due to the missing audit plugin. Bug #931. 613 614 * Fixed a regression introduced in 1.9.1 that can result in crash 615 when there is a syntax error in the sudoers file. Bug #934. 616 617What's new in Sudo 1.9.1 618 619 * Fixed an AIX-specific problem when I/O logging was enabled. 620 The terminal device was not being properly set to raw mode. 621 Bug #927. 622 623 * Corrected handling of sudo_logsrvd connections without associated 624 I/O log data. This fixes support for RejectMessage as well as 625 AcceptMessage when the expect_iobufs flag is not set. 626 627 * Added an "iolog_path" entry to the JSON-format event log produced 628 by sudo_logsrvd. Previously, it was only possible to determine 629 the I/O log file an event belonged to using sudo-format logs. 630 631 * Fixed the bundle IDs for sudo-logsrvd and sudo-python macOS packages. 632 633 * I/O log files produced by the sudoers plugin now clear the write 634 bits on the I/O log timing file when the log is complete. This 635 is consistent with how sudo_logsrvd indicates that a log is 636 complete. 637 638 * The sudoreplay utility has a new "-F" (follow) command line 639 option to allow replaying a session that is still in progress, 640 similar to "tail -f". 641 642 * The @include and @includedir directives can be used in sudoers 643 instead of #include and #includedir. In addition, include paths 644 may now have embedded white space by either using a double-quoted 645 string or escaping the space characters with a backslash. 646 647 * Fixed some Solaris 11.4 compilation errors. 648 649 * When running a command in a pty, sudo will no longer try to 650 suspend itself if the user's tty has been revoked (for instance 651 when the parent ssh daemon is killed). This fixes a bug where 652 sudo would continuously suspend the command (which would succeed), 653 then suspend itself (which would fail due to the missing tty) 654 and then resume the command. 655 656 * If sudo's event loop fails due to the tty being revoked, remove 657 the user's tty events and restart the event loop (once). This 658 fixes a problem when running "sudo reboot" in a pty on some 659 systems. When the event loop exited unexpectedly, sudo would 660 kill the command running in the pty, which in the case of "reboot", 661 could lead to the system being in a half-rebooted state. 662 663 * Fixed a regression introduced in sudo 1.8.23 in the LDAP and 664 SSSD back-ends where a missing sudoHost attribute was treated 665 as an "ALL" wildcard value. A sudoRole with no sudoHost attribute 666 is now ignored as it was prior to version 1.8.23. 667 668 * The audit plugin API has been changed slightly. The sudo front-end 669 now audits an accept event itself after all approval plugins are 670 run and the I/O logging plugins (if any) are opened. This makes 671 it possible for an audit plugin to only log a single overall 672 accept event if desired. 673 674 * The sudoers plugin can now be loaded as an audit plugin. Logging 675 of successful commands is now performed in the audit plugin's 676 accept function. As a result, commands are now only logged if 677 allowed by sudoers and all approval plugins. Commands rejected 678 by an approval plugin are now also logged by the sudoers plugin. 679 680 * Romanian translation for sudo and sudoers from translationproject.org. 681 682 * Fixed a regression introduced in sudo 1.9.0 where sudoedit did 683 not remove its temporary files after installing them. Bug #929. 684 685 * Fixed a regression introduced in sudo 1.9.0 where the iolog_file 686 setting in sudoers and sudo_logsrvd.conf caused an error if the 687 file name ended in six or more X's. 688 689What's new in Sudo 1.9.0 690 691 * Fixed a test failure in the strsig_test regress test on FreeBSD. 692 693 * The maximum length of a conversation reply has been increased 694 from 255 to 1023 characters. This allows for longer user passwords. 695 Bug #860. 696 697 * Sudo now includes a logging daemon, sudo_logsrvd, which can be 698 used to implement centralized logging of I/O logs. TLS connections 699 are supported when sudo is configured with the --enable-openssl 700 option. For more information, see the sudo_logsrvd, logsrvd.conf 701 and sudo_logsrv.proto manuals as well as the log_servers setting 702 in the sudoers manual. 703 704 The --disable-log-server and --disable-log-client configure 705 options can be used to disable building the I/O log server and/or 706 remote I/O log support in the sudoers plugin. 707 708 * The new sudo_sendlog utility can be used to test sudo_logsrvd 709 or send existing sudo I/O logs to a centralized server. 710 711 * It is now possible to write sudo plugins in Python 3 when sudo 712 is configured with the --enable-python option. See the 713 sudo_plugin_python manual for details. 714 715 Sudo 1.9.0 comes with several Python example plugins that get 716 installed sudo's examples directory. 717 718 The sudo blog article "What's new in sudo 1.9: Python" 719 (https://blog.sudo.ws/posts/2020/01/whats-new-in-sudo-1.9-python/) 720 includes a simple tutorial on writing python plugins. 721 722 * Sudo now supports an "audit" plugin type. An audit plugin 723 receives accept, reject, exit and error messages and can be used 724 to implement custom logging that is independent of the underlying 725 security policy. Multiple audit plugins may be specified in 726 the sudo.conf file. A sample audit plugin is included that 727 writes logs in JSON format. 728 729 * Sudo now supports an "approval" plugin type. An approval plugin 730 is run only after the main security policy (such as sudoers) accepts 731 a command to be run. The approval policy may perform additional 732 checks, potentially interacting with the user. Multiple approval 733 plugins may be specified in the sudo.conf file. Only if all 734 approval plugins succeed will the command be allowed. 735 736 * Sudo's -S command line option now causes the sudo conversation 737 function to write to the standard output or standard error instead 738 of the terminal device. 739 740 * Fixed a bug where if a #include or #includedir directive was the 741 last line in sudoers and there was no final newline character, it 742 was silently ignored. Bug #917. 743 744 * It is now possible to use "Cmd_Alias" instead of "Cmnd_Alias" for 745 people who find the former more natural. 746 747 * The new "pam_ruser" and "pam_rhost" sudoers settings can be used 748 to enable or disable setting the PAM remote user and/or host 749 values during PAM session setup. 750 751 * More than one SHA-2 digest may now be specified for a single 752 command. Multiple digests must be separated by a comma. 753 754 * It is now possible to specify a SHA-2 digest in conjunction with 755 the "ALL" reserved word in a command specification. This allows 756 one to give permission to run any command that matches the 757 specified digest, regardless of its path. 758 759 * Sudo and sudo_logsrvd now create an extended I/O log info file 760 in JSON format that contains additional information about the 761 command that was run, such as the host name. The sudoreplay 762 utility uses this file in preference to the legacy log file. 763 764 * The sudoreplay utility can now match on a host name in list mode. 765 The list output also now includes the host name if one is present 766 in the log file. 767 768 * For "sudo -i", if the target user's home directory does not 769 exist, sudo will now warn about the problem but run the command 770 in the current working directory. Previously, this was a fatal 771 error. Debian bug #598519. 772 773 * The command line arguments in the SUDO_COMMAND environment 774 variable are now truncated at 4096 characters. This avoids an 775 "Argument list too long" error when executing a command with a 776 large number of arguments. Bug #923 (Debian bug #596631). 777 778 * Sudo now properly ends the PAM transaction when the user 779 authenticates successfully but sudoers denies the command. 780 Debian bug #669687. 781 782 * The sudoers grammar in the manual now indicates that "sudoedit" 783 requires one or more arguments. Debian bug #571621. 784 785 * When copying the edited files to the original path, sudoedit now 786 allocates any additional space needed before writing. Previously, 787 it could truncate the destination file if the file system was 788 full. Bug #922. 789 790 * Fixed an issue where PAM session modules could be called with 791 the wrong user name when multiple users in the passwd database 792 share the the same user-ID. Debian bug #734752. 793 794 * Sudo command line options that take a value may only be specified 795 once. This is to help guard against problems caused by poorly 796 written scripts that invoke sudo with user-controlled input. 797 Bug #924. 798 799What's new in Sudo 1.8.31p1 800 801 * Sudo once again ignores a failure to restore the RLIMIT_CORE 802 resource limit, as it did prior to version 1.8.29. Linux 803 containers don't allow RLIMIT_CORE to be set back to RLIM_INFINITY 804 if we set the limit to zero, even for root, which resulted in a 805 warning from sudo. 806 807What's new in Sudo 1.8.31 808 809 * Fixed CVE-2019-18634, a buffer overflow when the "pwfeedback" 810 sudoers option is enabled on systems with uni-directional pipes. 811 812 * The "sudoedit_checkdir" option now treats a user-owned directory 813 as writable, even if it does not have the write bit set at the 814 time of check. Symbolic links will no longer be followed by 815 sudoedit in any user-owned directory. Bug #912 816 817 * Fixed sudoedit on macOS 10.15 and above where the root file system 818 is mounted read-only. Bug #913. 819 820 * Fixed a crash introduced in sudo 1.8.30 when suspending sudo 821 at the password prompt. Bug #914. 822 823 * Fixed compilation on systems where the mmap MAP_ANON flag 824 is not available. Bug #915. 825 826What's new in Sudo 1.8.30 827 828 * Fixed a warning on macOS introduced in sudo 1.8.29 when sudo 829 attempts to set the open file limit to unlimited. Bug #904. 830 831 * Sudo now closes file descriptors before changing uids. This 832 prevents a non-root process from interfering with sudo's ability 833 to close file descriptors on systems that support the prlimit(2) 834 system call. 835 836 * Sudo now treats an attempt to run "sudo sudoedit" as simply 837 "sudoedit". If the sudoers file contains a fully-qualified path 838 to sudoedit, sudo will now treat it simply as "sudoedit" (with 839 no path). Visudo will will now treat a fully-qualified path 840 to sudoedit as an error. Bug #871. 841 842 * Fixed a bug introduced in sudo 1.8.28 where sudo would warn about 843 a missing /etc/environment file on AIX and Linux when PAM is not 844 enabled. Bug #907 845 846 * Fixed a bug on Linux introduced in sudo 1.8.29 that prevented 847 the askpass program from running due to an unlimited stack size 848 resource limit. Bug #908. 849 850 * If a group provider plugin has optional arguments, the argument list 851 passed to the plugin is now NULL terminated as per the documentation. 852 853 * The user's time stamp file is now only updated if both authentication 854 and approval phases succeed. This is consistent with the behavior 855 of sudo prior to version 1.8.23. Bug #910 856 857 * The new allow_unknown_runas_id sudoers setting can be used to 858 enable or disable the use of unknown user or group IDs. Previously, 859 sudo would always allow unknown user or group IDs if the sudoers 860 entry permitted it, including via the "ALL" alias. As of sudo 861 1.8.30, the admin must explicitly enable support for unknown IDs. 862 863 * The new runas_check_shell sudoers setting can be used to require 864 that the runas user have a shell listed in the /etc/shells file. 865 On many systems, users such as "bin", do not have a valid shell 866 and this flag can be used to prevent commands from being run as 867 those users. 868 869 * Fixed a problem restoring the SELinux tty context during reboot 870 if mctransd is killed before sudo finishes. GitHub issue #17. 871 872 * Fixed an intermittent warning on NetBSD when sudo restores the 873 initial stack size limit. 874 875What's new in Sudo 1.8.29 876 877 * The cvtsudoers command will now reject non-LDIF input when converting 878 from LDIF format to sudoers or JSON formats. 879 880 * The new log_allowed and log_denied sudoers settings make it possible 881 to disable logging and auditing of allowed and/or denied commands. 882 883 * The umask is now handled differently on systems with PAM or login.conf. 884 If the umask is explicitly set in sudoers, that value is used regardless 885 of what PAM or login.conf may specify. However, if the umask is not 886 explicitly set in sudoers, PAM or login.conf may now override the default 887 sudoers umask. Bug #900. 888 889 * For "make install", the sudoers file is no longer checked for syntax 890 errors when DESTDIR is set. The default sudoers file includes the 891 contents of /etc/sudoers.d which may not be readable as non-root. 892 Bug #902. 893 894 * Sudo now sets most resource limits to their maximum value to avoid 895 problems caused by insufficient resources, such as an inability to 896 allocate memory or open files and pipes. 897 898 * Fixed a regression introduced in sudo 1.8.28 where sudo would refuse 899 to run if the parent process was not associated with a session. 900 This was due to sudo passing a session ID of -1 to the plugin. 901 902What's new in Sudo 1.8.28p1 903 904 * The fix for Bug #869 caused "sudo -v" to prompt for a password 905 when "verifypw" is set to "all" (the default) and all of the 906 user's sudoers entries are marked with NOPASSWD. Bug #901. 907 908What's new in Sudo 1.8.28 909 910 * Sudo will now only set PAM_TTY to the empty string when no 911 terminal is present on Solaris and Linux. This workaround is 912 only needed on those systems which may have PAM modules that 913 misbehave when PAM_TTY is not set. 914 915 * The mailerflags sudoers option now has a default value even if 916 sendmail support was disabled at configure time. Fixes a crash 917 when the mailerpath sudoers option is set but mailerflags is not. 918 Bug #878. 919 920 * Sudo will now filter out last login messages on HP-UX unless it 921 a shell is being run via "sudo -s" or "sudo -i". Otherwise, 922 when trusted mode is enabled, these messages will be displayed 923 for each command. 924 925 * On AIX, when the user's password has expired and PAM is not in use, 926 sudo will now allow the user to change their password. 927 Bug #883. 928 929 * Sudo has a new -B command line option that will ring the terminal 930 bell when prompting for a password. 931 932 * Sudo no longer refuses to prompt for a password when it cannot 933 determine the user's terminal as long as it can open /dev/tty. 934 This allows sudo to function on systems where /proc is unavailable, 935 such as when running in a chroot environment. 936 937 * The "env_editor" sudoers flag is now on by default. This makes 938 source builds more consistent with the packages generated by 939 sudo's mkpkg script. 940 941 * Sudo no longer ships with pre-formatted copies of the manual pages. 942 These were included for systems like IRIX that don't ship with an 943 nroff utility. There are now multiple Open Source nroff replacements 944 so this should no longer be an issue. 945 946 * Fixed a bad interaction with configure's --prefix and 947 --disable-shared options. Bug #886. 948 949 * More verbose error message when a password is required and no terminal 950 is present. Bug #828. 951 952 * Command tags, such as NOPASSWD, are honored when a user tries to run a 953 command that is allowed by sudoers but which does not actually 954 exist on the file system. Bug #888. 955 956 * Asturian translation for sudoers from translationproject.org. 957 958 * I/O log timing files now store signal suspend and resume information 959 in the form of a signal name instead of a number. 960 961 * Fixed a bug introduced in 1.8.24 that prevented sudo from honoring 962 the value of "ipa_hostname" from sssd.conf, if specified, when 963 matching the host name. 964 965 * Fixed a bug introduced in 1.8.21 that prevented the core dump 966 resource limit set in the pam_limits module from taking effect. 967 Bug #894. 968 969 * Fixed parsing of double-quoted Defaults group and netgroup bindings. 970 971 * The user ID is now used when matching sudoUser attributes in LDAP. 972 Previously, the user name, group name and group IDs were used 973 when matching but not the user ID. 974 975 * Sudo now writes PAM messages to the user's terminal, if available, 976 instead of the standard output or standard error. This prevents 977 PAM output from being intermixed with that of the command when 978 output is sent to a file or pipe. Bug #895. 979 980 * Sudoedit now honors the umask and umask_override settings in sudoers. 981 Previously, the user's umask was used as-is. 982 983 * Fixed a bug where the terminal's file context was not restored 984 when using SELinux RBAC. Bug #898. 985 986 * Fixed CVE-2019-14287, a bug where a sudo user may be able to 987 run a command as root when the Runas specification explicitly 988 disallows root access as long as the ALL keyword is listed first. 989 990What's new in Sudo 1.8.27 991 992 * On HP-UX, sudo will now update the utmps file when running a command 993 in a pseudo-tty. Previously, only the utmp and utmpx files were 994 updated. 995 996 * Nanosecond precision file time stamps are now supported in HP-UX. 997 998 * Fixes and clarifications to the sudo plugin documentation. 999 1000 * The sudo manuals no longer require extensive post-processing to 1001 hide system-specific features. Conditionals in the roff source 1002 are now used instead. This fixes corruption of the sudo manual 1003 on systems without BSD login classes. Bug #861. 1004 1005 * If an I/O logging plugin is configured but the plugin does not 1006 actually log any I/O, sudo will no longer force the command to 1007 be run in a pseudo-tty. 1008 1009 * The fix for bug #843 in sudo 1.8.24 was incomplete. If the 1010 user's password was expired or needed to be updated, but no sudo 1011 password was required, the PAM handle was freed too early, 1012 resulting in a failure when processing PAM session modules. 1013 1014 * In visudo, it is now possible to specify the path to sudoers 1015 without using the -f option. Bug #864. 1016 1017 * Fixed a bug introduced in sudo 1.8.22 where the utmp (or utmpx) 1018 file would not be updated when a command was run in a pseudo-tty. 1019 Bug #865. 1020 1021 * Sudo now sets the silent flag when opening the PAM session except 1022 when running a shell via "sudo -s" or "sudo -i". This prevents 1023 the pam_lastlog module from printing the last login information 1024 for each sudo command. Bug #867. 1025 1026 * Fixed the default AIX hard resource limit for the maximum number 1027 of files a user may have open. If no hard limit for "nofiles" 1028 is explicitly set in /etc/security/limits, the default should 1029 be "unlimited". Previously, the default hard limit was 8196. 1030 1031What's new in Sudo 1.8.26 1032 1033 * Fixed a bug in cvtsudoers when converting to JSON format when 1034 alias expansion is enabled. Bug #853. 1035 1036 * Sudo no long sets the USERNAME environment variable when running 1037 commands. This is a non-standard environment variable that was 1038 set on some older Linux systems. 1039 1040 * Sudo now treats the LOGNAME and USER environment variables (as 1041 well as the LOGIN variable on AIX) as a single unit. If one is 1042 preserved or removed from the environment using env_keep, env_check 1043 or env_delete, so is the other. 1044 1045 * Added support for OpenLDAP's TLS_REQCERT setting in ldap.conf. 1046 1047 * Sudo now logs when the command was suspended and resumed in the 1048 I/O logs. This information is used by sudoreplay to skip the 1049 time suspended when replaying the session unless the new -S flag 1050 is used. 1051 1052 * Fixed documentation problems found by the igor utility. Bug #854. 1053 1054 * Sudo now prints a warning message when there is an error or end 1055 of file while reading the password instead of exiting silently. 1056 1057 * Fixed a bug in the sudoers LDAP back-end parsing the command_timeout, 1058 role, type, privs and limitprivs sudoOptions. This also affected 1059 cvtsudoers conversion from LDIF to sudoers or JSON. 1060 1061 * Fixed a bug that prevented timeout settings in sudoers from 1062 functioning unless a timeout was also specified on the command 1063 line. 1064 1065 * Asturian translation for sudo from translationproject.org. 1066 1067 * When generating LDIF output, cvtsudoers can now be configured 1068 to pad the sudoOrder increment such that the start order is used 1069 as a prefix. Bug #856. 1070 1071 * Fixed a bug introduced in sudo 1.8.25 that prevented sudo from 1072 properly setting the user's groups on AIX. Bug #857. 1073 1074 * If the user specifies a group via sudo's -g option that matches 1075 any of the target user's groups, it is now allowed even if no 1076 groups are present in the Runas_Spec. Previously, it was only 1077 allowed if it matched the target user's primary group. 1078 1079 * The sudoers LDAP back-end now supports negated sudoRunAsUser and 1080 sudoRunAsGroup entries. 1081 1082 * Sudo now provides a proper error message when the "fqdn" sudoers 1083 option is set and it is unable to resolve the local host name. 1084 Bug #859. 1085 1086 * Portuguese translation for sudo and sudoers from translationproject.org. 1087 1088 * Sudo now includes sudoers LDAP schema for the on-line configuration 1089 supported by OpenLDAP. 1090 1091What's new in Sudo 1.8.25p1 1092 1093 * Fixed a bug introduced in sudo 1.8.25 that caused a crash on 1094 systems that have the poll() function but not the ppoll() function. 1095 Bug #851. 1096 1097What's new in Sudo 1.8.25 1098 1099 * Fixed a bug introduced in sudo 1.8.20 that broke formatting of 1100 I/O log timing file entries on systems without a C99-compatible 1101 snprintf() function. Our replacement snprintf() doesn't support 1102 floating point so we can't use the "%f" format directive. 1103 1104 * I/O log timing file entries now use a monotonic timer and include 1105 nanosecond precision. A monotonic timer that does not increment 1106 while the system is sleeping is used where available. 1107 1108 * Fixed a bug introduced in sudo 1.8.24 where sudoNotAfter in the LDAP 1109 back-end was not being properly parsed. Bug #845. 1110 1111 * When sudo runs a command in a pseudo-terminal, the follower 1112 device is now closed in the main process immediately after 1113 starting the monitor process. This removes the need for an 1114 AIX-specific workaround that was added in sudo 1.8.24. 1115 1116 * Added support for monotonic timers on HP-UX. 1117 1118 * Fixed a bug displaying timeout values the "sudo -V" output. 1119 The value displayed was 3600 times the actual value. Bug #846. 1120 1121 * Fixed a build issue on AIX 7.1 BOS levels that include memset_s() 1122 and define rsize_t in string.h. Bug #847. 1123 1124 * The testsudoers utility now supports querying an LDIF-format 1125 policy. 1126 1127 * Sudo now sets the LOGIN environment variable to the same value as 1128 LOGNAME on AIX systems. Bug #848. 1129 1130 * Fixed a regression introduced in sudo 1.8.24 where the LDAP and 1131 SSSD back-ends evaluated the rules in reverse sudoOrder. Bug #849. 1132 1133What's new in Sudo 1.8.24 1134 1135 * The LDAP and SSS back-ends now use the same rule evaluation code 1136 as the sudoers file back-end. This builds on the work in sudo 1137 1.8.23 where the formatting functions for "sudo -l" output were 1138 shared. The handling of negated commands in SSS and LDAP is 1139 unchanged. 1140 1141 * Fixed a regression introduced in 1.8.23 where "sudo -i" could 1142 not be used in conjunction with --preserve-env=VARIABLE. Bug #835. 1143 1144 * cvtsudoers can now parse base64-encoded attributes in LDIF files. 1145 1146 * Random insults are now more random. 1147 1148 * Fixed the noexec wordexp(3) test on FreeBSD. 1149 1150 * Added SUDO_CONV_PREFER_TTY flag for conversation function to 1151 tell sudo to try writing to /dev/tty first. Can be used in 1152 conjunction with SUDO_CONV_INFO_MSG and SUDO_CONV_ERROR_MSG. 1153 1154 * Sudo now supports an arbitrary number of groups per user on 1155 Solaris. Previously, only the first 64 groups were found. 1156 This should remove the need to set "max_groups" in sudo.conf. 1157 1158 * Fixed typos in the OpenLDAP sudo schema. Bugs #839 and #840. 1159 1160 * Fixed a race condition when building with parallel make. 1161 Bug #842. 1162 1163 * Fixed a duplicate free when netgroup_base in ldap.conf is set 1164 to an invalid value. 1165 1166 * Fixed a bug introduced in sudo 1.8.23 on AIX that could prevent 1167 local users and groups from being resolved properly on systems 1168 that have users stored in NIS, LDAP or AD. 1169 1170 * Added a workaround for an AIX bug exposed by a change in sudo 1171 1.8.23 that prevents the terminal mode from being restored when 1172 I/O logging is enabled. 1173 1174 * On systems using PAM, sudo now ignores the PAM_NEW_AUTHTOK_REQD 1175 and PAM_AUTHTOK_EXPIRED errors from PAM account management if 1176 authentication is disabled for the user. This fixes a regression 1177 introduced in sudo 1.8.23. Bug #843. 1178 1179 * Fixed an ambiguity in the sudoers manual in the description and 1180 definition of User, Runas, Host, and Cmnd Aliases. Bug #834. 1181 1182 * Fixed a bug that resulted in only the first window size change 1183 event being logged. 1184 1185 * Fixed a bug on HP-UX systems introduced in sudo 1.8.22 that 1186 caused sudo to prompt for a password every time when tty-based 1187 time stamp files were in use. 1188 1189 * Fixed a compilation problem on systems that define O_PATH or 1190 O_SEARCH in fnctl.h but do not define O_DIRECTORY. Bug #844. 1191 1192What's new in Sudo 1.8.23 1193 1194 * PAM account management modules and BSD auth approval modules are 1195 now run even when no password is required. 1196 1197 * For kernel-based time stamps, if no terminal is present, fall 1198 back to parent-pid style time stamps. 1199 1200 * The new cvtsudoers utility replaces both the "sudoers2ldif" script 1201 and the "visudo -x" functionality. It can read a file in either 1202 sudoers or LDIF format and produce JSON, LDIF or sudoers output. 1203 It is also possible to filter the generated output file by user, 1204 group or host name. 1205 1206 * The file, ldap and sss sudoers back-ends now share a common set 1207 of formatting functions for "sudo -l" output, which is also used 1208 by the cvtsudoers utility. 1209 1210 * The /run directory is now used in preference to /var/run if it 1211 exists. Bug #822. 1212 1213 * More accurate descriptions of the --with-rundir and --with-vardir 1214 configure options. Bug #823. 1215 1216 * The setpassent() and setgroupent() functions are now used on systems 1217 that support them to keep the passwd and group database open. 1218 Sudo performs a lot of passwd and group lookups so it can be 1219 beneficial to avoid opening and closing the files each time. 1220 1221 * The new case_insensitive_user and case_insensitive_group sudoers 1222 options can be used to control whether sudo does case-sensitive 1223 matching of users and groups in sudoers. Case insensitive 1224 matching is now the default. 1225 1226 * Fixed a bug on some systems where sudo could hang on command 1227 exit when I/O logging was enabled. Bug #826. 1228 1229 * Fixed the build-time process start time test on Linux when the 1230 test is run from within a container. Bug #829. 1231 1232 * When determining which temporary directory to use, sudoedit now 1233 checks the directory for writability before using it. Previously, 1234 sudoedit only performed an existence check. Bug #827. 1235 1236 * Sudo now includes an optional set of Monty Python-inspired insults. 1237 1238 * Fixed the execution of scripts with an associated digest (checksum) 1239 in sudoers on FreeBSD systems. FreeBSD does not have a proper 1240 /dev/fd directory mounted by default and its fexecve(2) is not 1241 fully POSIX compliant when executing scripts. Bug #831. 1242 1243 * Chinese (Taiwan) translation for sudo from translationproject.org. 1244 1245What's new in Sudo 1.8.22 1246 1247 * Commands run in the background from a script run via sudo will 1248 no longer receive SIGHUP when the parent exits and I/O logging 1249 is enabled. Bug #502 1250 1251 * A particularly offensive insult is now disabled by default. 1252 Bug #804 1253 1254 * The description of "sudo -i" now correctly documents that 1255 the "env_keep" and "env_check" sudoers options are applied to 1256 the environment. Bug #806 1257 1258 * Fixed a crash when the system's host name is not set. 1259 Bug #807 1260 1261 * The sudoers2ldif script now handles #include and #includedir 1262 directives. 1263 1264 * Fixed a bug where sudo would silently exit when the command was 1265 not allowed by sudoers and the "passwd_tries" sudoers option 1266 was set to a value less than one. 1267 1268 * Fixed a bug with the "listpw" and "verifypw" sudoers options and 1269 multiple sudoers sources. If the option is set to "all", a 1270 password should be required unless none of a user's sudoers 1271 entries from any source require authentication. 1272 1273 * Fixed a bug with the "listpw" and "verifypw" sudoers options in 1274 the LDAP and SSSD back-ends. If the option is set to "any", and 1275 the entry contained multiple rules, only the first matching rule 1276 was checked. If an entry contained more than one matching rule 1277 and the first rule required authentication but a subsequent rule 1278 did not, sudo would prompt for a password when it should not have. 1279 1280 * When running a command as the invoking user (not root), sudo 1281 would execute the command with the same group vector it was 1282 started with. Sudo now executes the command with a new group 1283 vector based on the group database which is consistent with 1284 how su(1) operates. 1285 1286 * Fixed a double free in the SSSD back-end that could occur when 1287 ipa_hostname is present in sssd.conf and is set to an unqualified 1288 host name. 1289 1290 * When I/O logging is enabled, sudo will now write to the terminal 1291 even when it is a background process. Previously, sudo would 1292 only write to the tty when it was the foreground process when 1293 I/O logging was enabled. If the TOSTOP terminal flag is set, 1294 sudo will suspend the command (and then itself) with the SIGTTOU 1295 signal. 1296 1297 * A new "authfail_message" sudoers option that overrides the 1298 default "N incorrect password attempt(s)". 1299 1300 * An empty sudoRunAsUser attribute in the LDAP and SSSD back-ends 1301 will now match the invoking user. This is more consistent with 1302 how an empty runas user in the sudoers file is treated. 1303 1304 * Documented that in check mode, visudo does not check the owner/mode 1305 on files specified with the -f flag. Bug #809. 1306 1307 * It is now an error to specify the runas user as an empty string 1308 on the command line. Previously, an empty runas user was treated 1309 the same as an unspecified runas user. Bug #817. 1310 1311 * When "timestamp_type" option is set to "tty" and a terminal is 1312 present, the time stamp record will now include the start time 1313 of the session leader. When the "timestamp_type" option is set 1314 to "ppid" or when no terminal is available, the start time of 1315 the parent process is used instead. This significantly reduces 1316 the likelihood of a time stamp record being re-used when a user 1317 logs out and back in again. Bug #818. 1318 1319 * The sudoers time stamp file format is now documented in the new 1320 sudoers_timestamp manual. 1321 1322 * The "timestamp_type" option now takes a "kernel" value on OpenBSD 1323 systems. This causes the tty-based time stamp to be stored in 1324 the kernel instead of on the file system. If no tty is present, 1325 the time stamp is considered to be invalid. 1326 1327 * Visudo will now use the SUDO_EDITOR environment variable (if 1328 present) in addition to VISUAL and EDITOR. 1329 1330What's new in Sudo 1.8.21p2 1331 1332 * Fixed a bug introduced in version 1.8.21 which prevented sudo 1333 from using the PAM-supplied prompt. Bug #799 1334 1335 * Fixed a bug introduced in version 1.8.21 which could result in 1336 sudo hanging when running commands that exit quickly. Bug #800 1337 1338 * Fixed a bug introduced in version 1.8.21 which prevented the 1339 command from being run when the password was read via an external 1340 program using the askpass interface. Bug #801 1341 1342What's new in Sudo 1.8.21p1 1343 1344 * On systems that support both PAM and SIGINFO, the main sudo 1345 process will no longer forward SIGINFO to the command if the 1346 signal was generated from the keyboard. The command will have 1347 already received SIGINFO since it is part of the same process 1348 group so there's no need for sudo to forward it. This is 1349 consistent with the handling of SIGINT, SIGQUIT and SIGTSTP. 1350 Bug #796 1351 1352 * If SUDOERS_SEARCH_FILTER in ldap.conf does not specify a value, 1353 the LDAP search expression used when looking up netgroups and 1354 non-Unix groups had a syntax error if a group plugin was not 1355 specified. 1356 1357 * "sudo -U otheruser -l" will now have an exit value of 0 even 1358 if "otheruser" has no sudo privileges. The exit value when a 1359 user attempts to lists their own privileges or when a command 1360 is specified is unchanged. 1361 1362 * Fixed a regression introduced in sudo 1.8.21 where sudoreplay 1363 playback would hang for I/O logs that contain terminal input. 1364 1365 * Sudo 1.8.18 contained an incomplete fix for the matching of 1366 entries in the LDAP and SSSD back-ends when a sudoRunAsGroup is 1367 specified but no sudoRunAsUser is present in the sudoRole. 1368 1369What's new in Sudo 1.8.21 1370 1371 * The path that sudo uses to search for terminal devices can now 1372 be configured via the new "devsearch" Path setting in sudo.conf. 1373 1374 * It is now possible to preserve bash shell functions in the 1375 environment when the "env_reset" sudoers setting is disabled by 1376 removing the "*=()*" pattern from the env_delete list. 1377 1378 * A change made in sudo 1.8.15 inadvertently caused sudoedit to 1379 send itself SIGHUP instead of exiting when the editor returns 1380 an error or the file was not modified. 1381 1382 * Sudoedit now uses an exit code of zero if the file was not 1383 actually modified. Previously, sudoedit treated a lack of 1384 modifications as an error. 1385 1386 * When running a command in a pseudo-tty (pty), sudo now copies a 1387 subset of the terminal flags to the new pty. Previously, all 1388 flags were copied, even those not appropriate for a pty. 1389 1390 * Fixed a problem with debug logging in the sudoers I/O logging 1391 plugin. 1392 1393 * Window size change events are now logged to the policy plugin. 1394 On xterm and compatible terminals, sudoreplay is now capable of 1395 resizing the terminal to match the size of the terminal the 1396 command was run on. The new -R option can be used to disable 1397 terminal resizing. 1398 1399 * Fixed a bug in visudo where a newly added file was not checked 1400 for syntax errors. Bug #791. 1401 1402 * Fixed a bug in visudo where if a syntax error in an include 1403 directory (like /etc/sudoers.d) was detected, the edited version 1404 was left as a temporary file instead of being installed. 1405 1406 * On PAM systems, sudo will now treat "username's Password:" as 1407 a standard password prompt. As a result, the SUDO_PROMPT 1408 environment variable will now override "username's Password:" 1409 as well as the more common "Password:". Previously, the 1410 "passprompt_override" Defaults setting would need to be set for 1411 SUDO_PROMPT to override a prompt of "username's Password:". 1412 1413 * A new "syslog_pid" sudoers setting has been added to include 1414 sudo's process ID along with the process name when logging via 1415 syslog. Bug #792. 1416 1417 * Fixed a bug introduced in sudo 1.8.18 where a command would 1418 not be terminated when the I/O logging plugin returned an error 1419 to the sudo front-end. 1420 1421 * A new "timestamp_type" sudoers setting has been added that replaces 1422 the "tty_tickets" option. In addition to tty and global time stamp 1423 records, it is now possible to use the parent process ID to restrict 1424 the time stamp to commands run by the same process, usually the shell. 1425 Bug #793. 1426 1427 * The --preserve-env command line option has been extended to accept 1428 a comma-separated list of environment variables to preserve. 1429 Bug #279. 1430 1431 * Friulian translation for sudo from translationproject.org. 1432 1433What's new in Sudo 1.8.20p2 1434 1435 * Fixed a bug parsing /proc/pid/stat on Linux when the process 1436 name contains newlines. This is not exploitable due to the /dev 1437 traversal changes in sudo 1.8.20p1. 1438 1439What's new in Sudo 1.8.20p1 1440 1441 * Fixed "make check" when using OpenSSL or GNU crypt. 1442 Bug #787. 1443 1444 * Fixed CVE-2017-1000367, a bug parsing /proc/pid/stat on Linux 1445 when the process name contains spaces. Since the user has control 1446 over the command name, this could potentially be used by a user 1447 with sudo access to overwrite an arbitrary file on systems with 1448 SELinux enabled. Also stop performing a breadth-first traversal 1449 of /dev when looking for the device; only a hard-coded list of 1450 directories are checked, 1451 1452What's new in Sudo 1.8.20 1453 1454 * Added support for SASL_MECH in ldap.conf. Bug #764 1455 1456 * Added support for digest matching when the command is a glob-style 1457 pattern or a directory. Previously, only explicit path matches 1458 supported digest checks. 1459 1460 * New "fdexec" Defaults option to control whether a command 1461 is executed by path or by open file descriptor. 1462 1463 * The embedded copy of zlib has been upgraded to version 1.2.11. 1464 1465 * Fixed a bug that prevented sudoers include files with a relative 1466 path starting with the letter 'i' from being opened. Bug #776. 1467 1468 * Added support for command timeouts in sudoers. The command will 1469 be terminated if the timeout expires. 1470 1471 * The SELinux role and type are now displayed in the "sudo -l" 1472 output for the LDAP and SSSD back-ends, just as they are in the 1473 sudoers back-end. 1474 1475 * A new command line option, -T, can be used to specify a command 1476 timeout as long as the user-specified timeout is not longer than 1477 the timeout specified in sudoers. This option may only be 1478 used when the "user_command_timeouts" flag is enabled in sudoers. 1479 1480 * Added NOTBEFORE and NOTAFTER command options to the sudoers 1481 back-end similar to what is already available in the LDAP back-end. 1482 1483 * Sudo can now optionally use the SHA2 functions in OpenSSL or GNU 1484 crypt instead of the SHA2 implementation bundled with sudo. 1485 1486 * Fixed a compilation error on systems without the stdbool.h header 1487 file. Bug #778. 1488 1489 * Fixed a compilation error in the standalone Kerberos V authentication 1490 module. Bug #777. 1491 1492 * Added the iolog_flush flag to sudoers which causes I/O log data 1493 to be written immediately to disk instead of being buffered. 1494 1495 * I/O log files are now created with group ID 0 by default unless 1496 the "iolog_user" or "iolog_group" options are set in sudoers. 1497 1498 * It is now possible to store I/O log files on an NFS-mounted 1499 file system where uid 0 is remapped to an unprivileged user. 1500 The "iolog_user" option must be set to a non-root user and the 1501 top-level I/O log directory must exist and be owned by that user. 1502 1503 * Added the restricted_env_file setting to sudoers which is similar 1504 to env_file but its contents are subject to the same restrictions 1505 as variables in the invoking user's environment. 1506 1507 * Fixed a use after free bug in the SSSD back-end when the fqdn 1508 sudoOption is enabled and no hostname value is present in 1509 /etc/sssd/sssd.conf. 1510 1511 * Fixed a typo that resulted in a compilation error on systems 1512 where the killpg() function is not found by configure. 1513 1514 * Fixed a compilation error with the included version of zlib 1515 when sudo was built outside the source tree. 1516 1517 * Fixed the exit value of sudo when the command is terminated by 1518 a signal other than SIGINT. This was broken in sudo 1.8.15 by 1519 the fix for Bug #722. Bug #784. 1520 1521 * Fixed a regression introduced in sudo 1.8.18 where the "lecture" 1522 option could not be used in a positive boolean context, only 1523 a negative one. 1524 1525 * Fixed an issue where sudo would consume stdin if it was not 1526 connected to a tty even if log_input is not enabled in sudoers. 1527 Bug #786. 1528 1529 * Clarify in the sudoers manual that the #includedir directive 1530 diverts control to the files in the specified directory and, 1531 when parsing of those files is complete, returns control to the 1532 original file. Bug #775. 1533 1534What's new in Sudo 1.8.19p2 1535 1536 * Fixed a crash in visudo introduced in sudo 1.8.9 when an IP address 1537 or network is used in a host-based Defaults entry. Bug #766 1538 1539 * Added a missing check for the ignore_iolog_errors flag when 1540 the sudoers plugin generates the I/O log file path name. 1541 1542 * Fixed a typo in sudo's vsyslog() replacement that resulted in 1543 garbage being logged to syslog. 1544 1545What's new in Sudo 1.8.19p1 1546 1547 * Fixed a bug introduced in sudo 1.8.19 that resulted in the wrong 1548 syslog priority and facility being used. 1549 1550What's new in Sudo 1.8.19 1551 1552 * New "syslog_maxlen" Defaults option to control the maximum size of 1553 syslog messages generated by sudo. 1554 1555 * Sudo has been run against PVS-Studio and any issues that were 1556 not false positives have been addressed. 1557 1558 * I/O log files are now created with the same group ID as the 1559 parent directory and not the invoking user's group ID. 1560 1561 * I/O log permissions and ownership are now configurable via the 1562 "iolog_mode", "iolog_user" and "iolog_group" sudoers Defaults 1563 variables. 1564 1565 * Fixed configuration of the sudoers I/O log plugin debug subsystem. 1566 Previously, I/O log information was not being written to the 1567 sudoers debug log. 1568 1569 * Fixed a bug in visudo that broke editing of files in an include 1570 dir that have a syntax error. Normally, visudo does not edit 1571 those files, but if a syntax error is detected in one, the user 1572 should get a chance to fix it. 1573 1574 * Warnings about unknown or unparsable sudoers Defaults entries now 1575 include the file and line number of the problem. 1576 1577 * Visudo will now use the file and line number information about an 1578 unknown or unparsable Defaults entry to go directly to the file 1579 with the problem. 1580 1581 * Fixed a bug in the sudoers LDAP back-end where a negated sudoHost 1582 entry would prevent other sudoHost entries following it from matching. 1583 1584 * Warnings from visudo about a cycle in an Alias entry now include the 1585 file and line number of the problem. 1586 1587 * In strict mode, visudo will now use the file and line number 1588 information about a cycle in an Alias entry to go directly to the 1589 file with the problem. 1590 1591 * The sudo_noexec.so file is now linked with -ldl on systems that 1592 require it for the wordexp() wrapper. 1593 1594 * Fixed linking of sudo_noexec.so on macOS systems where it must be 1595 a dynamic library and not a module. 1596 1597 * Sudo's "make check" now includes a test for sudo_noexec.so 1598 working. 1599 1600 * The sudo front-end now passes the user's umask to the plugin. 1601 Previously the plugin had to determine this itself. 1602 1603 * Sudoreplay can now display the stdin and ttyin streams when they 1604 are explicitly added to the filter list. 1605 1606 * Fixed a bug introduced in sudo 1.8.17 where the "all" setting 1607 for verifypw and listpw was not being honored. Bug #762. 1608 1609 * The syslog priority (syslog_goodpri and syslog_badpri) can now 1610 be negated or set to "none" to disable logging of successful or 1611 unsuccessful sudo attempts via syslog. 1612 1613What's new in Sudo 1.8.18p1 1614 1615 * When sudo_noexec.so is used, the WRDE_NOCMD flag is now added 1616 if the wordexp() function is called. This prevents commands 1617 from being run via wordexp() without disabling it entirely. 1618 1619 * On Linux systems, sudo_noexec.so now uses a seccomp filter to 1620 disable execute access if the kernel supports seccomp. This is 1621 more robust than the traditional method of using stub functions 1622 that return an error. 1623 1624What's new in Sudo 1.8.18 1625 1626 * The sudoers locale is now set before parsing the sudoers file. 1627 If sudoers_locale is set in sudoers, it is applied before 1628 evaluating other Defaults entries. Previously, sudoers_locale 1629 was used when evaluating sudoers but not during the initial parse. 1630 Bug #748. 1631 1632 * A missing or otherwise invalid #includedir is now ignored instead 1633 of causing a parse error. 1634 1635 * During "make install", backup files are only used on HP-UX where 1636 it is not possible to unlink a shared object that is in use. 1637 This works around a bug in ldconfig on Linux which could create 1638 links to the backup shared library file instead of the current 1639 one. 1640 1641 * Fixed a bug introduced in 1.8.17 where sudoers entries with long 1642 commands lines could be truncated, preventing a match. Bug #752. 1643 1644 * The fqdn, runas_default and sudoers_locale Defaults settings are 1645 now applied before any other Defaults settings since they can 1646 change how other Defaults settings are parsed. 1647 1648 * On systems without the O_NOFOLLOW open(2) flag, when the NOFOLLOW 1649 flag is set, sudoedit now checks whether the file is a symbolic link 1650 before opening it as well as after the open. Bug #753. 1651 1652 * Sudo will now only resolve a user's group IDs to group names 1653 when sudoers includes group-based permissions. Group lookups 1654 can be expensive on some systems where the group database is 1655 not local. 1656 1657 * If the file system holding the sudo log file is full, allow 1658 the command to run unless the new ignore_logfile_errors Defaults 1659 option is disabled. Bug #751. 1660 1661 * The ignore_audit_errors and ignore_iolog_errors Defaults options 1662 have been added to control sudo's behavior when it is unable to 1663 write to the audit and I/O logs. 1664 1665 * Fixed a bug introduced in 1.8.17 where the SIGPIPE signal handler 1666 was not being restored when sudo directly executes the command. 1667 1668 * Fixed a bug where "sudo -l command" would indicate that a command 1669 was runnable even when denied by sudoers when using the LDAP or 1670 SSSD back-ends. 1671 1672 * The match_group_by_gid Defaults option has been added to allow 1673 sites where group name resolution is slow and where sudoers only 1674 contains a small number of groups to match groups by group ID 1675 instead of by group name. 1676 1677 * Fixed a bug on Linux where a 32-bit sudo binary could fail with 1678 an "unable to allocate memory" error when run on a 64-bit system. 1679 Bug #755 1680 1681 * When parsing ldap.conf, sudo will now only treat a '#' character 1682 as the start of a comment when it is at the beginning of the 1683 line. 1684 1685 * Fixed a potential crash when auditing is enabled and the audit 1686 function fails with an error. Bug #756 1687 1688 * Norwegian Nynorsk translation for sudo from translationproject.org. 1689 1690 * Fixed a typo that broke short host name matching when the fqdn 1691 flag is enabled in sudoers. Bug #757 1692 1693 * Negated sudoHost attributes are now supported by the LDAP and 1694 SSSD back-ends. 1695 1696 * Fixed matching entries in the LDAP and SSSD back-ends when a 1697 RunAsGroup is specified but no RunAsUser is present. 1698 1699 * Fixed "sudo -l" output in the LDAP and SSSD back-ends when a 1700 RunAsGroup is specified but no RunAsUser is present. 1701 1702What's new in Sudo 1.8.17p1 1703 1704 * Fixed a bug introduced in 1.8.17 where the user's groups were 1705 not set on systems that don't use PAM. Bug #749. 1706 1707What's new in Sudo 1.8.17 1708 1709 * On AIX, if /etc/security/login.cfg has auth_type set to PAM_AUTH 1710 but pam_start(3) fails, fall back to AIX authentication. 1711 Bug #740. 1712 1713 * Sudo now takes all sudoers sources into account when determining 1714 whether or not "sudo -l" or "sudo -v" should prompt for a password. 1715 In other words, if both file and ldap sudoers sources are in 1716 specified in /etc/nsswitch.conf, "sudo -v" will now require that 1717 all entries in both sources be have NOPASSWD (file) or !authenticate 1718 (ldap) in the entries. 1719 1720 * Sudo now ignores SIGPIPE until the command is executed. Previously, 1721 SIGPIPE was only ignored in a few select places. Bug #739. 1722 1723 * Fixed a bug introduced in sudo 1.8.14 where (non-syslog) log 1724 file entries were missing the newline when loglinelen is set to 1725 a non-positive number. Bug #742. 1726 1727 * Unix groups are now set before the plugin session initialization 1728 code is run. This makes it possible to use dynamic groups with 1729 the Linux-PAM pam_group module. 1730 1731 * Fixed a bug where a debugging statement could dereference a NULL 1732 pointer when looking up a group that doesn't exist. Bug #743. 1733 1734 * Sudo has been run through the Coverity code scanner. A number of 1735 minor bugs have been fixed as a result. None were security issues. 1736 1737 * SELinux support, which was broken in 1.8.16, has been repaired. 1738 1739 * Fixed a bug when logging I/O where all output buffers might not 1740 get flushed at exit. 1741 1742 * Forward slashes are no longer escaped in the JSON output of 1743 "visudo -x". This was never required by the standard and not 1744 escaping them improves readability of the output. 1745 1746 * Sudo no longer treats PAM_SESSION_ERR as a fatal error when 1747 opening the PAM session. Other errors from pam_open_session() 1748 are still treated as fatal. This avoids the "policy plugin 1749 failed session initialization" error message seen on some systems. 1750 1751 * Korean translation for sudo and sudoers from translationproject.org. 1752 1753 * Fixed a bug on AIX where the stack size hard resource limit was 1754 being set to 2GB instead of 4GB on 64-bit systems. 1755 1756 * The SSSD back-end now properly supports "sudo -U otheruser -l". 1757 1758 * The SSSD back-end now uses the value of "ipa_hostname" 1759 from sssd.conf, if specified, when matching the host name. 1760 1761 * Fixed a hang on some systems when the command is being run in 1762 a pty and it failed to execute. 1763 1764 * When performing a wildcard match in sudoers, check for an exact 1765 string match if the user command was fully-qualified (or resolved 1766 via the PATH). This fixes an issue executing scripts on Linux 1767 when there are multiple wildcard matches with the same base name. 1768 Bug #746. 1769 1770What's new in Sudo 1.8.16 1771 1772 * Fixed a compilation error on Solaris 10 with Stun Studio 12. 1773 Bug #727. 1774 1775 * When preserving variables from the invoking user's environment, if 1776 there are duplicates sudo now only keeps the first instance. 1777 1778 * Fixed a bug that could cause warning mail to be sent in list 1779 mode (sudo -l) for users without sudo privileges when the 1780 LDAP and sssd back-ends are used. 1781 1782 * Fixed a bug that prevented the "mail_no_user" option from working 1783 properly with the LDAP back-end. 1784 1785 * In the LDAP and sssd back-ends, white space is now ignored between 1786 an operator (!, +, +=, -=) when parsing a sudoOption. 1787 1788 * It is now possible to disable Path settings in sudo.conf 1789 by omitting the path name. 1790 1791 * The sudoedit_checkdir Defaults option is now enabled by default 1792 and has been extended. When editing files with sudoedit, each 1793 directory in the path to be edited is now checked. If a directory 1794 is writable by the invoking user, symbolic links will not be 1795 followed. If the parent directory of the file to be edited is 1796 writable, sudoedit will refuse to edit it. 1797 Bug #707. 1798 1799 * The netgroup_tuple Defaults option has been added to enable matching 1800 of the entire netgroup tuple, not just the host or user portion. 1801 Bug #717. 1802 1803 * When matching commands based on the SHA2 digest, sudo will now 1804 use fexecve(2) to execute the command if it is available. This 1805 fixes a time of check versus time of use race condition when the 1806 directory holding the command is writable by the invoking user. 1807 1808 * On AIX systems, sudo now caches the auth registry string along 1809 with password and group information. This fixes a potential 1810 problem when a user or group of the same name exists in multiple 1811 auth registries. For example, local and LDAP. 1812 1813 * Fixed a crash in the SSSD back-end when the invoking user is not 1814 found. Bug #732. 1815 1816 * Added the --enable-asan configure flag to enable address sanitizer 1817 support. A few minor memory leaks have been plugged to quiet 1818 the ASAN leak detector. 1819 1820 * The value of _PATH_SUDO_CONF may once again be overridden via 1821 the Makefile. Bug #735. 1822 1823 * The sudoers2ldif script now handles multiple roles with same name. 1824 1825 * Fixed a compilation error on systems that have the posix_spawn() 1826 and posix_spawnp() functions but an unusable spawn.h header. 1827 Bug #730. 1828 1829 * Fixed support for negating character classes in sudo's version 1830 of the fnmatch() function. 1831 1832 * Fixed a bug in the LDAP and SSSD back-ends that could allow an 1833 unauthorized user to list another user's privileges. Bug #738. 1834 1835 * The PAM conversation function now works around an ambiguity in the 1836 PAM spec with respect to multiple messages. Bug #726. 1837 1838What's new in Sudo 1.8.15 1839 1840 * Fixed a bug that prevented sudo from building outside the source tree 1841 on some platforms. Bug #708. 1842 1843 * Fixed the location of the sssd library in the RHEL/Centos packages. 1844 Bug #710. 1845 1846 * Fixed a build problem on systems that don't implicitly include 1847 sys/types.h from other header files. Bug #711. 1848 1849 * Fixed a problem on Linux using containers where sudo would ignore 1850 signals sent by a process in a different container. 1851 1852 * Sudo now refuses to run a command if the PAM session module 1853 returns an error. 1854 1855 * When editing files with sudoedit, symbolic links will no longer 1856 be followed by default. The old behavior can be restored by 1857 enabling the sudoedit_follow option in sudoers or on a per-command 1858 basis with the FOLLOW and NOFOLLOW tags. Bug #707. 1859 1860 * Fixed a bug introduced in version 1.8.14 that caused the last 1861 valid editor in the sudoers "editor" list to be used by visudo 1862 and sudoedit instead of the first. Bug #714. 1863 1864 * Fixed a bug in visudo that prevented the addition of a final 1865 newline to edited files without one. 1866 1867 * Fixed a bug decoding certain base64 digests in sudoers when the 1868 intermediate format included a '=' character. 1869 1870 * Individual records are now locked in the time stamp file instead 1871 of the entire file. This allows sudo to avoid prompting for a 1872 password multiple times on the same terminal when used in a 1873 pipeline. In other words, "sudo cat foo | sudo grep bar" now 1874 only prompts for the password once. Previously, both sudo 1875 processes would prompt for a password, often making it impossible 1876 to enter. 1877 1878 * Fixed a bug where sudo would fail to run commands as a non-root 1879 user on systems that lack both setresuid() and setreuid(). 1880 Bug #713. 1881 1882 * Fixed a bug introduced in sudo 1.8.14 that prevented visudo from 1883 re-editing the correct file when a syntax error was detected. 1884 1885 * Fixed a bug where sudo would not relay a SIGHUP signal to the 1886 command when the terminal is closed and the command is not run 1887 in its own pseudo-tty. Bug #719 1888 1889 * If some, but not all, of the LOGNAME, USER or USERNAME environment 1890 variables have been preserved from the invoking user's environment, 1891 sudo will now use the preserved value to set the remaining variables 1892 instead of using the runas user. This ensures that if, for example, 1893 only LOGNAME is present in the env_keep list, that sudo will not 1894 set USER and USERNAME to the runas user. 1895 1896* When the command sudo is running dies due to a signal, sudo will 1897 now send itself that same signal with the default signal handler 1898 installed instead of exiting. The bash shell appears to ignore 1899 some signals, e.g. SIGINT, unless the command being run is killed 1900 by that signal. This makes the behavior of commands run under 1901 sudo the same as without sudo when bash is the shell. Bug #722 1902 1903 * Slovak translation for sudo from translationproject.org. 1904 1905 * Hungarian and Slovak translations for sudoers from translationproject.org. 1906 1907 * Previously, when env_reset was enabled (the default) and the -s 1908 option was not used, the SHELL environment variable was set to the 1909 shell of the invoking user. Now, when env_reset is enabled and 1910 the -s option is not used, SHELL is set based on the target user. 1911 1912 * Fixed challenge/response style BSD authentication. 1913 1914 * Added the sudoedit_checkdir Defaults option to prevent sudoedit 1915 from editing files located in a directory that is writable by 1916 the invoking user. 1917 1918 * Added the always_query_group_plugin Defaults option to control 1919 whether groups not found in the system group database are passed 1920 to the group plugin. Previously, unknown system groups were 1921 always passed to the group plugin. 1922 1923 * When creating a new file, sudoedit will now check that the file's 1924 parent directory exists before running the editor. 1925 1926 * Fixed the compiler stack protector test in configure for compilers 1927 that support -fstack-protector but don't actually have the ssp 1928 library available. 1929 1930What's new in Sudo 1.8.14p3 1931 1932 * Fixed a bug introduced in sudo 1.8.14p2 that prevented sudo 1933 from working when no tty was present. 1934 1935 * Fixed tty detection on newer AIX systems where dev_t is 64-bit. 1936 1937What's new in Sudo 1.8.14p2 1938 1939 * Fixed a bug introduced in sudo 1.8.14 that prevented the lecture 1940 file from being created. Bug #704. 1941 1942What's new in Sudo 1.8.14p1 1943 1944 * Fixed a bug introduced in sudo 1.8.14 that prevented the sssd 1945 back-end from working. Bug #703. 1946 1947What's new in Sudo 1.8.14 1948 1949 * Log messages on Mac OS X now respect sudoers_locale when sudo 1950 is build with NLS support. 1951 1952 * The sudo manual pages now pass "mandoc -Tlint" with no warnings. 1953 1954 * Fixed a compilation problem on systems with the sig2str() function 1955 that do not define SIG2STR_MAX in signal.h. 1956 1957 * Worked around a compiler bug that resulted in unexpected behavior 1958 when returning an int from a function declared to return bool 1959 without an explicit cast. 1960 1961 * Worked around a bug in Mac OS X 10.10 BSD auditing where the 1962 au_preselect() fails for AUE_sudo events but succeeds for 1963 AUE_DARWIN_sudo. 1964 1965 * Fixed a hang on Linux systems with glibc when sudo is linked with 1966 jemalloc. 1967 1968 * When the user runs a command as a user ID that is not present in 1969 the password database via the -u flag, the command is now run 1970 with the group ID of the invoking user instead of group ID 0. 1971 1972 * Fixed a compilation problem on systems that don't pull in 1973 definitions of uid_t and gid_t without sys/types.h or unistd.h. 1974 1975 * Fixed a compilation problem on newer AIX systems which use a 1976 struct st_timespec for time stamps in struct stat that differs 1977 from struct timespec. Bug #702. 1978 1979 * The example directory is now configurable via --with-exampledir 1980 and defaults to DATAROOTDIR/examples/sudo on BSD systems. 1981 1982 * The /usr/lib/tmpfiles.d/sudo.conf file is now installed as part 1983 of "make install" when systemd is in use. 1984 1985 * Fixed a linker problem on some systems with libintl. Bug #690. 1986 1987 * Fixed compilation with compilers that don't support __func__ 1988 or __FUNCTION__. 1989 1990 * Sudo no longer needs to uses weak symbols to support localization 1991 in the warning functions. A registration function is used instead. 1992 1993 * Fixed a setresuid() failure in sudoers on Linux kernels where 1994 uid changes take the nproc resource limit into account. 1995 1996 * Fixed LDAP netgroup queries on AIX. 1997 1998 * Sudo will now display the custom prompt on Linux systems with PAM 1999 even if the "Password: " prompt is not localized by the PAM module. 2000 Bug #701. 2001 2002 * Double-quoted values in an LDAP sudoOption are now supported 2003 for consistency with file-based sudoers. 2004 2005 * Fixed a bug that prevented the btime entry in /proc/stat from 2006 being parsed on Linux. 2007 2008What's new in Sudo 1.8.13 2009 2010 * The examples directory is now a subdirectory of the doc dir to 2011 conform to Debian guidelines. Bug #682. 2012 2013 * Fixed a compilation error for siglist.c and signame.c on some 2014 systems. Bug #686 2015 2016 * Weak symbols are now used for sudo_warn_gettext() and 2017 sudo_warn_strerror() in libsudo_util to avoid link errors when 2018 -Wl,--no-undefined is used in LDFLAGS. The --disable-weak-symbols 2019 configure option can be used to disable the user of weak symbols. 2020 2021 * Fixed a bug in sudo's mkstemps() replacement function that 2022 prevented the file extension from being preserved in sudoedit. 2023 2024 * A new mail_all_cmnds sudoers flag will send mail when a user runs 2025 a command (or tries to). The behavior of the mail_always flag has 2026 been restored to always send mail when sudo is run. 2027 2028 * New "MAIL" and "NOMAIL" command tags have been added to toggle 2029 mail sending behavior on a per-command (or Cmnd_Alias) basis. 2030 2031 * Fixed matching of empty passwords when sudo is configured to 2032 use passwd (or shadow) file authentication on systems where the 2033 crypt() function returns NULL for invalid salts. 2034 2035 * On AIX, sudo now uses the value of the auth_type setting in 2036 /etc/security/login.cfg to determine whether to use LAM or PAM 2037 for user authentication. 2038 2039 * The "all" setting for listpw and verifypw now works correctly 2040 with LDAP and sssd sudoers. 2041 2042 * The sudo timestamp directory is now created at boot time on 2043 platforms that use systemd. 2044 2045 * Sudo will now restore the value of the SIGPIPE handler before 2046 executing the command. 2047 2048 * Sudo now uses "struct timespec" instead of "struct timeval" for 2049 time keeping when possible. If supported, sudoedit and visudo 2050 now use nanosecond granularity time stamps. 2051 2052 * Fixed a symbol name collision with systems that have their own 2053 SHA2 implementation. This fixes a problem where PAM could use 2054 the wrong SHA2 implementation on Solaris 10 systems configured 2055 to use SHA512 for passwords. 2056 2057 * The editor invoked by sudoedit once again uses an unmodified 2058 copy of the user's environment as per the documentation. This 2059 was inadvertently changed in sudo 1.8.0. Bug #688. 2060 2061What's new in Sudo 1.8.12 2062 2063 * The embedded copy of zlib has been upgraded to version 1.2.8 and 2064 is now installed as a shared library where supported. 2065 2066 * Debug settings for the sudo front end and sudoers plugin are now 2067 configured separately. 2068 2069 * Multiple sudo.conf Debug entries may now be specified per program 2070 (or plugin). 2071 2072 * The plugin API has been extended such that the path to the plugin 2073 that was loaded is now included in the settings array. This 2074 path can be used to register with the debugging subsystem. The 2075 debug_flags setting is now prefixed with a file name and may be 2076 specified multiple times if there is more than one matching Debug 2077 setting in sudo.conf. 2078 2079 * The sudoers regression tests now run with the locale set to C 2080 since some of the tests compare output that includes locale-specific 2081 messages. Bug #672 2082 2083 * Fixed a bug where sudo would not run commands on Linux when 2084 compiled with audit support if audit is disabled. Bug #671 2085 2086 * Added __BASH_FUNC<* to the environment blacklist to match 2087 Apple's syntax for newer-style bash functions. 2088 2089 * The default password prompt now includes a trailing space after 2090 "Password:" for consistency with su(1) on most systems. 2091 Bug #663 2092 2093 * Fixed a problem on DragonFly BSD where SIGCHLD could be ignored, 2094 preventing sudo from exiting. Bug #676 2095 2096 * Visudo will now use the optional sudoers_file, sudoers_mode, 2097 sudoers_uid and sudoers_gid arguments if specified on the 2098 sudoers.so Plugin line in the sudo.conf file. 2099 2100 * Fixed a problem introduced in sudo 1.8.8 that prevented the full 2101 host name from being used when the "fqdn" sudoers option is used. 2102 Bug #678 2103 2104 * French and Russian translations for sudoers from translationproject.org. 2105 2106 * Sudo now installs a handler for SIGCHLD signal handler immediately 2107 before stating the process that will execute the command (or 2108 start the monitor). The handler used to be installed earlier 2109 but this causes problems with poorly behaved PAM modules that 2110 install their own SIGCHLD signal handler and neglect to restore 2111 sudo's original handler. Bug #657 2112 2113 * Removed a limit on the length of command line arguments expanded 2114 by a wild card using sudo's version of the fnmatch() function. 2115 This limit was introduced when sudo's version of fnmatch() 2116 was replaced in sudo 1.8.4. 2117 2118 * LDAP-based sudoers can now query an LDAP server for a user's 2119 netgroups directly. This is often much faster than fetching 2120 every sudoRole object containing a sudoUser that begins with a 2121 `+' prefix and checking whether the user is a member of any of 2122 the returned netgroups. 2123 2124 * The mail_always sudoers option no longer sends mail for "sudo -l" 2125 or "sudo -v" unless the user is unable to authenticate themselves. 2126 2127 * Fixed a crash when sudo is run with an empty argument vector. 2128 2129 * Fixed two potential crashes when sudo is run with very low 2130 resource limits. 2131 2132 * The TZ environment variable is now checked for safety instead 2133 of simply being copied to the environment of the command. 2134 2135What's new in Sudo 1.8.11p2 2136 2137 * Fixed a bug where dynamic shared objects loaded from a plugin 2138 could use the hooked version of getenv() but not the hooked 2139 versions of putenv(), setenv() or unsetenv(). This can cause 2140 problems for PAM modules that use those functions. 2141 2142What's new in Sudo 1.8.11p1 2143 2144 * Fixed a compilation problem on some systems when the 2145 --disable-shared-libutil configure option was specified. 2146 2147 * The user can no longer interrupt the sleep after an incorrect 2148 password on PAM systems using pam_unix. 2149 Bug #666 2150 2151 * Fixed a compilation problem on Linux systems that do not use PAM. 2152 Bug #667 2153 2154 * "make install" will now work with the stock GNU autotools 2155 install-sh script. Bug #669 2156 2157 * Fixed a crash with "sudo -i" when the current working directory 2158 does not exist. Bug #670 2159 2160 * Fixed a potential crash in the debug subsystem when logging a message 2161 larger that 1024 bytes. 2162 2163 * Fixed a "make check" failure for ttyname when stdin is closed and 2164 stdout and stderr are redirected to a different tty. Bug #643 2165 2166 * Added BASH_FUNC_* to the environment blacklist to match newer-style 2167 bash functions. 2168 2169What's new in Sudo 1.8.11 2170 2171 * The sudoers plugin no longer uses setjmp/longjmp to recover 2172 from fatal errors. All errors are now propagated to the caller 2173 via return codes. 2174 2175 * When running a command in the background, sudo will now forward 2176 SIGINFO to the command (if supported). 2177 2178 * Sudo will now use the system versions of the sha2 functions from 2179 libc or libmd if available. 2180 2181 * Visudo now works correctly on GNU Hurd. Bug #647 2182 2183 * Fixed suspend and resume of curses programs on some system when 2184 the command is not being run in a pseudo-terminal. Bug #649 2185 2186 * Fixed a crash with LDAP-based sudoers on some systems when 2187 Kerberos was enabled. 2188 2189 * Sudo now includes optional Solaris audit support. 2190 2191 * Catalan translation for sudoers from translationproject.org. 2192 2193 * Norwegian Bokmaal translation for sudo from translationproject.org. 2194 2195 * Greek translation for sudoers from translationproject.org 2196 2197 * The sudo source tree has been reorganized to more closely resemble 2198 that of other gettext-enabled packages. 2199 2200 * Sudo and its associated programs now link against a shared version 2201 of libsudo_util. The --disable-shared-libutil configure option 2202 may be used to force static linking if the --enable-static-sudoers 2203 option is also specified. 2204 2205 * The passwords in ldap.conf and ldap.secret may now be encoded 2206 in base64. 2207 2208 * Audit updates. SELinux role changes are now audited. For 2209 sudoedit, we now audit the actual editor being run, instead of 2210 just the sudoedit command. 2211 2212 * Fixed bugs in the man page post-processing that could cause 2213 portions of the manuals to be removed. 2214 2215 * Fixed a crash in the system_group plugin. Bug #653. 2216 2217 * Fixed sudoedit on platforms without a system version of the 2218 getprogname() function. Bug #654. 2219 2220 * Fixed compilation problems with some pre-C99 compilers. 2221 2222 * Fixed sudo's -C option which was broken in version 1.8.9. 2223 2224 * It is now possible to match an environment variable's value as 2225 well as its name using env_keep and env_check. This can be used 2226 to preserve bash functions which would otherwise be removed from 2227 the environment. 2228 2229 * New files created via sudoedit as a non-root user now have the 2230 proper group id. Bug #656 2231 2232 * Sudoedit now works correctly in conjunction with sudo's SELinux 2233 RBAC support. Temporary files are now created with the proper 2234 security context. 2235 2236 * The sudo I/O logging plugin API has been updated. If a logging 2237 function returns an error, the command will be terminated and 2238 all of the plugin's logging functions will be disabled. If a 2239 logging function rejects the command's output it will no longer 2240 be displayed to the user's terminal. 2241 2242 * Fixed a compilation error on systems that lack openpty(), _getpty() 2243 and grantpt(). Bug #660 2244 2245 * Fixed a hang when a sudoers source is listed more than once in 2246 a single sudoers nsswitch.conf entry. 2247 2248 * On AIX, shell scripts without a #! magic number are now passed to 2249 /usr/bin/sh, not /usr/bin/bsh. This is consistent with what the 2250 execvp() function on AIX does and matches historic sudo behavior. 2251 Bug #661 2252 2253 * Fixed a cross-compilation problem building mksiglist and mksigname. 2254 Bug #662 2255 2256What's new in Sudo 1.8.10p3? 2257 2258 * Fixed expansion of %p in the prompt for "sudo -l" when rootpw, 2259 runaspw or targetpw is set. Bug #639 2260 2261 * Fixed matching of UIDs and GIDs which was broken in version 1.8.9. 2262 Bug #640 2263 2264 * PAM credential initialization has been re-enabled. It was 2265 unintentionally disabled by default in version 1.8.8. The way 2266 credentials are initialized has also been fixed. Bug #642. 2267 2268 * Fixed a descriptor leak on Linux when determining boot time. Sudo 2269 normally closes extra descriptors before running a command so 2270 the impact is limited. Bug #645 2271 2272 * Fixed flushing of the last buffer of data when I/O logging is 2273 enabled. This bug, introduced in version 1.8.9, could cause 2274 incomplete command output on some systems. Bug #646 2275 2276What's new in Sudo 1.8.10p2? 2277 2278 * Fixed a hang introduced in sudo 1.8.10 when timestamp_timeout 2279 is set to zero. 2280 2281What's new in Sudo 1.8.10p1? 2282 2283 * Fixed a bug introduced in sudo 1.8.10 that prevented the disabling 2284 of tty-based tickets. 2285 2286 * Fixed a bug with negated commands in "sudo -l command" that 2287 could cause the command to be listed even when it was explicitly 2288 denied. This only affected list mode when a command was specified. 2289 Bug #636 2290 2291What's new in Sudo 1.8.10? 2292 2293 * It is now possible to disable network interface probing in 2294 sudo.conf by changing the value of the probe_interfaces 2295 setting. 2296 2297 * When listing a user's privileges (sudo -l), the sudoers plugin 2298 will now prompt for the user's password even if the targetpw, 2299 rootpw or runaspw options are set. 2300 2301 * The sudoers plugin uses a new format for its time stamp files. 2302 Each user now has a single file which may contain multiple records 2303 when per-tty time stamps are in use (the default). The time 2304 stamps use a monotonic timer where available and are once again 2305 located in a directory under /var/run. The lecture status is 2306 now stored separately from the time stamps in a different directory. 2307 Bug #616 2308 2309 * sudo's -K option will now remove all of the user's time stamps, 2310 not just the time stamp for the current terminal. The -k option 2311 can be used to only disable time stamps for the current terminal. 2312 2313 * If sudo was started in the background and needed to prompt for 2314 a password, it was not possible to suspend it at the password 2315 prompt. This now works properly. 2316 2317 * LDAP-based sudoers now uses a default search filter of 2318 (objectClass=sudoRole) for more efficient queries. The netgroup 2319 query has been modified to avoid falling below the minimum length 2320 for OpenLDAP substring indices. 2321 2322 * The new "use_netgroups" sudoers option can be used to explicitly 2323 enable or disable netgroups support. For LDAP-based sudoers, 2324 netgroup support requires an expensive substring match on the 2325 server. If netgroups are not needed, this option can be disabled 2326 to reduce the load on the LDAP server. 2327 2328 * Sudo is once again able to open the sudoers file when the group 2329 on sudoers doesn't match the expected value, so long as the file 2330 is not group writable. 2331 2332 * Sudo now installs an init.d script to clear the time stamp 2333 directory at boot time on AIX and HP-UX systems. These systems 2334 either lack /var/run or do not clear it on boot. 2335 2336 * The JSON format used by "visudo -x" now properly supports the 2337 negation operator. In addition, the Options object is now the 2338 same for both Defaults and Cmnd_Specs. 2339 2340 * Czech and Serbian translations for sudoers from translationproject.org. 2341 2342 * Catalan translation for sudo from translationproject.org. 2343 2344What's new in Sudo 1.8.9p5? 2345 2346 * Fixed a compilation error on AIX when LDAP support is enabled. 2347 2348 * Fixed parsing of the "umask" defaults setting in sudoers. Bug #632. 2349 2350 * Fixed a failed assertion when the "closefrom_override" defaults 2351 setting is enabled in sudoers and sudo's -C flag is used. Bug #633. 2352 2353What's new in Sudo 1.8.9p4? 2354 2355 * Fixed a bug where sudo could consume large amounts of CPU while 2356 the command was running when I/O logging is not enabled. Bug #631 2357 2358 * Fixed a bug where sudo would exit with an error when the debug 2359 level is set to util@debug or all@debug and I/O logging is not 2360 enabled. The command would continue running after sudo exited. 2361 2362What's new in Sudo 1.8.9p3? 2363 2364 * Fixed a bug introduced in sudo 1.8.9 that prevented the tty name 2365 from being resolved properly on Linux systems. Bug #630. 2366 2367What's new in Sudo 1.8.9p2? 2368 2369 * Updated config.guess, config.sub and libtool to support the ppc64le 2370 architecture (IBM PowerPC Little Endian). 2371 2372What's new in Sudo 1.8.9p1? 2373 2374 * Fixed a problem with gcc 4.8's handling of bit fields that could 2375 lead to the noexec flag being enabled even when it was not 2376 explicitly set. 2377 2378What's new in Sudo 1.8.9? 2379 2380 * Reworked sudo's main event loop to use a simple event subsystem 2381 using poll(2) or select(2) as the back end. 2382 2383 * It is now possible to statically compile the sudoers plugin into 2384 the sudo binary without disabling shared library support. The 2385 sudo.conf file may still be used to configure other plugins. 2386 2387 * Sudo can now be compiled again with a C preprocessor that does 2388 not support variadic macros. 2389 2390 * Visudo can now export a sudoers file in JSON format using the 2391 new -x flag. 2392 2393 * The locale is now set correctly again for visudo and sudoreplay. 2394 2395 * The plugin API has been extended to allow the plugin to exclude 2396 specific file descriptors from the "closefrom" range. 2397 2398 * There is now a workaround for a Solaris-specific problem where 2399 NOEXEC was overriding traditional root DAC behavior. 2400 2401 * Add user netgroup filtering for SSSD. Previously, rules for 2402 a netgroup were applied to all even when they did not belong 2403 to the specified netgroup. 2404 2405 * On systems with BSD login classes, if the user specified a group 2406 (not a user) to run the command as, it was possible to specify 2407 a different login class even when the command was not run as the 2408 super user. 2409 2410 * The closefrom() emulation on Mac OS X now uses /dev/fd if possible. 2411 2412 * Fixed a bug where sudoedit would not update the original file 2413 from the temporary when PAM or I/O logging is not enabled. 2414 2415 * When recycling I/O logs, the log files are now truncated properly. 2416 2417 * Fixes bugs #617, #621, #622, #623, #624, #625, #626 2418 2419What's new in Sudo 1.8.8? 2420 2421 * Removed a warning on PAM systems with stacked auth modules 2422 where the first module on the stack does not succeed. 2423 2424 * Sudo, sudoreplay and visudo now support GNU-style long options. 2425 2426 * The -h (--host) option may now be used to specify a host name. 2427 This is currently only used by the sudoers plugin in conjunction 2428 with the -l (--list) option. 2429 2430 * Program usage messages and manual SYNOPSIS sections have been 2431 simplified. 2432 2433 * Sudo's LDAP SASL support now works properly with Kerberos. 2434 Previously, the SASL library was unable to locate the user's 2435 credential cache. 2436 2437 * It is now possible to set the nproc resource limit to unlimited 2438 via pam_limits on Linux (bug #565). 2439 2440 * New "pam_service" and "pam_login_service" sudoers options 2441 that can be used to specify the PAM service name to use. 2442 2443 * New "pam_session" and "pam_setcred" sudoers options that 2444 can be used to disable PAM session and credential support. 2445 2446 * The sudoers plugin now properly supports UIDs and GIDs 2447 that are larger than 0x7fffffff on 32-bit platforms. 2448 2449 * Fixed a visudo bug introduced in sudo 1.8.7 where per-group 2450 Defaults entries would cause an internal error. 2451 2452 * If the "tty_tickets" sudoers option is enabled (the default), 2453 but there is no tty present, sudo will now use a ticket file 2454 based on the parent process ID. This makes it possible to support 2455 the normal timeout behavior for the session. 2456 2457 * Fixed a problem running commands that change their process 2458 group and then attempt to change the terminal settings when not 2459 running the command in a pseudo-terminal. Previously, the process 2460 would receive SIGTTOU since it was effectively a background 2461 process. Sudo will now grant the child the controlling tty and 2462 continue it when this happens. 2463 2464 * The "closefrom_override" sudoers option may now be used in 2465 a command-specified Defaults entry (bug #610). 2466 2467 * Sudo's BSM audit support now works on Solaris 11. 2468 2469 * Brazilian Portuguese translation for sudo and sudoers from 2470 translationproject.org. 2471 2472 * Czech translation for sudo from translationproject.org. 2473 2474 * French translation for sudo from translationproject.org. 2475 2476 * Sudo's noexec support on Mac OS X 10.4 and above now uses dynamic 2477 symbol interposition instead of setting DYLD_FORCE_FLAT_NAMESPACE=1 2478 which causes issues with some programs. 2479 2480 * Fixed visudo's -q (--quiet) flag, broken in sudo 1.8.6. 2481 2482 * Root may no longer change its SELinux role without entering 2483 a password. 2484 2485 * Fixed a bug introduced in Sudo 1.8.7 where the indexes written 2486 to the I/O log timing file are two greater than they should be. 2487 Sudoreplay now contains a work-around to parse those files. 2488 2489 * In sudoreplay's list mode, the "this" qualifier in "fromdate" 2490 or "todate" expressions now behaves more sensibly. Previously, 2491 it would often match a date that was "one more" than expected. 2492 For example, "this week" now matches the current week instead 2493 of the following week. 2494 2495What's new in Sudo 1.8.7? 2496 2497 * The non-Unix group plugin is now supported when sudoers data 2498 is stored in LDAP. 2499 2500 * Sudo now uses a workaround for a locale bug on Solaris 11.0 2501 that prevents setuid programs like sudo from fully using locales. 2502 2503 * User messages are now always displayed in the user's locale, 2504 even when the same message is being logged or mailed in a 2505 different locale. 2506 2507 * Log files created by sudo now explicitly have the group set 2508 to group ID 0 rather than relying on BSD group semantics (which 2509 may not be the default). 2510 2511 * A new "exec_background" sudoers option can be used to initially 2512 run the command without read access to the terminal when running 2513 a command in a pseudo-tty. If the command tries to read from 2514 the terminal it will be stopped by the kernel (via SIGTTIN or 2515 SIGTTOU) and sudo will immediately restart it as the foreground 2516 process (if possible). This allows sudo to only pass terminal 2517 input to the program if the program actually is expecting it. 2518 Unfortunately, a few poorly-behaved programs (like "su" on most 2519 Linux systems) do not handle SIGTTIN and SIGTTOU properly. 2520 2521 * Sudo now uses an efficient group query to get all the groups 2522 for a user instead of iterating over every record in the group 2523 database on HP-UX and Solaris. 2524 2525 * Sudo now produces better error messages when there is an error 2526 in the sudo.conf file. 2527 2528 * Two new settings have been added to sudo.conf to give the admin 2529 better control of how group database queries are performed. The 2530 "group_source" specifies how the group list for a user will be 2531 determined. Legal values are "static" (use the kernel groups 2532 list), "dynamic" (perform a group database query) and "adaptive" 2533 (only perform a group database query if the kernel list is full). 2534 The "max_groups" setting specifies the maximum number of groups 2535 a user may belong to when performing a group database query. 2536 2537 * The sudo.conf file now supports line continuation by using a 2538 backslash as the last character on the line. 2539 2540 * There is now a standalone sudo.conf manual page. 2541 2542 * Sudo now stores its libexec files in a "sudo" sub-directory instead 2543 of in libexec itself. For backward compatibility, if the plugin 2544 is not found in the default plugin directory, sudo will check 2545 the parent directory if the default directory ends in "/sudo". 2546 2547 * The sudoers I/O logging plugin now logs the terminal size. 2548 2549 * A new sudoers option "maxseq" can be used to limit the number of 2550 I/O log entries that are stored. 2551 2552 * The "system_group" and "group_file" sudoers group provider plugins 2553 are now installed by default. 2554 2555 * The list output (sudo -l) output from the sudoers plugin is now 2556 less ambiguous when an entry includes different runas users. 2557 The long list output (sudo -ll) for file-based sudoers is now 2558 more consistent with the format of LDAP-based sudoers. 2559 2560 * A UID may now be used in the sudoRunAsUser attributes for LDAP 2561 sudoers. 2562 2563 * Minor plugin API change: the close and version functions are now 2564 optional. If the policy plugin does not provide a close function 2565 and the command is not being run in a new pseudo-tty, sudo may 2566 now execute the command directly instead of in a child process. 2567 2568 * A new sudoers option "pam_session" can be used to disable sudo's 2569 PAM session support. 2570 2571 * On HP-UX systems, sudo will now use the pstat() function to 2572 determine the tty instead of ttyname(). 2573 2574 * Turkish translation for sudo and sudoers from translationproject.org. 2575 2576 * Dutch translation for sudo and sudoers from translationproject.org. 2577 2578 * Tivoli Directory Server client libraries may now be used with 2579 HP-UX where libibmldap has a hidden dependency on libCsup. 2580 2581 * The sudoers plugin will now ignore invalid domain names when 2582 checking netgroup membership. Most Linux systems use the string 2583 "(none)" for the NIS-style domain name instead of an empty string. 2584 2585 * New support for specifying a SHA-2 digest along with the command 2586 in sudoers. Supported hash types are sha224, sha256, sha384 and 2587 sha512. See the description of Digest_Spec in the sudoers manual 2588 or the description of sudoCommand in the sudoers.ldap manual for 2589 details. 2590 2591 * The paths to ldap.conf and ldap.secret may now be specified as 2592 arguments to the sudoers plugin in the sudo.conf file. 2593 2594 * Fixed potential false positives in visudo's alias cycle detection. 2595 2596 * Fixed a problem where the time stamp file was being treated 2597 as out of date on Linux systems where the change time on the 2598 pseudo-tty device node can change after it is allocated. 2599 2600 * Sudo now only builds Position Independent Executables (PIE) 2601 by default on Linux systems and verifies that a trivial test 2602 program builds and runs. 2603 2604 * On Solaris 11.1 and higher, sudo binaries will now have the 2605 ASLR tag enabled if supported by the linker. 2606 2607What's new in Sudo 1.8.6p8? 2608 2609 * Terminal detection now works properly on 64-bit AIX kernels. 2610 This was broken by the removal of the ttyname() fallback in Sudo 2611 1.8.6p6. Sudo is now able to map an AIX 64-bit device number 2612 to the corresponding device file in /dev. 2613 2614 * Sudo now checks for crypt() returning NULL when performing 2615 passwd-based authentication. 2616 2617What's new in Sudo 1.8.6p7? 2618 2619 * A time stamp file with the date set to the epoch by "sudo -k" 2620 is now completely ignored regardless of what the local clock is 2621 set to. Previously, if the local clock was set to a value between 2622 the epoch and the time stamp timeout value, a time stamp reset 2623 by "sudo -k" would be considered current. 2624 2625 * The tty-specific time stamp file now includes the session ID 2626 of the sudo process that created it. If a process with the same 2627 tty but a different session ID runs sudo, the user will now be 2628 prompted for a password (assuming authentication is required for 2629 the command). 2630 2631What's new in Sudo 1.8.6p6? 2632 2633 * On systems where the controlling tty can be determined via /proc 2634 or sysctl(), sudo will no longer fall back to using ttyname() 2635 if the process has no controlling tty. This prevents sudo from 2636 using a non-controlling tty for logging and time stamp purposes. 2637 2638What's new in Sudo 1.8.6p5? 2639 2640 * Fixed a potential crash in visudo's alias cycle detection. 2641 2642 * Improved performance on Solaris when retrieving the group list 2643 for the target user. On systems with a large number of groups 2644 where the group database is not local (NIS, LDAP, AD), fetching 2645 the group list could take a minute or more. 2646 2647What's new in Sudo 1.8.6p4? 2648 2649 * The -fstack-protector is now used when linking visudo, sudoreplay 2650 and testsudoers. 2651 2652 * Avoid building PIE binaries on FreeBSD/ia64 as they don't run 2653 properly. 2654 2655 * Fixed a crash in visudo strict mode when an unknown Defaults 2656 setting is encountered. 2657 2658 * Do not inform the user that the command was not permitted by the 2659 policy if they do not successfully authenticate. This is a 2660 regression introduced in sudo 1.8.6. 2661 2662 * Allow sudo to be build with sss support without also including 2663 ldap support. 2664 2665 * Fixed running commands that need the terminal in the background 2666 when I/O logging is enabled. E.g. "sudo vi &". When the command 2667 is foregrounded, it will now resume properly. 2668 2669What's new in Sudo 1.8.6p3? 2670 2671 * Fixed post-processing of the man pages on systems with legacy 2672 versions of sed. 2673 2674 * Fixed "sudoreplay -l" on Linux systems with file systems that 2675 set DT_UNKNOWN in the d_type field of struct dirent. 2676 2677What's new in Sudo 1.8.6p2? 2678 2679 * Fixed suspending a command after it has already been resumed 2680 once when I/O logging (or use_pty) is not enabled. 2681 This was a regression introduced in version 1.8.6. 2682 2683What's new in Sudo 1.8.6p1? 2684 2685 * Fixed the setting of LOGNAME, USER and USERNAME variables in the 2686 command's environment when env_reset is enabled (the default). 2687 This was a regression introduced in version 1.8.6. 2688 2689 * Sudo now honors SUCCESS=return in /etc/nsswitch.conf. 2690 2691What's new in Sudo 1.8.6? 2692 2693 * Sudo is now built with the -fstack-protector flag if the the 2694 compiler supports it. Also, the -zrelro linker flag is used if 2695 supported. The --disable-hardening configure option can be used 2696 to build sudo without stack smashing protection. 2697 2698 * Sudo is now built as a Position Independent Executable (PIE) 2699 if supported by the compiler and linker. 2700 2701 * If the user is a member of the "exempt" group in sudoers, they 2702 will no longer be prompted for a password even if the -k flag 2703 is specified with the command. This makes "sudo -k command" 2704 consistent with the behavior one would get if the user ran "sudo 2705 -k" immediately before running the command. 2706 2707 * The sudoers file may now be a symbolic link. Previously, sudo 2708 would refuse to read sudoers unless it was a regular file. 2709 2710 * The sudoreplay command can now properly replay sessions where 2711 no tty was present. 2712 2713 * The sudoers plugin now takes advantage of symbol visibility 2714 controls when supported by the compiler or linker. As a result, 2715 only a small number of symbols are exported which significantly 2716 reduces the chances of a conflict with other shared objects. 2717 2718 * Improved support for the Tivoli Directory Server LDAP client 2719 libraries. This includes support for using LDAP over SSL (ldaps) 2720 as well as support for the BIND_TIMELIMIT, TLS_KEY and TLS_CIPHERS 2721 ldap.conf options. A new ldap.conf option, TLS_KEYPW can be 2722 used to specify a password to decrypt the key database. 2723 2724 * When constructing a time filter for use with LDAP sudoNotBefore 2725 and sudoNotAfter attributes, the current time now includes tenths 2726 of a second. This fixes a problem with timed entries on Active 2727 Directory. 2728 2729 * If a user fails to authenticate and the command would be rejected 2730 by sudoers, it is now logged with "command not allowed" instead 2731 of "N incorrect password attempts". Likewise, the "mail_no_perms" 2732 sudoers option now takes precedence over "mail_badpass". 2733 2734 * The sudo manuals are now formatted using the mdoc macros. Versions 2735 using the legacy man macros are provided for systems that lack mdoc. 2736 2737 * New support for Solaris privilege sets. This makes it possible 2738 to specify fine-grained privileges in the sudoers file on Solaris 2739 10 and above. A Runas_Spec that contains no Runas_Lists can be 2740 used to give a user the ability to run a command as themselves 2741 but with an expanded privilege set. 2742 2743 * Fixed a problem with the reboot and shutdown commands on some 2744 systems (such as HP-UX and BSD). On these systems, reboot sends 2745 all processes (except itself) SIGTERM. When sudo received 2746 SIGTERM, it would relay it to the reboot process, thus killing 2747 reboot before it had a chance to actually reboot the system. 2748 2749 * Support for using the System Security Services Daemon (SSSD) as 2750 a source of sudoers data. 2751 2752 * Slovenian translation for sudo and sudoers from translationproject.org. 2753 2754 * Visudo will now warn about unknown Defaults entries that are 2755 per-host, per-user, per-runas or per-command. 2756 2757 * Fixed a race condition that could cause sudo to receive SIGTTOU 2758 (and stop) when resuming a shell that was run via sudo when I/O 2759 logging (and use_pty) is not enabled. 2760 2761 * Sending SIGTSTP directly to the sudo process will now suspend the 2762 running command when I/O logging (and use_pty) is not enabled. 2763 2764What's new in Sudo 1.8.5p3? 2765 2766 * Fixed the loading of I/O plugins that conform to a plugin API 2767 version older than 1.2. 2768 2769What's new in Sudo 1.8.5p2? 2770 2771 * Fixed use of the SUDO_ASKPASS environment variable which was 2772 broken in Sudo 1.8.5. 2773 2774 * Fixed a problem reading the sudoers file when the file mode is 2775 more restrictive than the expected mode. For example, when the 2776 expected sudoers file mode is 0440 but the actual mode is 0400. 2777 2778What's new in Sudo 1.8.5p1? 2779 2780 * Fixed a bug that prevented files in an include directory from 2781 being evaluated. 2782 2783What's new in Sudo 1.8.5? 2784 2785 * When "noexec" is enabled, sudo_noexec.so will now be prepended 2786 to any existing LD_PRELOAD variable instead of replacing it. 2787 2788 * The sudo_noexec.so shared library now wraps the execvpe(), 2789 exect(), posix_spawn() and posix_spawnp() functions. 2790 2791 * The user/group/mode checks on sudoers files have been relaxed. 2792 As long as the file is owned by the sudoers UID, not world-writable 2793 and not writable by a group other than the sudoers GID, the file 2794 is considered OK. Note that visudo will still set the mode to 2795 the value specified at configure time. 2796 2797 * It is now possible to specify the sudoers path, UID, GID and 2798 file mode as options to the plugin in the sudo.conf file. 2799 2800 * Croatian, Galician, German, Lithuanian, Swedish and Vietnamese 2801 translations from translationproject.org. 2802 2803 * /etc/environment is no longer read directly on Linux systems 2804 when PAM is used. Sudo now merges the PAM environment into the 2805 user's environment which is typically set by the pam_env module. 2806 2807 * The initial environment created when env_reset is in effect now 2808 includes the contents of /etc/environment on AIX systems and the 2809 "setenv" and "path" entries from /etc/login.conf on BSD systems. 2810 2811 * The plugin API has been extended in three ways. First, options 2812 specified in sudo.conf after the plugin pathname are passed to 2813 the plugin's open function. Second, sudo has limited support 2814 for hooks that can be used by plugins. Currently, the hooks are 2815 limited to environment handling functions. Third, the init_session 2816 policy plugin function is passed a pointer to the user environment 2817 which can be updated during session setup. The plugin API version 2818 has been incremented to version 1.2. See the sudo_plugin manual 2819 for more information. 2820 2821 * The policy plugin's init_session function is now called by the 2822 parent sudo process, not the child process that executes the 2823 command. This allows the PAM session to be open and closed in 2824 the same process, which some PAM modules require. 2825 2826 * Fixed parsing of "Path askpass" and "Path noexec" in sudo.conf, 2827 which was broken in version 1.8.4. 2828 2829 * On systems with an SVR4-style /proc file system, the /proc/pid/psinfo 2830 file is now uses to determine the controlling terminal, if possible. 2831 This allows tty-based tickets to work properly even when, e.g. 2832 standard input, output and error are redirected to /dev/null. 2833 2834 * The output of "sudoreplay -l" is now sorted by file name (or 2835 sequence number). Previously, entries were displayed in the 2836 order in which they were found on the file system. 2837 2838 * Sudo now behaves properly when I/O logging is enabled and the 2839 controlling terminal is revoked (e.g. the running sshd is killed). 2840 Previously, sudo may have exited without calling the I/O plugin's 2841 close function which can lead to an incomplete I/O log. 2842 2843 * Sudo can now detect when a user has logged out and back in again 2844 on Solaris 11, just like it can on Solaris 10. 2845 2846 * The built-in zlib included with Sudo has been upgraded to version 2847 1.2.6. 2848 2849 * Setting the SSL parameter to start_tls in ldap.conf now works 2850 properly when using Mozilla-based SDKs that support the 2851 ldap_start_tls_s() function. 2852 2853 * The TLS_CHECKPEER parameter in ldap.conf now works when the 2854 Mozilla NSS crypto back-end is used with OpenLDAP. 2855 2856 * A new group provider plugin, system_group, is included which 2857 performs group look ups by name using the system groups database. 2858 This can be used to restore the pre-1.7.3 sudo group lookup 2859 behavior. 2860 2861What's new in Sudo 1.8.4p5? 2862 2863 * Fixed a bug when matching against an IP address with an associated 2864 netmask in the sudoers file. In certain circumstances, this 2865 could allow users to run commands on hosts they are not authorized 2866 for. 2867 2868What's new in Sudo 1.8.4p4? 2869 2870 * Fixed a bug introduced in Sudo 1.8.4 which prevented "sudo -v" 2871 from working. 2872 2873What's new in Sudo 1.8.4p3? 2874 2875 * Fixed a crash on FreeBSD when no tty is present. 2876 2877 * Fixed a bug introduced in Sudo 1.8.4 that allowed users to 2878 specify environment variables to set on the command line without 2879 having sudo "ALL" permissions or the "SETENV" tag. 2880 2881 * When visudo is run with the -c (check) option, the sudoers 2882 file(s) owner and mode are now also checked unless the -f option 2883 was specified. 2884 2885What's new in Sudo 1.8.4p2? 2886 2887 * Fixed a bug introduced in Sudo 1.8.4 where insufficient space 2888 was allocated for group IDs in the LDAP filter. 2889 2890 * Fixed a bug introduced in Sudo 1.8.4 where the path to sudo.conf 2891 was "/sudo.conf" instead of "/etc/sudo.conf". 2892 2893 * Fixed a bug introduced in Sudo 1.8.4 which could cause a hang 2894 when I/O logging is enabled and input is from a pipe or file. 2895 2896What's new in Sudo 1.8.4p1? 2897 2898 * Fixed a bug introduced in sudo 1.8.4 that broke adding to or 2899 deleting from the env_keep, env_check and env_delete lists in 2900 sudoers on some platforms. 2901 2902What's new in Sudo 1.8.4? 2903 2904 * The -D flag in sudo has been replaced with a more general debugging 2905 framework that is configured in sudo.conf. 2906 2907 * Fixed a false positive in visudo strict mode when aliases are 2908 in use. 2909 2910 * Fixed a crash with "sudo -i" when a runas group was specified 2911 without a runas user. 2912 2913 * The line on which a syntax error is reported in the sudoers file 2914 is now more accurate. Previously it was often off by a line. 2915 2916 * Fixed a bug where stack garbage could be printed at the end of 2917 the lecture when the "lecture_file" option was enabled. 2918 2919 * "make install" now honors the LINGUAS environment variable. 2920 2921 * The #include and #includedir directives in sudoers now support 2922 relative paths. If the path is not fully qualified it is expected 2923 to be located in the same directory of the sudoers file that is 2924 including it. 2925 2926 * Serbian and Spanish translations for sudo from translationproject.org. 2927 2928 * LDAP-based sudoers may now access by group ID in addition to 2929 group name. 2930 2931 * visudo will now fix the mode on the sudoers file even if no changes 2932 are made unless the -f option is specified. 2933 2934 * The "use_loginclass" sudoers option works properly again. 2935 2936 * On systems that use login.conf, "sudo -i" now sets environment 2937 variables based on login.conf. 2938 2939 * For LDAP-based sudoers, values in the search expression are now 2940 escaped as per RFC 4515. 2941 2942 * The plugin close function is now properly called when a login 2943 session is killed (as opposed to the actual command being killed). 2944 This can happen when an ssh session is disconnected or the 2945 terminal window is closed. 2946 2947 * The deprecated "noexec_file" sudoers option is no longer supported. 2948 2949 * Fixed a race condition when I/O logging is not enabled that could 2950 result in tty-generated signals (e.g. control-C) being received 2951 by the command twice. 2952 2953 * If none of the standard input, output or error are connected to 2954 a tty device, sudo will now check its parent's standard input, 2955 output or error for the tty name on systems with /proc and BSD 2956 systems that support the KERN_PROC_PID sysctl. This allows 2957 tty-based tickets to work properly even when, e.g. standard 2958 input, output and error are redirected to /dev/null. 2959 2960 * Added the --enable-kerb5-instance configure option to allow 2961 people using Kerberos V authentication to specify a custom 2962 instance so the principal name can be, e.g. "username/sudo" 2963 similar to how ksu uses "username/root". 2964 2965 * Fixed a bug where a pattern like "/usr/*" included /usr/bin/ in 2966 the results, which would be incorrectly be interpreted as if the 2967 sudoers file had specified a directory. 2968 2969 * "visudo -c" will now list any include files that were checked 2970 in addition to the main sudoers file when everything parses OK. 2971 2972 * Users that only have read-only access to the sudoers file may 2973 now run "visudo -c". Previously, write permissions were required 2974 even though no writing is down in check-only mode. 2975 2976 * It is now possible to prevent the disabling of core dumps from 2977 within sudo itself by adding a line to the sudo.conf file like 2978 "Set disable_coredump false". 2979 2980What's new in Sudo 1.8.3p2? 2981 2982 * Fixed a format string vulnerability when the sudo binary (or a 2983 symbolic link to the sudo binary) contains printf format escapes 2984 and the -D (debugging) flag is used. 2985 2986What's new in Sudo 1.8.3p1? 2987 2988 * Fixed a crash in the monitor process on Solaris when NOPASSWD 2989 was specified or when authentication was disabled. 2990 2991 * Fixed matching of a Runas_Alias in the group section of a 2992 Runas_Spec. 2993 2994What's new in Sudo 1.8.3? 2995 2996 * Fixed expansion of strftime() escape sequences in the "log_dir" 2997 sudoers setting. 2998 2999 * Esperanto, Italian and Japanese translations from translationproject.org. 3000 3001 * Sudo will now use PAM by default on AIX 6 and higher. 3002 3003 * Added --enable-werror configure option for gcc's -Werror flag. 3004 3005 * Visudo no longer assumes all editors support the +linenumber 3006 command line argument. It now uses a allowlist of editors known 3007 to support the option. 3008 3009 * Fixed matching of network addresses when a netmask is specified 3010 but the address is not the first one in the CIDR block. 3011 3012 * The configure script now check whether or not errno.h declares 3013 the errno variable. Previously, sudo would always declare errno 3014 itself for older systems that don't declare it in errno.h. 3015 3016 * The NOPASSWD tag is now honored for denied commands too, which 3017 matches historic sudo behavior (prior to sudo 1.7.0). 3018 3019 * Sudo now honors the "DEREF" setting in ldap.conf which controls 3020 how alias dereferencing is done during an LDAP search. 3021 3022 * A symbol conflict with the pam_ssh_agent_auth PAM module that 3023 would cause a crash been resolved. 3024 3025 * The inability to load a group provider plugin is no longer 3026 a fatal error. 3027 3028 * A potential crash in the utmp handling code has been fixed. 3029 3030 * Two PAM session issues have been resolved. In previous versions 3031 of sudo, the PAM session was opened as one user and closed as 3032 another. Additionally, if no authentication was performed, the 3033 PAM session would never be closed. 3034 3035 * Sudo will now work correctly with LDAP-based sudoers using TLS 3036 or SSL on Debian systems. 3037 3038 * The LOGNAME, USER and USERNAME environment variables are preserved 3039 correctly again in sudoedit mode. 3040 3041What's new in Sudo 1.8.2? 3042 3043 * Sudo, visudo, sudoreplay and the sudoers plug-in now have natural 3044 language support (NLS). This can be disabled by passing configure 3045 the --disable-nls option. Sudo will use gettext(), if available, 3046 to display translated messages. All translations are coordinated 3047 via The Translation Project, http://translationproject.org/. 3048 3049 * Plug-ins are now loaded with the RTLD_GLOBAL flag instead of 3050 RTLD_LOCAL. This fixes missing symbol problems in PAM modules 3051 on certain platforms, such as FreeBSD and SuSE Linux Enterprise. 3052 3053 * I/O logging is now supported for commands run in background mode 3054 (using sudo's -b flag). 3055 3056 * Group ownership of the sudoers file is now only enforced when 3057 the file mode on sudoers allows group readability or writability. 3058 3059 * Visudo now checks the contents of an alias and warns about cycles 3060 when the alias is expanded. 3061 3062 * If the user specifies a group via sudo's -g option that matches 3063 the target user's group in the password database, it is now 3064 allowed even if no groups are present in the Runas_Spec. 3065 3066 * The sudo Makefiles now have more complete dependencies which are 3067 automatically generated instead of being maintained manually. 3068 3069 * The "use_pty" sudoers option is now correctly passed back to the 3070 sudo front end. This was missing in previous versions of sudo 3071 1.8 which prevented "use_pty" from being honored. 3072 3073 * "sudo -i command" now works correctly with the bash version 3074 2.0 and higher. Previously, the .bash_profile would not be 3075 sourced prior to running the command unless bash was built with 3076 NON_INTERACTIVE_LOGIN_SHELLS defined. 3077 3078 * When matching groups in the sudoers file, sudo will now match 3079 based on the name of the group instead of the group ID. This can 3080 substantially reduce the number of group lookups for sudoers 3081 files that contain a large number of groups. 3082 3083 * Multi-factor authentication is now supported on AIX. 3084 3085 * Added support for non-RFC 4517 compliant LDAP servers that require 3086 that seconds be present in a timestamp, such as Tivoli Directory Server. 3087 3088 * If the group vector is to be preserved, the PATH search for the 3089 command is now done with the user's original group vector. 3090 3091 * For LDAP-based sudoers, the "runas_default" sudoOption now works 3092 properly in a sudoRole that contains a sudoCommand. 3093 3094 * Spaces in command line arguments for "sudo -s" and "sudo -i" are 3095 now escaped with a backslash when checking the security policy. 3096 3097What's new in Sudo 1.8.1p2? 3098 3099 * Two-character CIDR-style IPv4 netmasks are now matched correctly 3100 in the sudoers file. 3101 3102 * A build error with MIT Kerberos V has been resolved. 3103 3104 * A crash on HP-UX in the sudoers plugin when wildcards are 3105 present in the sudoers file has been resolved. 3106 3107 * Sudo now works correctly on Tru64 Unix again. 3108 3109What's new in Sudo 1.8.1p1? 3110 3111 * Fixed a problem on AIX where sudo was unable to set the final 3112 UID if the PAM module modified the effective UID. 3113 3114 * A non-existent includedir is now treated the same as an empty 3115 directory and not reported as an error. 3116 3117 * Removed extraneous parens in LDAP filter when sudoers_search_filter 3118 is enabled that can cause an LDAP search error. 3119 3120 * Fixed a "make -j" problem for "make install". 3121 3122What's new in Sudo 1.8.1? 3123 3124 * A new LDAP setting, sudoers_search_filter, has been added to 3125 ldap.conf. This setting can be used to restrict the set of 3126 records returned by the LDAP query. Based on changes from Matthew 3127 Thomas. 3128 3129 * White space is now permitted within a User_List when used in 3130 conjunction with a per-user Defaults definition. 3131 3132 * A group ID (%#GID) may now be specified in a User_List or Runas_List. 3133 Likewise, for non-Unix groups the syntax is %:#GID. 3134 3135 * Support for double-quoted words in the sudoers file has been fixed. 3136 The change in 1.7.5 for escaping the double quote character 3137 caused the double quoting to only be available at the beginning 3138 of an entry. 3139 3140 * The fix for resuming a suspended shell in 1.7.5 caused problems 3141 with resuming non-shells on Linux. Sudo will now save the process 3142 group ID of the program it is running on suspend and restore it 3143 when resuming, which fixes both problems. 3144 3145 * A bug that could result in corrupted output in "sudo -l" has been 3146 fixed. 3147 3148 * Sudo will now create an entry in the utmp (or utmpx) file when 3149 allocating a pseudo-tty (e.g. when logging I/O). The "set_utmp" 3150 and "utmp_runas" sudoers file options can be used to control this. 3151 Other policy plugins may use the "set_utmp" and "utmp_user" 3152 entries in the command_info list. 3153 3154 * The sudoers policy now stores the TSID field in the logs 3155 even when the "iolog_file" sudoers option is defined to a value 3156 other than %{sessid}. Previously, the TSID field was only 3157 included in the log file when the "iolog_file" option was set 3158 to its default value. 3159 3160 * The sudoreplay utility now supports arbitrary session IDs. 3161 Previously, it would only work with the base-36 session IDs 3162 that the sudoers plugin uses by default. 3163 3164 * Sudo now passes "run_shell=true" to the policy plugin in the 3165 settings list when sudo's -s command line option is specified. 3166 The sudoers policy plugin uses this to implement the "set_home" 3167 sudoers option which was missing from sudo 1.8.0. 3168 3169 * The "noexec" functionality has been moved out of the sudoers 3170 policy plugin and into the sudo front-end, which matches the 3171 behavior documented in the plugin writer's guide. As a result, 3172 the path to the noexec file is now specified in the sudo.conf 3173 file instead of the sudoers file. 3174 3175 * On Solaris 10, the PRIV_PROC_EXEC privilege is now used to 3176 implement the "noexec" feature. Previously, this was implemented 3177 via the LD_PRELOAD environment variable. 3178 3179 * The exit values for "sudo -l", "sudo -v" and "sudo -l command" 3180 have been fixed in the sudoers policy plugin. 3181 3182 * The sudoers policy plugin now passes the login class, if any, 3183 back to the sudo front-end. 3184 3185 * The sudoers policy plugin was not being linked with requisite 3186 libraries in certain configurations. 3187 3188 * Sudo now parses command line arguments before loading any plugins. 3189 This allows "sudo -V" or "sudo -h" to work even if there is a problem 3190 with sudo.conf 3191 3192 * Plugins are now linked with the static version of libgcc to allow 3193 the plugin to run on a system where no shared libgcc is installed, 3194 or where it is installed in a different location. 3195 3196What's new in Sudo 1.8.0? 3197 3198 * Sudo has been refactored to use a modular framework that can 3199 support third-party policy and I/O logging plugins. The default 3200 plugin is "sudoers" which provides the traditional sudo functionality. 3201 See the sudo_plugin manual for details on the plugin API and the 3202 sample in the plugins directory for a simple example. 3203 3204What's new in Sudo 1.7.5? 3205 3206 * When using visudo in check mode, a file named "-" may be used to 3207 check sudoers data on the standard input. 3208 3209 * Sudo now only fetches shadow password entries when using the 3210 password database directly for authentication. 3211 3212 * Password and group entries are now cached using the same key 3213 that was used to look them up. This fixes a problem when looking 3214 up entries by name if the name in the retrieved entry does not 3215 match the name used to look it up. This may happen on some systems 3216 that do case insensitive lookups or that truncate long names. 3217 3218 * GCC will no longer display warnings on glibc systems that use 3219 the warn_unused_result attribute for write(2) and other system calls. 3220 3221 * If a PAM account management module denies access, sudo now prints 3222 a more useful error message and stops trying to validate the user. 3223 3224 * Fixed a potential hang on idle systems when the sudo-run process 3225 exits immediately. 3226 3227 * Sudo now includes a copy of zlib that will be used on systems 3228 that do not have zlib installed. 3229 3230 * The --with-umask-override configure flag has been added to enable 3231 the "umask_override" sudoers Defaults option at build time. 3232 3233 * Sudo now unblocks all signals on startup to avoid problems caused 3234 by the parent process changing the default signal mask. 3235 3236 * LDAP Sudoers entries may now specify a time period for which 3237 the entry is valid. This requires an updated sudoers schema 3238 that includes the sudoNotBefore and sudoNotAfter attributes. 3239 Support for timed entries must be explicitly enabled in the 3240 ldap.conf file. Based on changes from Andreas Mueller. 3241 3242 * LDAP Sudoers entries may now specify a sudoOrder attribute that 3243 determines the order in which matching entries are applied. The 3244 last matching entry is used, just like file-based sudoers. This 3245 requires an updated sudoers schema that includes the sudoOrder 3246 attribute. Based on changes from Andreas Mueller. 3247 3248 * When run as sudoedit, or when given the -e flag, sudo now treats 3249 command line arguments as pathnames. This means that slashes 3250 in the sudoers file entry must explicitly match slashes in 3251 the command line arguments. As a result, and entry such as: 3252 user ALL = sudoedit /etc/* 3253 will allow editing of /etc/motd but not /etc/security/default. 3254 3255 * NETWORK_TIMEOUT is now an alias for BIND_TIMELIMIT in ldap.conf for 3256 compatibility with OpenLDAP configuration files. 3257 3258 * The LDAP API TIMEOUT parameter is now honored in ldap.conf. 3259 3260 * The I/O log directory may now be specified in the sudoers file. 3261 3262 * Sudo will no longer refuse to run if the sudoers file is writable 3263 by root. 3264 3265 * Sudo now performs command line escaping for "sudo -s" and "sudo -i" 3266 after validating the command so the sudoers entries do not need 3267 to include the backslashes. 3268 3269 * Logging and email sending are now done in the locale specified 3270 by the "sudoers_locale" setting ("C" by default). Email send by 3271 sudo now includes MIME headers when "sudoers_locale" is not "C". 3272 3273 * The configure script has a new option, --disable-env-reset, to 3274 allow one to change the default for the sudoers Default setting 3275 "env_reset" at compile time. 3276 3277 * When logging "sudo -l command", sudo will now prepend "list " 3278 to the command in the log line to distinguish between an 3279 actual command invocation in the logs. 3280 3281 * Double-quoted group and user names may now include escaped double 3282 quotes as part of the name. Previously this was a parse error. 3283 3284 * Sudo once again restores the state of the signal handlers it 3285 modifies before executing the command. This allows sudo to be 3286 used with the nohup command. 3287 3288 * Resuming a suspended shell now works properly when I/O logging 3289 is not enabled (the I/O logging case was already correct). 3290 3291What's new in Sudo 1.7.4p6? 3292 3293 * A bug has been fixed in the I/O logging support that could cause 3294 visual artifacts in full-screen programs such as text editors. 3295 3296What's new in Sudo 1.7.4p5? 3297 3298 * A bug has been fixed that would allow a command to be run without the 3299 user entering a password when sudo's -g flag is used without the -u flag. 3300 3301 * If user has no supplementary groups, sudo will now fall back on checking 3302 the group file explicitly, which restores historic sudo behavior. 3303 3304 * A crash has been fixed when sudo's -g flag is used without the -u flag 3305 and the sudoers file contains an entry with no runas user or group listed. 3306 3307 * A crash has been fixed when the Solaris project support is enabled 3308 and sudo's -g flag is used without the -u flag. 3309 3310 * Sudo no longer exits with an error when support for auditing is 3311 compiled in but auditing is not enabled. 3312 3313 * Fixed a bug introduced in sudo 1.7.3 where the ticket file was not 3314 being honored when the "targetpw" sudoers Defaults option was enabled. 3315 3316 * The LOG_INPUT and LOG_OUTPUT tags in sudoers are now parsed correctly. 3317 3318 * A crash has been fixed in "sudo -l" when sudo is built with auditing 3319 support and the user is not allowed to run any commands on the host. 3320 3321What's new in Sudo 1.7.4p4? 3322 3323 * A potential security issue has been fixed with respect to the handling 3324 of sudo's -g command line option when -u is also specified. The flaw 3325 may allow an attacker to run commands as a user that is not authorized 3326 by the sudoers file. 3327 3328 * A bug has been fixed where "sudo -l" output was incomplete if multiple 3329 sudoers sources were defined in nsswitch.conf and there was an error 3330 querying one of the sources. 3331 3332 * The log_input, log_output, and use_pty sudoers options now work correctly 3333 on AIX. Previously, sudo would hang if they were enabled. 3334 3335 * The "make install" target now works correctly when sudo is built in a 3336 directory other than the source directory. 3337 3338 * The "runas_default" sudoers setting now works properly in a per-command 3339 Defaults line. 3340 3341 * Suspending and resuming the bash shell when PAM is in use now works 3342 correctly. The SIGCONT signal was not propagated to the child process. 3343 3344What's new in Sudo 1.7.4p3? 3345 3346 * A bug has been fixed where duplicate HOME environment variables could be 3347 present when the env_reset setting was disabled and the always_set_home 3348 setting was enabled in sudoers. 3349 3350 * The value of sysconfdir is now substituted into the path to the sudoers.d 3351 directory in the installed sudoers file. 3352 3353 * Compilation problems on IRIX and other platforms have been fixed. 3354 3355 * If multiple PAM "auth" actions are specified and the user enters ^C at 3356 the password prompt, sudo will no longer prompt for a password for any 3357 subsequent "auth" actions. Previously it was necessary to enter ^C for 3358 each "auth" action. 3359 3360What's new in Sudo 1.7.4p2? 3361 3362 * A bug where sudo could spin in a busy loop waiting for the child process 3363 has been fixed. 3364 3365What's new in Sudo 1.7.4p1? 3366 3367 * A bug introduced in sudo 1.7.3 that prevented the -k and -K options from 3368 functioning when the tty_tickets sudoers option is enabled has been fixed. 3369 3370 * Sudo no longer prints a warning when the -k or -K options are specified 3371 and the ticket file does not exist. 3372 3373 * It is now easier to cross-compile sudo. 3374 3375What's new in Sudo 1.7.4? 3376 3377 * Sudoedit will now preserve the file extension in the name of the 3378 temporary file being edited. The extension is used by some 3379 editors (such as emacs) to choose the editing mode. 3380 3381 * Time stamp files have moved from /var/run/sudo to either /var/db/sudo, 3382 /var/lib/sudo or /var/adm/sudo. The directories are checked for 3383 existence in that order. This prevents users from receiving the 3384 sudo lecture every time the system reboots. Time stamp files older 3385 than the boot time are ignored on systems where it is possible to 3386 determine this. 3387 3388 * The tty_tickets sudoers option is now enabled by default. 3389 3390 * Ancillary documentation (README files, LICENSE, etc) is now installed 3391 in a sudo documentation directory. 3392 3393 * Sudo now recognizes "tls_cacert" as an alias for "tls_cacertfile" 3394 in ldap.conf. 3395 3396 * Defaults settings that are tied to a user, host or command may 3397 now include the negation operator. For example: 3398 Defaults:!millert lecture 3399 will match any user but millert. 3400 3401 * The default PATH environment variable, used when no PATH variable 3402 exists, now includes /usr/sbin and /sbin. 3403 3404 * Sudo now uses polypkg (http://rc.quest.com/topics/polypkg/) 3405 for cross-platform packing. 3406 3407 * On Linux, sudo will now restore the nproc resource limit before 3408 executing a command, unless the limit appears to have been modified 3409 by pam_limits. This avoids a problem with bash scripts that open 3410 more than 32 descriptors on SuSE Linux, where sysconf(_SC_CHILD_MAX) 3411 will return -1 when RLIMIT_NPROC is set to RLIMIT_UNLIMITED (-1). 3412 3413 * The HOME and MAIL environment variables are now reset based on the 3414 target user's password database entry when the env_reset sudoers option 3415 is enabled (which is the case in the default configuration). Users 3416 wishing to preserve the original values should use a sudoers entry like: 3417 Defaults env_keep += HOME 3418 to preserve the old value of HOME and 3419 Defaults env_keep += MAIL 3420 to preserve the old value of MAIL. 3421 3422 * Fixed a problem in the restoration of the AIX authdb registry setting. 3423 3424 * Sudo will now fork(2) and wait until the command has completed before 3425 calling pam_close_session(). 3426 3427 * The default syslog facility is now "authpriv" if the operating system 3428 supports it, else "auth". 3429 3430What's new in Sudo 1.7.3? 3431 3432 * Support for logging I/O for the command being run. 3433 For more information, see the documentation for the "log_input" 3434 and "log_output" Defaults options in the sudoers manual. Also 3435 see the sudoreplay manual for how to replay I/O log sessions. 3436 3437 * The use_pty sudoers option can be used to force a command to be 3438 run in a pseudo-pty, even when I/O logging is not enabled. 3439 3440 * On some systems, sudo can now detect when a user has logged out 3441 and back in again when tty-based time stamps are in use. Supported 3442 systems include Solaris systems with the devices file system, 3443 Mac OS X, and Linux systems with the devpts filesystem (pseudo-ttys 3444 only). 3445 3446 * On AIX systems, the registry setting in /etc/security/user is 3447 now taken into account when looking up users and groups. Sudo 3448 now applies the correct the user and group ids when running a 3449 command as a user whose account details come from a different 3450 source (e.g. LDAP or DCE vs. local files). 3451 3452 * Support for multiple 'sudoers_base' and 'uri' entries in ldap.conf. 3453 When multiple entries are listed, sudo will try each one in the 3454 order in which they are specified. 3455 3456 * Sudo's SELinux support should now function correctly when running 3457 commands as a non-root user and when one of stdin, stdout or stderr 3458 is not a terminal. 3459 3460 * Sudo will now use the Linux audit system with configure with 3461 the --with-linux-audit flag. 3462 3463 * Sudo now uses mbr_check_membership() on systems that support it 3464 to determine group membership. Currently, only Darwin (Mac OS X) 3465 supports this. 3466 3467 * When the tty_tickets sudoers option is enabled but there is no 3468 terminal device, sudo will no longer use or create a tty-based 3469 ticket file. Previously, sudo would use a tty name of "unknown". 3470 As a consequence, if a user has no terminal device, sudo will 3471 now always prompt for a password. 3472 3473 * The passwd_timeout and timestamp_timeout options may now be 3474 specified as floating point numbers for more granular timeout 3475 values. 3476 3477 * Negating the fqdn option in sudoers now works correctly when sudo 3478 is configured with the --with-fqdn option. In previous versions 3479 of sudo the fqdn was set before sudoers was parsed. 3480 3481What's new in Sudo 1.7.2? 3482 3483 * A new #includedir directive is available in sudoers. This can be 3484 used to implement an /etc/sudo.d directory. Files in an includedir 3485 are not edited by visudo unless they contain a syntax error. 3486 3487 * The -g option did not work properly when only setting the group 3488 (and not the user). Also, in -l mode the wrong user was displayed 3489 for sudoers entries where only the group was allowed to be set. 3490 3491 * Fixed a problem with the alias checking in visudo which 3492 could prevent visudo from exiting. 3493 3494 * Sudo will now correctly parse the shell-style /etc/environment 3495 file format used by pam_env on Linux. 3496 3497 * When doing password and group database lookups, sudo will only 3498 cache an entry by name or by id, depending on how the entry was 3499 looked up. Previously, sudo would cache by both name and id 3500 from a single lookup, but this breaks sites that have multiple 3501 password or group database names that map to the same UID or 3502 GID. 3503 3504 * User and group names in sudoers may now be enclosed in double 3505 quotes to avoid having to escape special characters. 3506 3507 * BSM audit fixes when changing to a non-root UID. 3508 3509 * Experimental non-Unix group support. Currently only works with 3510 Quest Authorization Services and allows Active Directory groups 3511 fixes for Minix-3. 3512 3513 * For Netscape/Mozilla-derived LDAP SDKs the certificate and key 3514 paths may be specified as a directory or a file. However, version 3515 5.0 of the SDK only appears to support using a directory (despite 3516 documentation to the contrary). If SSL client initialization 3517 fails and the certificate or key paths look like they could be 3518 default file name, strip off the last path element and try again. 3519 3520 * A setenv() compatibility fix for Linux systems, where a NULL 3521 value is treated the same as an empty string and the variable 3522 name is checked against the NULL pointer. 3523 3524What's new in Sudo 1.7.1? 3525 3526 * A new Defaults option "pwfeedback" will cause sudo to provide visual 3527 feedback when the user is entering a password. 3528 3529 * A new Defaults option "fast_glob" will cause sudo to use the fnmatch() 3530 function for file name globbing instead of glob(). When this option 3531 is enabled, sudo will not check the file system when expanding wildcards. 3532 This is faster but a side effect is that relative paths with wildcard 3533 will no longer work. 3534 3535 * New BSM audit support for systems that support it such as FreeBSD 3536 and Mac OS X. 3537 3538 * The file name specified with the #include directive may now include 3539 a %h escape which is expanded to the short form of hostname. 3540 3541 * The -k flag may now be specified along with a command, causing the 3542 user's timestamp file to be ignored. 3543 3544 * New support for Tivoli-based LDAP START_TLS, present in AIX. 3545 3546 * New support for /etc/netsvc.conf on AIX. 3547 3548 * The unused alias checks in visudo now handle the case of an alias 3549 referring to another alias. 3550 3551What's new in Sudo 1.7.0? 3552 3553 * Rewritten parser that converts sudoers into a set of data structures. 3554 This eliminates a number of ordering issues and makes it possible to 3555 apply sudoers Defaults entries before searching for the command. 3556 It also adds support for per-command Defaults specifications. 3557 3558 * Sudoers now supports a #include facility to allow the inclusion of other 3559 sudoers-format files. 3560 3561 * Sudo's -l (list) flag has been enhanced: 3562 o applicable Defaults options are now listed 3563 o a command argument can be specified for testing whether a user 3564 may run a specific command. 3565 o a new -U flag can be used in conjunction with "sudo -l" to allow 3566 root (or a user with "sudo ALL") list another user's privileges. 3567 3568 * A new -g flag has been added to allow the user to specify a 3569 primary group to run the command as. The sudoers syntax has been 3570 extended to include a group section in the Runas specification. 3571 3572 * A UID may now be used anywhere a username is valid. 3573 3574 * The "secure_path" run-time Defaults option has been restored. 3575 3576 * Password and group data is now cached for fast lookups. 3577 3578 * The file descriptor at which sudo starts closing all open files is now 3579 configurable via sudoers and, optionally, the command line. 3580 3581 * Visudo will now warn about aliases that are defined but not used. 3582 3583 * The -i and -s command line flags now take an optional command 3584 to be run via the shell. Previously, the argument was passed 3585 to the shell as a script to run. 3586 3587 * Improved LDAP support. SASL authentication may now be used in 3588 conjunction when connecting to an LDAP server. The krb5_ccname 3589 parameter in ldap.conf may be used to enable Kerberos. 3590 3591 * Support for /etc/nsswitch.conf. LDAP users may now use nsswitch.conf 3592 to specify the sudoers order. E.g.: 3593 sudoers: ldap files 3594 to check LDAP, then /etc/sudoers. The default is "files", even 3595 when LDAP support is compiled in. This differs from sudo 1.6 3596 where LDAP was always consulted first. 3597 3598 * Support for /etc/environment on AIX and Linux. If sudo is run 3599 with the -i flag, the contents of /etc/environment are used to 3600 populate the new environment that is passed to the command being 3601 run. 3602 3603 * If no terminal is available or if the new -A flag is specified, 3604 sudo will use a helper program to read the password if one is 3605 configured. Typically, this is a graphical password prompter 3606 such as ssh-askpass. 3607 3608 * A new Defaults option, "mailfrom" that sets the value of the 3609 "From:" field in the warning/error mail. If unspecified, the 3610 login name of the invoking user is used. 3611 3612 * A new Defaults option, "env_file" that refers to a file containing 3613 environment variables to be set in the command being run. 3614 3615 * A new flag, -n, may be used to indicate that sudo should not 3616 prompt the user for a password and, instead, exit with an error 3617 if authentication is required. 3618 3619 * If sudo needs to prompt for a password and it is unable to disable 3620 echo (and no askpass program is defined), it will refuse to run 3621 unless the "visiblepw" Defaults option has been specified. 3622 3623 * Prior to version 1.7.0, hitting enter/return at the Password: prompt 3624 would exit sudo. In sudo 1.7.0 and beyond, this is treated as 3625 an empty password. To exit sudo, the user must press ^C or ^D 3626 at the prompt. 3627 3628 * visudo will now check the sudoers file owner and mode in -c (check) 3629 mode when the -s (strict) flag is specified. 3630 3631 * A new Defaults option "umask_override" will cause sudo to set the 3632 umask specified in sudoers even if it is more permissive than the 3633 invoking user's umask. 3634