Skip to main content

set_groups

Function set_groups 

Source
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 de NGROUPS_MAX (65536) groupes (validé en amont).
  • [Errno::EPERM] : CAP_SETGID absent.
  • [Errno::EFAULT] : groups hors 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");