rust/library/std/src
Matthias Krüger eaa8dafe1a
Rollup merge of #121650 - GrigorenkoPV:cap_setgid, r=Amanieu
change std::process to drop supplementary groups based on CAP_SETGID

A trivial rebase of #95982

Should fix #39186 (from what I can tell)

Original description:

> Fixes #88716
>
> * Before this change, when a process was given a uid via `std::os::unix::process::CommandExt.uid`, there would be a `setgroups` call (when the process runs) to clear supplementary groups for the child **if the parent was root** (to remove potentially unwanted permissions).
> * After this change, supplementary groups are cleared if we have permission to do so, that is, if we have the CAP_SETGID capability.
>
> This new behavior was agreed upon in #88716 but there was a bit of uncertainty from `@Amanieu` here: [#88716 (comment)](https://github.com/rust-lang/rust/issues/88716#issuecomment-973366600)
>
> > I agree with this change, but is it really necessary to ignore an EPERM from setgroups? If you have permissions to change UID then you should also have permissions to change groups. I would feel more comfortable if we documented set_uid as requiring both UID and GID changing permissions.
>
> The way I've currently written it, we ignore an EPERM as that's what #88716 originally suggested. I'm not at all an expert in any of this so I'd appreciate feedback on whether that was the right way to go.
2024-03-14 20:00:17 +01:00
..
backtrace remove redundant imports 2023-12-10 10:56:22 +08:00
collections Add rustc_confusables annotations to some stdlib APIs 2024-02-22 18:04:55 +00:00
env remove redundant imports 2023-12-10 10:56:22 +08:00
error core/any: remove Provider trait 2023-08-13 13:07:53 -06:00
f32 Add gamma and ln_gamma functions to f32 and f64 2023-07-31 07:41:50 -07:00
f64 Add gamma and ln_gamma functions to f32 and f64 2023-07-31 07:41:50 -07:00
ffi Rollup merge of #112136 - clarfonthey:ffi-c_str, r=cuviper 2024-03-10 10:58:14 +01:00
fs Implement junction_point 2024-02-27 19:27:09 -03:00
hash update version placeholders 2023-12-22 11:01:42 +01:00
io Rollup merge of #122276 - RalfJung:io-read, r=Nilstrieb 2024-03-10 22:16:42 +01:00
net fix close_read_wakes_up test 2024-03-06 18:01:09 +01:00
num removed nonfunctioning benchmark 2024-01-11 11:30:12 -05:00
os Rollup merge of #121650 - GrigorenkoPV:cap_setgid, r=Amanieu 2024-03-14 20:00:17 +01:00
panic review: fix nits and move panic safety tests to the correct place 2020-09-25 23:10:24 +02:00
path remove redundant imports 2023-12-10 10:56:22 +08:00
prelude Add Future and IntoFuture to the 2024 prelude 2024-02-18 23:20:05 +01:00
process Rollup merge of #114379 - RalfJung:command-removed-env-vars, r=m-ou-se 2023-09-22 12:15:25 +02:00
sync Rollup merge of #122386 - joboet:move_pal_once, r=jhpratt 2024-03-13 06:41:24 +01:00
sys Rollup merge of #121650 - GrigorenkoPV:cap_setgid, r=Amanieu 2024-03-14 20:00:17 +01:00
sys_common std: move Once implementations to sys 2024-03-12 15:41:06 +01:00
thread Auto merge of #122113 - matthiaskrgr:rollup-5d1jnwi, r=matthiaskrgr 2024-03-07 02:30:40 +00:00
time Rollup merge of #103056 - beetrees:timespec-bug-fix, r=thomcc 2023-05-05 18:40:32 +05:30
alloc.rs libs: use assert_unchecked instead of intrinsic 2024-01-13 20:10:00 +01:00
ascii.rs Add the basic ascii::Char type 2023-05-03 22:09:33 -07:00
backtrace.rs rename ptr::invalid -> ptr::without_provenance 2024-02-21 20:15:52 +01:00
env.rs Remove doc aliases to PATH 2024-02-29 14:28:47 -05:00
error.rs Clean dead codes 2023-11-26 09:25:07 +08:00
f32.rs Use the guaranteed precision of a couple of float functions in docs 2024-03-01 18:57:42 +01:00
f64.rs Use the guaranteed precision of a couple of float functions in docs 2024-03-01 18:57:42 +01:00
fs.rs Rollup merge of #121403 - kornelski:io-oom, r=dtolnay 2024-03-09 21:40:07 +01:00
keyword_docs.rs docs: Add example, reference link for type keyword. 2023-08-21 20:00:43 +07:00
lib.rs Use min_exhaustive_patterns in core & std 2024-03-12 08:20:46 +01:00
macros.rs added column number to dbg!() 2023-12-12 18:12:23 +08:00
num.rs Switch NonZero alias direction. 2024-01-27 16:38:57 +01:00
panic.rs Implement unwind safety for Condvar 2024-02-28 14:56:36 -08:00
panicking.rs rename 'try' intrinsic to 'catch_unwind' 2024-02-26 11:10:18 +01:00
path.rs Rollup merge of #120051 - riverbl:os-str-display, r=m-ou-se 2024-02-28 16:04:49 +01:00
process.rs Use generic NonZero everywhere in std. 2024-02-22 15:17:33 +01:00
rt.rs Cfg remove lang items in doctest 2023-12-15 16:17:28 +00:00
time.rs Rust is a proper name: rust → Rust 2024-03-07 07:49:22 +01:00