Skip to content

Commit 2eb0a9c

Browse files
committed
update changelog, version numbers, and regenerate docs
1 parent 50d8dd2 commit 2eb0a9c

12 files changed

Lines changed: 88 additions & 23 deletions

File tree

CHANGELOG.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,29 @@
11
# Changelog
22

3+
## [0.2.15] - 2026-08-31
4+
5+
### Added
6+
- `Defaults !log_allowed` to suppress writing successful command invocations
7+
to the system log. (#1181)
8+
- `Defaults timestamp_type=ppid` to allow tightly binding cached credentials
9+
to the parent process even if a TTY is present. (#1621)
10+
11+
### Changed
12+
- Allow authenticating users that have an empty password set (#1656)
13+
- Environment variables supplied on the command line are now ignored instead
14+
of resulting in an error message when used with `-v`, `-k` or `-K` (#1578)
15+
16+
### Fixed
17+
- sudo used in pipe such as `sudo cmd1 | sudo cmd2` could result in a fight for
18+
control over the TTY used for password input (#1650)
19+
- Groups loaded dynamically (for example by `pam_groups.so`) were not used for
20+
policy judgments (#1660)
21+
- Fixed the error message when `sudo -g` was used with an invalid group (#1628)
22+
- No longer emit a newline after password entry if `-p ''` is used (#1648)
23+
- Tabs were not recognized as argument separators in /etc/sudoers (#1669)
24+
- `sudoedit /path/to/file` restrictions in `/etc/sudoers` could be circumvented
25+
by causing a symlink race (GHSA-f42v-x7gq-phc8)
26+
327
## [0.2.14] - 2026-06-23
428

529
### Added

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "sudo-rs"
33
description = "A memory safe implementation of sudo and su."
4-
version = "0.2.14"
4+
version = "0.2.15"
55
license = "Apache-2.0 OR MIT"
66
edition = "2024"
77
repository = "https://github.com/trifectatechfoundation/sudo-rs"

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,13 +138,13 @@ We recommend installing sudo-rs and su-rs in your `/usr/local` hierarchy so it d
138138
manager of your Linux distribution. You can achieve this using the commands:
139139

140140
```sh
141-
sudo tar -C /usr/local -xvf sudo-0.2.14.tar.gz
141+
sudo tar -C /usr/local -xvf sudo-0.2.15.tar.gz
142142
```
143143

144144
and for su-rs:
145145

146146
```sh
147-
sudo tar -C /usr/local -xvf su-0.2.14.tar.gz
147+
sudo tar -C /usr/local -xvf su-0.2.15.tar.gz
148148
```
149149

150150
This will install sudo-rs and su-rs in `/usr/local/bin` using the usual commands `sudo`, `visudo`, `sudoedit` and `su`. Please double check

docs/man/su.1.man

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
.\" Automatically generated by Pandoc 3.6.3
22
.\"
3-
.TH "SU" "1" "" "sudo\-rs 0.2.14" "sudo\-rs"
3+
.TH "SU" "1" "" "sudo\-rs 0.2.15" "sudo\-rs"
44
.SH NAME
55
\f[CR]su\f[R] \- run a shell or command as another user
66
.SH SYNOPSIS

docs/man/su.1.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: SU(1) sudo-rs 0.2.14 | sudo-rs
2+
title: SU(1) sudo-rs 0.2.15 | sudo-rs
33
---
44

55
# NAME

docs/man/sudo.8.man

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
.\" Automatically generated by Pandoc 3.6.3
22
.\"
3-
.TH "SUDO" "8" "" "sudo\-rs 0.2.14" "sudo\-rs"
3+
.TH "SUDO" "8" "" "sudo\-rs 0.2.15" "sudo\-rs"
44
.SH NAME
55
\f[CR]sudo\f[R], \f[CR]sudoedit\f[R] \- execute a command as another
66
user

docs/man/sudo.8.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: SUDO(8) sudo-rs 0.2.14 | sudo-rs
2+
title: SUDO(8) sudo-rs 0.2.15 | sudo-rs
33
---
44

55
# NAME

docs/man/sudoers.5.man

Lines changed: 53 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
.\" Automatically generated by Pandoc 3.6.3
22
.\"
3-
.TH "SUDOERS" "5" "" "sudo\-rs 0.2.14" "sudo\-rs"
3+
.TH "SUDOERS" "5" "" "sudo\-rs 0.2.15" "sudo\-rs"
44
.SH NAME
55
\f[CR]sudoers\f[R] \- sudo\-compatible security configuration
66
.SH DESCRIPTION
@@ -671,7 +671,7 @@ also present in a different file.
671671
When managing enterprise\-wide sudoers rules, it is sometimes preferable
672672
to store them in a centralized repository.
673673
The \[at]socket directive can be used to include the contents provided
674-
by a server application over a unix domain socket.
674+
by a server application over a Unix domain socket.
675675
For example, providing:
676676
.IP
677677
.EX
@@ -686,16 +686,19 @@ There is, however, one exception: when reading from a socket, the
686686
accepted.
687687
.PP
688688
For security reasons, a user and optionally a group must be given,
689-
enclosed in parentheses and separated by a colon. Users and groups can
690-
be specified either by their name or by their numeric id preceded by a
691-
hash sign (#). When the socket is opened, and before any interaction with
692-
it, sudo will check that the peer process at the other side of the socket
693-
runs as the declared user and group (if the latter was provided). If any
694-
of these conditions fail, the socket is immediately closed and discarded.
689+
enclosed in parentheses and separated by a colon.
690+
Users and groups can be specified either by their name or by their
691+
numeric id preceded by a hash sign (#).
692+
When the socket is opened, and before any interaction with it, sudo will
693+
check that the peer process at the other side of the socket runs as the
694+
declared user and group (if the latter was provided).
695+
If any of these conditions fail, the socket is immediately closed and
696+
discarded.
695697
Only POSIX groups can be used.
696698
.PP
697-
Please note that visudo cannot read from a socket. Furthermore, the
698-
contents retrieved from a socket are considered immutable by sudo.
699+
Please note that visudo cannot read from a socket.
700+
Furthermore, the contents retrieved from a socket are considered
701+
immutable by sudo.
699702
.SS Other special characters and reserved words
700703
The pound sign (`#') is used to indicate a comment (unless it is part of
701704
a #include directive or unless it occurs in the context of a user name
@@ -749,6 +752,14 @@ A list of all supported Defaults parameters, grouped by type, are listed
749752
below.
750753
.SS Boolean Flags:
751754
.IP \[bu] 2
755+
log_allowed
756+
.RS 2
757+
.PP
758+
If set, sudoers will log commands allowed by the policy to the system
759+
log.
760+
This flag is on by default.
761+
.RE
762+
.IP \[bu] 2
752763
noexec
753764
.RS 2
754765
.PP
@@ -759,15 +770,19 @@ shell escapes\f[R] section at the end of this manual.
759770
This flag is off by default.
760771
.RE
761772
.IP \[bu] 2
762-
noninteractive_auth If set, authentication will be attempted even in
763-
non\-interactive mode (when sudo\[cq]s \-n option is specified).
773+
noninteractive_auth
774+
.RS 2
775+
.PP
776+
If set, authentication will be attempted even in non\-interactive mode
777+
(when sudo\[cq]s \-n option is specified).
764778
This allows authentication methods that don\[cq]t require user
765779
interaction to succeed.
766780
Authentication methods that require input from the user\[cq]s terminal
767781
will still fail.
768782
If disabled, authentication will not be attempted in non\-interactive
769783
mode.
770784
This flag is off by default.
785+
.RE
771786
.IP \[bu] 2
772787
env_editor
773788
.RS 2
@@ -917,6 +932,32 @@ The default on Linux is
917932
\f[I]/usr/bin/editor:/usr/bin/nano:/usr/bin/vi\f[R].
918933
On FreeBSD the default is \f[I]/usr/bin/vi\f[R].
919934
.RE
935+
.IP \[bu] 2
936+
timestamp_type
937+
.RS 2
938+
.PP
939+
sudo\-rs uses per\-user timestamp files for credential caching.
940+
The \f[I]timestamp_type\f[R] option can be used to specify the type of
941+
timestamp record used.
942+
It has two possible values: \f[I]tty\f[R] and \f[I]ppid\f[R].
943+
There is no support for a \f[I]global\f[R] or \f[I]kernel\f[R] setting.
944+
.IP \[bu] 2
945+
\f[I]ppid\f[R]: A single timestamp record is used for all processes with
946+
the same parent process ID (usually the shell).
947+
Commands run from the same shell (or other common parent process) will
948+
not require a password while the timestamp is valid (see
949+
\f[I]timestamp_timeout\f[R]).
950+
Commands run via sudo with a different parent process ID, for example
951+
from a shell script, must be authenticated separately.
952+
.IP \[bu] 2
953+
\f[I]tty\f[R]: One timestamp record is used for each terminal, which
954+
means that a user\[cq]s login sessions are authenticated separately.
955+
If no terminal is present, the behavior is the same as \f[I]ppid\f[R].
956+
Commands run from the same terminal will not require a password while
957+
the timestamp is valid.
958+
.PP
959+
The default value is \f[B]tty\f[R].
960+
.RE
920961
.SS Strings that can be used in a boolean context:
921962
.IP \[bu] 2
922963
apparmor_profile

docs/man/sudoers.5.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: SUDOERS(5) sudo-rs 0.2.14 | sudo-rs
2+
title: SUDOERS(5) sudo-rs 0.2.15 | sudo-rs
33
---
44

55
# NAME

0 commit comments

Comments
 (0)