Ubuntu est une distribution du système d'exploitation GNU / Linux qui appartient à la famille de systèmes Unix - une architecture commune pour un certain nombre de systèmes d'exploitation modernes.
Traditionnellement, Unix fonctionnait sur des ordinateurs centraux. Installations informatiques centralisées desservant des dizaines ou des centaines d'utilisateurs via des terminaux distants. Étant donné que tous les utilisateurs dépendaient de la disponibilité de l’ordinateur central, aucun utilisateur n’était autorisé à émettre une commande d’arrêt. Une idée fondamentale pour l’architecture Unix: le noyau système n’initialisera jamais un arrêt à moins que la fonction correspondante ne soit appelée par un processus superutilisateur.
Dans les systèmes de bureau actuels, les développeurs ont eu du mal à rendre l’arrêt accessible au simple utilisateur de bureau. Une technique courante consiste à laisser le gestionnaire de connexion, qui s'exécute généralement dans le contexte de sécurité de l'utilisateur root, gérer l'arrêt et le redémarrage. Dans ce cas, le shell graphique envoie une demande au gestionnaire de connexion pour éteindre l'ordinateur. Cela implique l'utilisation d'une communication interprocessus (IPC), généralement via le service dbus.
Le policykit mentionné ci-dessus étend ce processus en fournissant un cadre normalisé permettant au gestionnaire de connexion (ou à tout programme fournissant le service d'arrêt) de vérifier quels utilisateurs sont autorisés à provoquer un arrêt, et grâce auquel un administrateur peut configurer ces autorisations, respectivement.
Certains environnements de bureau n'utilisent pas de services IPC, mais plutôt un ensemble de programmes d'assistance fournissant les mêmes fonctions ou des fonctions similaires. Ces programmes auxiliaires seraient appelés via des mécanismes, permettant de passer dans le contexte de superutilisateur, comme sudo, suid ou un mécanisme de kit de stratégies similaire à sudo.
Dans tous les cas, le programme d'arrêt traditionnel stupide sur le shell ne fonctionne pas de cette façon. Il vous oblige à voir qu'il est exécuté dans un contexte de superutilisateur.
sudo shutdown -h now
est exécutée, mais le problème est que, sans l'autorisation d'accès,shutdown
cela ne fonctionne jamais. .. J'espère que vous comprenez ma situation .. :)