web-dev-qa-db-fra.com

Pourquoi le système continue de demander à entrer le mot de passe du premier membre du groupe Sudo au lieu de refuser l'exécution de la commande

Nous avons OS Ubuntu 18.04. Il y a 2 utilisateurs présentés: utilisateur1, utilisateur2. user1 est un compte administratif et est membre du groupe Sudo: uid=1010(user1) gid=1010(user1) groups=1010(user1),27(Sudo),110(lxd). user2 est un utilisateur régulier uid=1000(user2) gid=1000(user2) groups=1000(user2). Maintenant, dans le fichier/etc/sudoers, j'ai un enregistrement par défaut pour le groupe Sudo:

# Allow members of group Sudo to execute any command 
%Sudo   ALL=(ALL:ALL) ALL

Ainsi que des commandes spéciales autorisées à être exécutées avec des droits administratifs (root) pour l'utilisateur2:

Cmnd_Alias CMD_RELOAD_PHP_FPM = /bin/systemctl reload php7.0-fpm, /bin/systemctl reload php7.2-fpm
user2 ALL=(root:root) NOPASSWD: CMD_RELOAD_PHP_FPM

À cette étape, tout va bien, user2 peut exécuter tout ce qui est spécifié dans Cmnd_Alias ​​sans entrer de mot de passe, alors travaillez comme prévu.

Mais lorsque user2 essaie d'exécuter quelque chose qui ne lui est pas autorisé, il est invité à entrer, attention, user1 mot de passe. Pas root, pas le sien user2, mais user1 mot de passe, au lieu de refuser silencieusement ou informativement une telle action:

user2@someserver:~$ /bin/systemctl restart <someservice>
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to restart 'someservice.service'.
Authenticating as: user1
Password:

user1 est le seul membre du groupe Sudo.

grep 'Sudo' /etc/group
Sudo:x:27:user1
grep 'Sudo' /etc/gshadow
Sudo:*::user1

Si user1 est supprimé du groupe Sudo et user2 essaie d'exécuter la même commande, puis il lui est demandé de saisir root mot de passe.

Comment puis-je changer ce comportement, donc user2 les tentatives seraient refusées au lieu de lui demander d'entrer le mot de passe?

1
Viktor

Je n'ai pas assez de connaissances sur polkit, mais cela semble être la cause d'un tel comportement.

Ligne qui en est responsable:

AdminIdentities=unix-group:Sudo;unix-group:admin

à l'intérieur de /etc/polkit-1/localauthority.conf.d/51-ubuntu-admin.conf fichier

Commentaire du AdminIdentities=... line et le redémarrage du démon polkit renvoie le comportement par défaut où root mot de passe est requis pour le redémarrage du service. Je ne sais pas si c'est sûr ou non. Certains membres de la communauté pourraient probablement mieux expliquer.

Il semble également que j'ai trouvé l'endroit où les actions par défaut pour systemd sont décrites si un utilisateur non privilégié tente d'effectuer une action avec le service systemd.
Il se trouve dans le fichier: /usr/share/polkit-1/actions/org.freedesktop.systemd1.policy

Si je fixe des valeurs comme ceci:

<action id="org.freedesktop.systemd1.manage-units">
        <description gettext-domain="systemd">Manage system services or other units</description>
        <message gettext-domain="systemd">Authentication is required to manage system services or other units.</message>
        <defaults>
                <allow_any>no</allow_any>
                <allow_inactive>no</allow_inactive>
                <allow_active>no</allow_active>
        </defaults>
</action>

je commence à avoir Access denied message sur la tentative de redémarrage du service en tant qu'utilisateur non privilégié.

1
Jevgenij