Vous êtes un administrateur, mais pas root
. L'utilisateur root
peut tout faire. Les administrateurs peuvent effectuer des actions sous la forme root
, mais normalement les administrateurs ne le font pas avec% code%. De cette façon, vous avez le contrôle total sur votre propre système, mais uniquement lorsque vous choisissez de l'utiliser.
Ubuntu demande votre mot de passe lorsque vous essayez de faire des choses comme root
, pour vous assurer que c'est vraiment vous.
Comptes d'utilisateurs: humains et autres
Les utilisateurs humains réels ont des comptes d'utilisateurs pour les représenter. Vous avez créé un tel compte lorsque vous avez installé Ubuntu. Mais tous les comptes d'utilisateurs ne représentent pas de véritables utilisateurs humains .
Les utilisateurs réels sont dotés (et refusés) de capacités via leurs comptes utilisateurs. Ils doivent utiliser leurs comptes d'utilisateur pour utiliser le système. par conséquent, les capacités et les limites de leurs comptes d'utilisateur s'appliquent à eux.
Les comptes d'utilisateurs sont également utilisés pour codifier des ensembles de capacités et de limitations. Certains comptes utilisateurs - la plupart, en fait, sauf si vous avez plusieurs utilisateurs humains de la machine - existent pour que certains programmes ou commandes puissent être exécutés avec leur identité, une identité avec les capacités et limitations appropriées pour le travail.
Par exemple, l'utilisateur root
existe, de sorte que si vous exécutez un serveur Web, il possède les données accessibles par le serveur. Aucun utilisateur humain réel ne doit être habilité à apporter des modifications non vérifiées à ces données, et le serveur Web n'a pas besoin d'être habilité à exécuter des actions inutiles pour servir le Web. Par conséquent, les données Web et le reste du système sont plus sécurisés contre les ruptures accidentelles ou intentionnelles que si le serveur Web était géré par un utilisateur humain disposant de tous les pouvoirs du serveur Web (et dont le serveur Web aurait posséder).
Le compte utilisateur non humain le plus important
Le super-utilisateur , dont le nom d'utilisateur est www-data
, est un compte d'utilisateur non humain avec une combinaison très spécifique de capacités et limitations: toutes les capacités et aucune limitation .
root
permet de faire n'importe quoi. Il y a encore des choses que root
ne peut pas faire parce que le système lui-même ne peut pas fonctionner ou en avoir un sens. Ainsi, root
ne peut pas supprimer un processus dans veille ininterrompue , ou rendre un rocher trop lourd à déplacer , puis déplacez-le .
De nombreux processus système importants, tels que root
, s'exécutent en tant que init
et root
sont utilisés pour effectuer des tâches administratives.
Puis-je me connecter en tant que root
?
Il est possible de configurer le compte root
pour qu'il soit possible de se connecter avec un mot de passe, mais cela n'est pas activé par défaut dans Ubuntu. Au lieu de cela, vous pouvez penser à root
comme étant root
, www-data
, lp
et d'autres comptes non humains. (Exécutez nobody
ou cat /etc/passwd
pour les voir tous.)
Les utilisateurs humains se connectent avec leurs propres comptes d'utilisateur, et si une tâche doit être effectuée avec un autre compte d'utilisateur, ils effectuent cette tâche avec cette identité , sans avoir réellement connecté en tant que cet utilisateur.
Il est possible de configurer les autres utilisateurs non humains, comme getent passwd
, afin de pouvoir se connecter en tant que eux également. C'est assez rare, alors que dans certains autres systèmes d'exploitation de type Unix, il est courant de se connecter sous la forme www-data
dans un terminal . Les risques liés à l’exécution de toute une interface graphique sous la forme root
, combinés au nombre de programmes graphiques qui ne sont pas conçus pour fonctionner avec root
et risquent de ne pas fonctionner correctement, signifient que vous ne devez jamais tenter > session de bureau .
Veuillez noter que si vous vous connectez avec root
est désactivé par défaut dans Ubuntu, vous pouvez obtenir un shell root
sans authentification en tant que root
, ce qui produit un effet similaire: root
ou root
, mode de récupération et techniques similaires . (Ne vous inquiétez pas si vous ne savez pas ce que ces choses sont.) Cela ne se connecte pas réellement: en mode de récupération, vous devenez sudo -s
avant toute connexion; avec les méthodes -i
-based, vous exécutez simplement un shell en tant que root.
Administrateurs
Dans Ubuntu, les administrateurs sont les utilisateurs qui peuvent faire ce qu’ils veulent comme root
, quand ils le font .
Paramètres système & gt; Comptes utilisateur."Eliah Kagan" est un administrateur, donc il peut faire des choses comme sudo
, mais il n'est pas root
.
Je suis administrateur de mon système Ubuntu. Lorsque j'exécute des programmes, normalement, ils s'exécutent sous la forme root
("Eliah Kagan" est le nom complet qui correspond à root
username.)
Lorsque je lance AbiWord ou LibreOffice, il s'exécute en tant que ek
. Lorsque je lance Firefox, Chrome, Empathy ou Pidgin, il s'exécute en tant que ek
. Les programmes exécutés pour fournir l'interface de bureau s'exécutent sous la forme ek
.
Cependant, je suis administrateur, donc si je dois effectuer une tâche administrative, je peux le faire.
sudo
Sur la ligne de commande, j'utilise généralement ek
pour exécuter une commande en tant que ek
:
sudo command...
Cela m'invite à entrer mon mot de passe. (Pas le mot de passe sudo
; root
n'en a pas.)
- Comme je suis administrateur, je peux effectuer des actions en tant que
root
. Dans la configuration par défaut, je dois entrer mon mot de passe pour cela.
- Les utilisateurs qui ne sont pas administrateurs ne peuvent pas effectuer d’actions comme
root
, même en mettant leur mot de passe. Les commandes root
échoueront si l'utilisateur qui les exécute n'est pas un administrateur.
Les administrateurs étant des utilisateurs tout à fait ordinaires sauf pour pouvoir exécuter des actions avec root
, l'exécution d'une commande nécessitant les privilèges sudo
échouera toujours, sauf lorsque la commande est exécutée as root
.
Capture d'écran illustrant la nécessité d'utiliser root
pour effectuer des tâches administratives. (Basé sur "Sandwich" de Randall Munroe .)
sudo, graphiquement
Les programmes graphiques peuvent s'exécuter sous la forme root
via des interfaces graphiques pour sudo
, telles que root
/ sudo
et gksu
. Par exemple, pour exécuter GParted sous la forme gksudo
, je pourrais exécuter kdesudo
. Ensuite, je serais invité graphiquement pour mon mot de passe.
Comme je suis invité graphiquement, il n’est pas nécessaire d’avoir un terminal. C'est l'une des manières dont les outils d'administration sont exécutés en tant que root
.
Polkit
Polkit (autrefois appelé PolicyKit) est un autre moyen pour les administrateurs de faire les choses comme gksudo gparted
. Un programme accède à un service qui exécute l'action. Parfois, l'action exécute un programme entier; Parfois, l'action est plus limitée.
De nos jours, de nombreux utilitaires d'administration de système graphique sont configurés pour utiliser polkit par défaut, plutôt que d'utiliser root
.
Un exemple d'un tel utilitaire est le centre logiciel. Il tire pleinement parti de polkit, obligeant l'utilisateur à mettre son mot de passe uniquement quand il veut faire quelque chose qui requiert les privilèges root
. (Cela est également possible avec l’authentification basée sur sudo
, mais il est plus difficile et plus compliqué à accomplir.)
Dans le Software Center, je peux trouver et lire des informations sur une application. alors on me demande mon mot de passe quand je veux l'installer.
Comment polkit est différent
Tout programme graphique peut être exécuté sous la forme root
avec sudo
et d’autres interfaces graphiques root
. (Le programme ne fonctionne peut-être pas très bien selon qu'il est conçu pour être utilisé comme gksudo
. Mais la commande pour démarrer le programme sera exécutée sous la forme sudo
.)
Alors que polkit est maintenant plus courant que les interfaces graphiques de root
comme la façon dont les applications sur Ubuntu exécutent des actions en% Co_de% en arrière-plan, polki n'exécutera qu'une application graphique sous la forme root
Si un fichier de configuration le permet et indique les actions à effectuer .
Polkit, non graphique
sudo
est la commande utilisée pour exécuter un programme avec polkit.
Comme root
, root
peut exécuter des opérations non graphiques. commandes. (Et il ne nécessite pas de fichier de configuration définissant les capacités de la commande - il exécute simplement la commande sous la forme pkexec
.)
pkexec command...
sudo
demande un mot de passe sous forme graphique, même s'il est exécuté à partir d'un terminal (c'est l'une des manières dont son comportement est plus similaire à pkexec
qu'à l'exécution directe root
).
(S'il n'y a pas d'interface graphique - par exemple, si vous êtes connecté depuis une console virtuelle ou text-only session SSH , ou l'interface graphique ne fonctionne pas correctement - alors pkexec
sera se dégrader gracieusement et demander votre mot de passe sur la ligne de commande.)
Une fois l’authentification effectuée avec succès, la commande est exécutée dans le terminal.
Commandes en cours d'exécution en tant qu'autres utilisateurs Outre gksudo
sudo
est spécial car il peut faire tout ce qui peut être fait. Mais c'est un compte utilisateur comme n'importe quel compte, et les façons d'exécuter des commandes avec pkexec
avec root
(directement ou avec un frontend graphique) ou polkit peuvent être légèrement modifiées pour exécuter une commande comme tout autre utilisateur:
sudo -u username command...
gksudo -u username command...
pkexec --user username command...
quoi? Vous venez de taper root
en premier? Comment est cette sécurité?!
Exécuter des commandes avec root
est un peu comme appeler l'infaillibilité papale .
Lorsque vous exécutez une commande avec sudo
[invoquer l'infaillibilité papale] , Ubuntu [des personnes catholiques ] s’efforce de faire en sorte que vous soyez vraiment [le pape].
Oui, je sais que l’infaillibilité papale (même si elle est normative) est déclarative; le parallèle n'est pas parfait.
Essayer de faire quelque chose comme sudo
avec sudo
(ou polkit) est un gros problème - Ubuntu ne va pas seulement laisser passer cela comme toutes les autres fois que vous exécutez un programme.
Vous êtes invité à entrer votre mot de passe. (Ensuite, vous vous en souviendrez pendant un court laps de temps, vous n'avez donc pas à saisir constamment votre mot de passe lorsque vous administrez votre système.)
En plus de vous rappelant de faire attention , cela protège contre deux scénarios:
- Quelqu'un utilise votre ordinateur (ou appareil mobile), peut-être sous le prétexte de vérifier son courrier électronique ou un autre objectif inoffensif. Ici, il leur est encore possible de faire du mal - par exemple, ils peuvent modifier ou supprimer vos documents. Cependant, ils ne peuvent pas administrer le système, car ils ne peuvent pas entrer votre mot de passe.
- Les programmes qui ne sont pas censés administrer le système ne peuvent pas le faire, sauf si vous entrez votre mot de passe. Par exemple, si votre navigateur Web est compromis par un bogue de sécurité et qu'il exécute un code malveillant, il ne peut toujours pas effectuer de tâches administratives. Il ne peut pas créer et supprimer des utilisateurs, modifier des programmes installés en tant que
sudo
(ce qui inclut tout ce qui est installé par le gestionnaire de paquets, tel que LibreOffice), ou modifier le système à un niveau profond.
J'ai entendu parler de root
. Qu'est-ce que c'est? Puis-je l'utiliser?
sudo
s'authentifie en tant qu'autre utilisateur et exécute une commande (ou démarre un shell interactif). Il est possible de limiter qui est autorisé à utiliser root
, mais su
s’authentifie avec le mot de passe du compte cible , et non le mot de passe de l’utilisateur actif.
Par exemple, su
exécute su
en tant que nom d'utilisateur , tout comme su
.
Lorsque vous exécutez une commande sous la forme su username -c 'command...'
avec command...
, vous entrez votre mot de passe . Lorsque vous exécutez une commande en tant que sudo -u username command...
avec username
, vous saisissez le mot de passe de sudo
.
Puisque username
exécute l'authentification pour l'utilisateur cible , avec su
, vous ne pouvez exécuter que des commandes en tant qu'utilisateurs dont les comptes sont activés .
Le compte username
(comme su
et su
) est désactivé par défaut. Aucun mot de passe ne fonctionnera pour vous connecter en tant que root
. Vous ne pouvez donc pas utiliser www-data
pour exécuter les commandes sous la forme nobody
.
Vous pouvez utiliser root
pour exécuter des commandes en tant qu’autre utilisateur pouvant se connecter (ce qui inclut généralement tous les comptes d’utilisateur de votre système représentant des êtres humains).
Lorsque vous êtes connecté en tant qu'invité, vous ne pouvez pas utiliser su
du tout.
Combinant root
et su
Quelqu'un qui n’est pas administrateur peut même utiliser su
pour exécuter su
en tant qu’administrateur. (Ceci est correct cependant, car ils ont besoin du mot de passe de l'administrateur pour exécuter les commandes en tant qu'administrateur.) En d'autres termes, un utilisateur limité peut utiliser sudo
pour exécuter su
. Cela peut ressembler à:
su username -c 'sudo command...'
(Exécution de programmes graphiques de cette façon nécessite une attention particulière .)
sudo
ne serait-il pas un moyen plus sûr d'exécuter les commandes en tant que su
?
Probablement pas.
Que faire si un utilisateur ne devrait pas être autorisé à agir en tant que sudo
?
Faites-en un utilisateur limité au lieu d'un administrateur.
Que se passe-t-il si un programme exécuté en tant qu’administrateur essaie de root
à su
?
Sauf si vous avez reconfiguré root
pour le laisser réussir sans mot de passe, il échouera.
Un programme qui ne devrait pas être exécuté en tant que root
ne peut-il pas être installé sur une récente commande sudo
, donc aucun mot de passe n'est requis?
Cela aurait très peu de chances de réussir.De nos jours, la plupart des systèmes d'exploitation (y compris Ubuntu) ont configuré root
par défaut pour que leurs horodatages ne s'appliquent que dans un contexte spécifique.
Par exemple, si je lance sudo
dans un onglet Terminal et que je m'authentifie avec succès, root
dans un autre onglet (ou exécuté par un programme GUI indépendant ou que je lance depuis une console virtuelle ou une session SSH) pour un mot de passe. Même s'il est exécuté immédiatement après.
Un programme s'exécutant en tant qu'utilisateur X n'a-t-il pas accès au mot de passe de l'utilisateur X?
Non.
Si un programme malveillant peut s'exécuter en tant qu'administrateur, ne peut-il pas "écouter" ce qui est tapé lorsque l'administrateur s'authentifie avec sudo
ou polkit?
Potentiellement, oui. Mais alors il pourrait "écouter" un mot de passe tapé pour sudo
.
Si je dis à quelqu'un mon mot de passe -
Ne dites pas votre mot de passe aux gens.
Que faire si quelqu'un doit connaître mon mot de passe pour faire quelque chose en mon nom, mais je ne veux pas le laisser administrer le système?
Idéalement, ils doivent disposer d’un compte utilisateur distinct qui leur permet de faire ce qu’ils doivent faire. Par exemple, vous pouvez partager des fichiers entre comptes, ce qui permet à plusieurs utilisateurs de leur écrire, tout en refusant l'accès à d'autres utilisateurs.
Cependant, dans une situation où une personne moins fiable peut être autorisée à partager votre compte, cela devrait être un compte utilisateur limité. Vous pouvez créer un compte distinct à cet effet (ce qui est logique - si ce compte est pour vous et pour quelqu'un d'autre que vous souhaitez disposer de fonctionnalités différentes, le compte doit être différent).
Alors, le plus sûr serait-il d'interdire les deux sudo ...
et sudo
et de faire en sorte que les gens se connectent manuellement en tant que sudo
?
Non, car laisser les gens se connecter en tant que su
présente de sérieux inconvénients. Dans la mesure du possible, le plus petit nombre d'actions possible doit être effectué en tant que sudo
. Même la plupart des actes liés directement à l’administration d’un système (par exemple, à la configuration des utilisateurs et à la lecture des journaux) ne nécessitent généralement pas les privilèges su
.
De même que potentiellement un programme malveillant pouvait regarder ce que quelqu'un tape lorsqu'il lance root
ou root
, ou crée une fausse invite root
/ root
password, potentiellement un programme malveillant pourrait également créer un faux écran de connexion.
Qu'est-ce qui fait d'un utilisateur un administrateur?
Appartenance à un groupe.
Dans Ubuntu 12.04 et versions ultérieures , les administrateurs sont membres du groupe appelé sudo
.
Dans Ubuntu 11.10 et versions antérieures , les administrateurs sont membres du groupe appelé su
.
Lorsqu'un système Ubuntu antérieur à 12.04 est mis à niveau vers 12.04 ou version ultérieure, le groupe sudo
est conservé pour compatibilité descendante (et continue de conférer de la puissance administrative aux utilisateurs), mais le groupe su
est également utilisé.
Comptes d'utilisateurs limités
Puis-je utiliser un compte d'utilisateur limité au lieu d'un compte d'administrateur?
Si vous aimez, bien sûr. Créez un compte utilisateur limité dans Paramètres système & gt; Comptes d'utilisateurs et connectez-vous en tant qu'utilisateur.
Puis-je créer un compte utilisateur limité pour mon compte administrateur?
Oui, supprimez-le simplement des groupes sudo
et admin
(voir ci-dessus).
Mais vous devez vous assurer qu’il existe au moins un autre compte administrateur, de sorte que vous puissiez administrer votre système. Si ce n’est pas le cas, vous devez démarrer en mode de récupération ou un CD en direct et faire de certains utilisateurs un administrateur à nouveau . (Cette est similaire à < a href="https://ubuntuplace.info/questions/1545/comment-reinitialiser-un-mot-de-passe-administratif-perdu"> réinitialiser un mot de passe administrateur perdu .)
Les outils graphiques permettant d’administrer des utilisateurs et des groupes vous vous empêcheront généralement de créer un système sans administrateur, ou du moins de vous avertir. Les outils en ligne de commande ne le feront généralement pas (en confiant que vous savez ce que vous faites).