Pour une raison quelconque, nous n’avons plus besoin d’être root (ou d’utiliser Sudo
) pour exécuter /sbin/shutdown
, /sbin/reboot
etc.
Cela semble être dû au fait que ces exécutables sont maintenant des liens symboliques vers /bin/systemctl
qui gère tout comme un utilisateur normal.
Cependant, que se passe-t-il si je souhaite que shutdown
et reboot
requièrent à nouveau l’authentification racine? Comment puis-je atteindre cet objectif?
Systemd gère en effet les commandes shutdown
, reboot
et autres, et les privilèges attribués par défaut sont permissifs. Pour changer cela, vous devez créer une règle Polkit. Créez un fichier .pkla
dans /etc/polkit-1/localauthority/50-local.d
(disons, confirm-shutdown.pkla
) contenant:
[Confirm shutdown]
Identity=unix-user:*
Action=org.freedesktop.login1.*
ResultActive=auth_admin_keep
Les différentes commandes d'arrêt, de redémarrage, etc. sont, en termes de Polkit, des actions dans org.freedesktop.login1
, par exemple, org.freedesktop.login1.power-off
, org.freedesktop.login1.reboot
, etc. Le problème spécifique ici est la configuration par défaut, qui est dans /usr/share/polkit-1/actions/org.freedesktop.login1.policy
:
<action id="org.freedesktop.login1.power-off">
<description>Power off the system</description>
...
<defaults>
<allow_any>auth_admin_keep</allow_any>
<allow_inactive>auth_admin_keep</allow_inactive>
<allow_active>yes</allow_active>
</defaults>
Notez que cela permet à l'utilisateur actif de mettre hors tension, de redémarrer, etc.
As modification des autorisations d'un lien symbolique sur un système Linux ne modifie pas les autorisations du lien, mais le fichier vers lequel il pointe (du moins dans Ubuntu). Je pense que le moyen le plus sûr d’y parvenir serait de supprimer le lien et de le recréer avec le mask requis pour obtenir le résultat souhaité.
Un autre article peut être trouvé ici
Vous pouvez utiliser la commande chmod
.
Si vous voulez donner accès uniquement à root, vous pouvez écrire:
chmod 700 directory/to/the/file
Si vous voulez donner la permission à la racine et au groupe Sudo, vous pouvez écrire:
chmod 770 directory/to/the/file
Si vous voulez changer le groupe du fichier de Sudo en un autre (comme un utilisateur ou des administrateurs), vous devez taper:
chown owner:group directory/to/the/file
Si vous voulez revenir en arrière, lancez:
chown root:Sudo filedirectory
Note: vous devrez peut-être utiliser Sudo
pour ces commandes ou vous être connecté au compte root