pub fn set_groups(groups: &[Gid]) -> Result<(), Errno>Expand description
Remplace la liste des groupes supplémentaires du processus (setgroups).
Pour une réduction de privilèges, passer &[] (largage total) tant qu’on
est privilégié : la liste vide est la valeur normale du privsep, pas une
sentinelle. Le layout de &[Gid] coïncide avec &[gid_t] (Gid est
#[repr(transparent)]), donc aucune copie n’est nécessaire.
§Errors
- [
Errno::EINVAL] : plus deNGROUPS_MAX(65536) groupes (validé en amont). - [
Errno::EPERM] :CAP_SETGIDabsent. - [
Errno::EFAULT] :groupshors de l’espace d’adressage (n’arrive pas avec une tranche Rust valide).
§Examples
use air_sys_syscall::process::set_groups;
// Largage total des groupes supplémentaires (étape d'un privsep).
set_groups(&[]).expect("CAP_SETGID requis");