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
lesquels gère tout en tant qu'utilisateur normal.
Cependant, que se passe-t-il si je veux shutdown
et que je demande reboot
à nouveau l'authentification racine? Comment puis-je atteindre cet objectif?
pkaction | grep login1
pour d'autres règles d'intérêt)sudo visudo
et en vérifiant s'il existe une ligne avec le chemin d'accès à ces exécutables.Réponses:
Systemd gère en effet les commandes
shutdown
,reboot
et autres, et les privilèges par défaut attribués sont permissifs. Pour changer cela, vous devez créer une règle Polkit. Créez un.pkla
fichier/etc/polkit-1/localauthority/50-local.d
(disonsconfirm-shutdown.pkla
) contenant:Les différents arrêt, redémarrage, etc. Les commandes sont, en termes de polkit, actions
org.freedesktop.login1
, par exemple,org.freedesktop.login1.power-off
,org.freedesktop.login1.reboot
, etc. Le problème spécifique est ici la configuration par défaut, qui est/usr/share/polkit-1/actions/org.freedesktop.login1.policy
:Notez qu'il permet à l'utilisateur actif de s'éteindre, de redémarrer, etc.
la source
Vous pouvez utiliser la
chmod
commande.Si vous souhaitez donner uniquement accès à root, vous pouvez écrire:
Si vous voulez donner du permisson à la racine et au groupe sudo alors vous pouvez écrire:
Si vous souhaitez changer le groupe du fichier de sudo en un autre (comme un utilisateur ou des administrateurs), vous devez taper:
Si vous souhaitez revenir en arrière, exécutez:
Remarque : vous devrez peut-être utiliser
sudo
ces commandes ou vous être connecté au compte rootla source
/bin/systemctl
), donc l'exécution de chmod / sbin / shutdown aura un impact sur tous les liens pointant vers/bin/systemctl
car les autorisations àbin/systemctl
seront modifiées comme confirmé par la commande $ll /bin/systemct
l -rwx ------ 1 racine root 659848 18 janvier 16:04 / bin / systemctl *-rwxr-xr-x 1 root root 659848 Jan 18 16:04 /bin/systemctl
Comme la modification des autorisations d'un lien symbolique sur un système Linux ne modifie pas les autorisations du lien mais plutôt le fichier vers lequel il pointe (au moins dans Ubuntu). Je pense que la façon la plus sûre d'y parvenir serait de supprimer le lien et de le recréer avec l' umask requis pour obtenir le résultat souhaité.
Un autre poste connexe peut être trouvé ici
la source
Vous pouvez créer un script qui vérifie si l'utilisateur l'exécute avec les autorisations root ou non.
Ensuite, il exécutera la commande systemctl ou retournera une erreur.
La source
la source
Essayez de modifier ses autorisations dans le terminal. Vous pouvez le rendre exécutable uniquement par un certain groupe, tel que wheel ou admin. Malheureusement (ou peut-être heureusement), un fichier ne peut avoir qu'une propriété de groupe, donc chown ne fonctionnerait tout simplement pas seul. Essayez "sudo chown root: wheel / sbin / shutdown" puis "sudo chmod g + x / sbin / shutdown". Cela rendra le fichier exécutable uniquement par root et les administrateurs (shudders) et sudoers seront tenus d'entrer leurs mots de passe.
la source