web-dev-qa-db-fra.com

Pourquoi `reboot` et` poweroff` fonctionnent-ils sans privilèges de super utilisateur dans Ubuntu 16.04?

Il y a beaucoup de questions sur pourquoi shutdown et reboot nécessitent des privilèges root. Il y a beaucoup de bonnes réponses disponibles aussi.

Mais il y a quelque chose que je ne comprends pas : Si je peux redémarrer ou éteindre sans les privilèges root dans un multi-utilisateur le système est une très mauvaise idée ... alors pourquoi est-ce possible dans Ubuntu 16.04?

Quand je tape poweroff ou reboot dans un terminal et clique sur Enter, il ferme/redémarre!

Cela me convient quand poweroff et reboot ne nécessitent pas de privilèges root ... mais pourquoi suspend a-t-il besoin de privilèges root? Quand je tape suspend dans un terminal et clique sur Enter, il ne suspend pas, il reste bloqué ... et quand je lance pm-suspend, il nécessite Sudo.

10
Severus Tux

Pour moi, les deux poweroff ni reboot ont besoin d'un mot de passe sur Ubuntu 16.04.

Cependant, pour que cela se produise, je devais créer un compte utilisateur appelé "foo", par exemple, puis ssh sur localhost en tant qu'utilisateur ou en tant que moi-même. Quand je fais cela, j'ai besoin de m'authentifier. Il semble reconnaître qu'un autre utilisateur est connecté.

Par exemple, je reçois ce message:

User foo is logged in on sshd.
Please retry operation after closing inhibitors and logging out other users.
Alternatively, ignore inhibitors and users with 'systemctl reboot -i'.

Vraisemblablement, il est assez "intelligent" pour se rendre compte qu’un autre utilisateur est connecté.

(Je conviens avec vous qu'il serait agréable de toujours s'authentifier en tant qu'utilisateur root. Parfois, aucun autre utilisateur n'est connecté, mais un processus important s'exécute en arrière-plan et effectue une sorte de calcul.)

Edit: juste essayé moi-même. Si je suis connecté en tant que foo, je dois m'authentifier (membre du groupe Sudo). Si je redémarre comme moi-même avec foo toujours connecté, je dois taper systemctl reboot -i sans mot de passe. Je présume que la différence est que le système sait que je fais partie du groupe Sudo.

Edition 2: Comme l’a noté Severus Tux, systemctl suspend -i se comportait de la même manière que systemctl reboot -i de la précédente édition.

3
Ray