2 votes

Contrôler les autorisations sonores, révoquer l'accès à l'audio

J'aimerais contrôler les autorisations d'utilisation de la carte son. Il y a des périphériques "/dev/snd/*", le propriétaire est "root", le groupe est "audio", les permissions sont "660". Je m'attendrais donc à ce que seuls les utilisateurs du groupe "audio" puissent utiliser la carte son, mais cela ne fonctionne pas. J'ai un utilisateur "u1" qui n'est pas dans le groupe "audio", mais il y a accès ! J'ai découvert que l'accès est contrôlé par l'ACL, donc getfacl montre ce qui suit :

# file: timer
# owner: root
# group: audio
# flags: --t
user::rw-
user:u1:rw-
group::rw-
mask::rw-
other::---

La ligne "user:u1:rw-" réapparaît comme par magie même si je la supprime avec setfacl .

Pour moi, il semble qu'il existe un processus appartenant à la racine qui ajoute automatiquement des autorisations à tout utilisateur ignorant l'appartenance à un groupe "audio".

Pourquoi l'accès est-il accordé ? Comment révoquer l'accès à la carte son pour un utilisateur ?

0voto

girardengo Points 4735

Système de contrôle

Pour activer l'ACL, le système de fichiers doit être monté avec l'option acl.
Il est très probable que l'option ACL soit déjà active en tant qu'option de montage par défaut de votre système de fichiers.
Vérifier le typage (remplacer sdXY par la bonne partition) :

sudo tune2fs -l /dev/sdXY | grep "Default mount options"

le résultat devrait ressembler à quelque chose comme :

Default mount options:    user_xattr acl

Vérifiez également que l'option de montage par défaut n'est pas remplacée. noacl en /proc/mounts dans la ligne concernée. Type :

sudo cat /proc/mounts | grep noacl

Si nécessaire, vous pouvez définir les options de montage par défaut d'un système de fichiers à l'aide de la commande tune2fs -o option partition, par exemple :

 tune2fs -o acl /dev/sdXY

Utilisation de l'ACL :

pour modifier l'ACL, utiliser setfacl :

setfacl -m "u:username:permissions

o

setfacl -m "u:uid:permissions

par exemple, pour révoquer l'accès à la carte son pour un utilisateur, tapez :

setfacl -m "u:u1:---" /dev/snd/controlC0 

Vous pouvez facilement vérifier si cela fonctionne, en jouant une piste audio puis en exécutant la commande : si le son est interrompu, la commande a été exécutée.

Vous pouvez également vérifier si les autorisations ont été modifiées avec :

getfacl /dev/snd/controlC0 ( Control Interface /dev/snd/controlCX )

Se référer au manuel man acl y man setfacl pour plus d'options.

0voto

FooLman Points 175

L'ACL pour les dispositifs sonores (et autres dispositifs "de siège") est contrôlé par le service de gestion des sièges. Pour Ubuntu Xenial (16.04) et les versions antérieures, ce contrôle était assuré par le service ConsoleKit. Pour les versions plus récentes, il est remplacé par systemd-logind. Cet article de la base de connaissances Ubuntu explique le raisonnement. .

Techniquement, vous pouvez supprimer des périphériques de la définition du siège, soit en modifiant les règles udev (en supprimant le " seat "des périphériques) ou en les supprimant de la base de données des périphériques du gestionnaire de siège à l'aide de l'API D-Bus (tout cela provient de systemd-logind - je n'ai aucune idée du lien avec ConsoleKit), mais je ne vois pas comment empêcher un seul utilisateur local connecté d'avoir accès aux périphériques, alors que d'autres utilisateurs locaux connectés y ont accès.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X