J'ai installé Ubuntu sur mon PC. Pour me connecter, j'utilise le nom d'utilisateur et le mot de passe créés lors de l'installation. Est-ce que cela signifie que je suis un utilisateur root? Si oui, comment puis-je devenir non-root? Il semble que l'utilisateur non root soit plus sécurisé que l'utilisateur admin.
Vous êtes un administrateur, mais pas root
. L'utilisateur root
peut tout faire. Les administrateurs peuvent exécuter des actions sous la forme root
, mais ce que les administrateurs font habituellement n'est généralement pas effectué par root
. De cette façon, vous avez le plein contrôle de votre propre système, mais uniquement lorsque vous choisissez de l’utiliser.
Ubuntu vous demande votre mot de passe lorsque vous essayez de faire des choses comme root
, pour vous assurer que c'est vraiment vous.
Les vrais utilisateurs ont des comptes d’utilisateur 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 vrais utilisateurs humains .
Les utilisateurs humains réels se voient accorder (et se voient refuser) des capacités par le biais de leurs comptes d'utilisateurs. Ils doivent utiliser leurs comptes d'utilisateurs pour utiliser le système. par conséquent, les capacités et les limites de leurs comptes d'utilisateurs s'appliquent à eux.
Les comptes d'utilisateurs sont également utilisés pour codifier des ensembles de capacités et de limitations. Certains comptes d'utilisateur - la plupart, en fait, à moins que vous ne possédiez de nombreux utilisateurs humains de la machine - existent de sorte que certains programmes ou commandes puissent être exécutés avec leur identité, une identité avec les capacités appropriées et des limitations pour le travail.
Par exemple, l'utilisateur www-data
existe de sorte que si vous exécutez un serveur Web, il est propriétaire des données rendues accessibles par le serveur. Aucun utilisateur humain réel ne doit être autorisé à apporter des modifications non vérifiées à ces données, et le serveur Web ne doit pas nécessairement être autorisé à effectuer toute action inutile pour servir le Web. Par conséquent, les données Web et le reste du système sont mieux protégés contre les ruptures accidentelles ou intentionnelles que si le serveur Web était géré par un utilisateur humain qui disposerait de tous les pouvoirs du serveur Web (et des pouvoirs de ce serveur posséder).
Le superutilisateur , dont le nom d'utilisateur est root
, est un compte d'utilisateur non humain avec une combinaison très spécifique de capacités et de limitations: toutes les capacités et pas de limitations .
root
' autorisé à faire n'importe quoi. Il reste encore des choses que root
ne peut pas faire car le système lui-même ne peut ni les exécuter, ni leur donner un sens. Donc, root
ne peut pas tuer un processus qui est dans sommeil ininterruptible , ou créer une pierre trop lourde pour la déplacer, puis la déplacer .
De nombreux processus système importants, tels que init
, exécuté en tant que root
et root
sont utilisés pour l'exécution de tâches administratives.
root
?Il est possible de configurer le compte root
afin de pouvoir se connecter avec un mot de passe, mais ceci n'est pas activé par défaut dans Ubuntu. Au lieu de cela, vous pouvez imaginer que root
ressemble à www-data
, lp
, nobody
et à d'autres comptes non humains. (Exécutez cat /etc/passwd
ou getent passwd
pour les voir tous.)
Les utilisateurs humains se connectent avec leurs propres comptes d’utilisateur, puis, si une tâche doit être exécutée avec un autre compte d’utilisateur, ils le font avec cette identité , sans avoir réellement connecté en tant qu'utilisateur.
Il est possible de configurer les autres utilisateurs non humains, tels que www-data
, afin que vous puissiez également vous connecter en tant que tels. C'est assez rare, cependant, alors que dans d'autres systèmes d'exploitation semblables à Unix, il est courant de se connecter en tant que root
dans un terminal . Les risques liés à l'exécution d'une interface graphique complète sous la forme root
, associés au nombre de programmes graphiques non conçus pour s'exécuter en tant que root
et susceptibles de ne pas fonctionner correctement, signifient que vous ne devez jamais tenter d'obtenir une session de bureau root
- possédée (===) .
Notez que lorsque vous vous connectez en tant que root
est désactivé par défaut sous Ubuntu, il existe des moyens d'obtenir un shell root
sans s'authentifier sous le nom root
: les effets les plus courants sont Sudo -s
ou -i
. , mode de récupération et techniques similaires . (Ne vous inquiétez pas si vous ne savez pas ce que sont ces choses.) Il ne s'agit pas d'une connexion: en mode de récupération, vous devenez root
avant toute connexion; avec les méthodes basées sur Sudo
, vous exécutez un shell en tant que root.
Dans Ubuntu, les administrateurs sont les utilisateurs qui peuvent faire ce qu'ils veulent en tant que root
quand ils le souhaitent .
Paramètres système> Comptes d'utilisateurs. "Eliah Kagan" est un administrateur. Il peut donc exécuter des tâches en tant que root
, mais il n'est pas root
.
Je suis administrateur sur mon système Ubuntu. Lorsque j'exécute des programmes, ils s'exécutent généralement sous le nom ek
("Eliah Kagan" est le nom complet qui correspond au nom d'utilisateur ek
.)
Lorsque je lance AbiWord ou LibreOffice, il s'exécute sous le nom ek
. Lorsque je lance Firefox, Chromium, Empathy ou Pidgin, il s'exécute sous le nom ek
. Les programmes exécutés pour fournir l'interface de bureau s'exécutent sous la forme ek
.
Cependant, je suis un administrateur, donc si je dois effectuer une tâche administrative, je peux le faire.
Sur la ligne de commande, j'utilise normalement Sudo
pour exécuter une commande sous la forme root
:
Sudo command...
Cela me demandera mon mot de passe . (Pas le mot de passe de root
; root
n'en a pas.)
root
. Dans la configuration par défaut, je dois entrer mon mot de passe pour le faire.root
, même en indiquant leur mot de passe. Les commandes Sudo
échoueront si l'utilisateur qui les exécute n'est pas un administrateur.Les administrateurs étant des utilisateurs tout à fait ordinaires , à l'exception de pour la possibilité d'effectuer des actions en tant que root
, l'exécution d'une commande nécessitant des privilèges root
échouera toujours, sauf si la commande est exécutée en tant que root
.
Capture illustrant la nécessité d’utiliser Sudo
pour effectuer des tâches administratives. (Basé sur "Sandwich" par Randall Munroe .)
Les programmes graphiques peuvent fonctionner de root
à interfaces graphiques pour Sudo
, tels que gksu
/gksudo
et kdesudo
. Par exemple, pour exécuter GParted comme root
, je pourrais exécuter gksudo gparted
. Ensuite, je serais invité graphiquement pour mon mot de passe.
Depuis que je suis invité graphiquement, il ne doit pas y avoir de terminal. C’est l’un des moyens utilisés par les outils d’administration sous root
.
Polkit (une fois appelé PolicyKit) est un autre moyen pour les administrateurs de procéder comme suit: root
. Un programme accède à un service qui effectue l'action. Parfois, l'action exécute tout un programme. parfois l'action est plus limitée.
De nos jours, de nombreux utilitaires d’administration graphique du système sont configurés pour utiliser polkit par défaut, plutôt que pour Sudo
.
Le Centre de logiciel est un exemple d'un tel utilitaire. Il tire pleinement parti de polkit, obligeant l'utilisateur à entrer son mot de passe uniquement lorsqu'il veut faire quelque chose qui nécessite les privilèges root
. (Ceci est également possible avec l’authentification basée sur Sudo
, mais elle est plus difficile et plus moche à accomplir.)
Dans le centre logiciel, je peux trouver et lire des informations sur une application; alors on me demande mon mot de passe quand je veux l'installer.
Tout programme graphique peut être exécuté en tant que root
avec gksudo
et d'autres interfaces graphiques Sudo
. (Le programme peut ne pas fonctionner très bien, selon qu'il est conçu ou non pour être utilisé en tant que root
. Mais la commande permettant de démarrer le programme sera exécutée en tant que root
.)
Alors que polkit est maintenant plus commun que les interfaces graphiques Sudo
comme manière dont les applications sous Ubuntu effectuent des actions en tant que root
dans les coulisses, polki exécutera une application graphique uniquement en tant que root
si un fichier de configuration le permet et en indique les actions). être effectuée .
pkexec
est la commande utilisée pour exécuter un programme avec polkit.
Comme Sudo
, pkexec
peut exécuter des commandes non graphiques. (Et il n’exige pas de fichier de configuration définissant les fonctionnalités de la commande. Il exécute simplement la commande sous la forme root
.)
pkexec command...
pkexec
demande graphiquement un mot de passe, même s’il est exécuté depuis un terminal (c’est l’une des manières par laquelle son comportement ressemble plus à gksudo
que de courir directement Sudo
).
(S'il n'y a pas d'interface graphique - par exemple, si vous êtes connecté à partir de console virtuelle ou en mode texte seul session SSH , ou si l'interface graphique ne fonctionne pas correctement- -alors pkexec
va se dégrade gracieusement et invite votre mot de passe sur la ligne de commande.)
Une fois l'authentification réussie, la commande s'exécute dans le terminal.
root
root
est spécial car il permet de faire tout ce qui peut être fait. Mais c'est un compte utilisateur comme n'importe quel compte, et les manières d'exécuter des commandes telles que root
avec Sudo
(directement ou avec une interface graphique) ou polkit peuvent être légèrement modifiées pour exécuter une commande comme n'importe quel autre utilisateur:
Sudo -u usernamecommand...
gksudo -u usernamecommand...
pkexec --user usernamecommand...
Sudo
en premier? Comment est cette sécurité?!Exécuter des commandes avec Sudo
revient à invoquer infailliblité papale .
Lorsque vous exécutez une commande avec Sudo
[invoquez l'infaillibilité papale] , Ubuntu [Les gens catholiques] s'efforce de faire en sorte que vous soyez vraiment [vraiment le pape].
Oui, je sais que l'infaillibilité papale (même normative) est déclarative; le parallèle n'est pas parfait.
Essayer de faire quelque chose comme root
avec Sudo
(ou polkit) est un gros problème - Ubuntu ne laissera pas cette diapositive de côté comme toutes les autres fois que vous exécutez un programme.
Vous êtes invité à entrer votre mot de passe. (Ensuite, vous vous en souvenez pendant une courte période, vous n’avez donc pas besoin de saisir constamment votre mot de passe pour administrer votre système.)
En plus de vous rappeler de faire attention , cela protège contre deux scénarios:
root
(qui inclut tout ce qui est installé par le gestionnaire de paquets, tel que LibreOffice), ou modifier le système à un niveau plus profond.su
. Qu'est-ce que c'est? Puis-je l'utiliser?su
s'authentifie en tant qu'un autre utilisateur et exécute une commande (ou démarre un shell interactif). Il est possible de limiter qui est autorisé à utiliser su
, mais su
s'authentifie avec le mot de passe du compte cible , et non le mot de passe de l'utilisateur en cours d'exécution.
Par exemple, su username -c 'command...'
exécute command...
en tant que nom d'utilisateur , exactement comme Sudo -u usernamecommand...
.
Mais lorsque vous exécutez une commande sous la forme username
avec Sudo
, vous entrez votre mot de passe . Lorsque vous exécutez une commande en tant que username
avec su
, vous entrez username
le mot de passe .
Étant donné que su
effectue l’authentification pour l’utilisateur cible , avec su
vous ne pouvez exécuter de commandes qu’en tant qu’utilisateurs dont les comptes sont activés .
Le compte root
(comme www-data
et nobody
) 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 su
pour exécuter des commandes sous la forme root
.
Vous pouvez utiliser su
pour exécuter les commandes en tant qu'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
.
su
et Sudo
Une personne qui n'est pas administrateur peut même utiliser su
pour exécuter Sudo
en tant qu'administrateur. (Ceci est correct, car ils ont besoin du mot de passe de l'administrateur pour exécuter des commandes en tant qu'administrateur.) Autrement dit, un utilisateur limité peut utiliser su
pour exécuter Sudo
afin d'exécuter une commande sous la forme root
. Cela peut ressembler à:
su username -c 'Sudo command...'
(Exécution de programmes graphiques de cette façon nécessite un soin particulier .)
su
ne serait-il pas un moyen plus sûr d'exécuter des commandes en tant que root
?Probablement pas.
root
?Faites-en un utilisateur limité au lieu d'un administrateur.
Sudo
à root
?Si vous n'avez pas reconfiguré Sudo
pour le laisser réussir sans mot de passe, il échouera.
root
piggyback avec une commande Sudo
récente ne peut-il pas être utilisé, de sorte qu'aucun mot de passe n'est requis?Ce serait très peu probable pour réussir. De nos jours, la plupart des systèmes d'exploitation (y compris Ubuntu) ont configuré Sudo
par défaut, de sorte que ses horodatages ne s'appliquent que dans un contexte spécifique.
Par exemple, si j'exécute Sudo ...
dans un onglet Terminal et que je m'authentifie correctement, Sudo
dans un autre onglet (ou exécuté par un programme graphique non associé, ou exécuté depuis une console virtuelle ou une session SSH) demandera toujours un mot de passe. Même si c'est exécuté immédiatement après.
Non.
Sudo
ou polkit?Potentiellement, oui. Mais ensuite, il pourrait "écouter" un mot de passe saisi pour su
.
Ne dites pas votre mot de passe aux gens.
Idéalement, ils devraient avoir un compte utilisateur distinct qui leur permette de faire ce qu'ils doivent faire. Par exemple, vous pouvez partager des fichiers entre des comptes, ce qui permet à plusieurs utilisateurs de leur écrire, tout en refusant l'accès à d'autres utilisateurs.
Toutefois, dans le cas où une personne moins fiable pourrait être autorisée à partager votre compte, il devrait s'agir d'un compte utilisateur limité. Vous pouvez créer un compte séparé à cette fin (ce qui est logique: s'il s'agit d'un compte pour vous et quelqu'un d'autre pour lequel vous souhaitez disposer de capacités différentes, il devrait s'agir d'un compte différent).
Sudo
et su
et de faire en sorte que les utilisateurs se connectent en tant que root
, manuellement?Non, car permettre aux utilisateurs de se connecter en tant que root
présente de graves inconvénients. Autant que possible, le plus petit nombre possible d'actions doit être entrepris sous la forme root
. Même la plupart des actes liés directement à l'administration d'un système (par exemple, regarder quels utilisateurs sont configurés et lire les journaux) ne nécessitent généralement pas de privilèges root
.
De plus, tout comme potentiellement un programme malveillant pourrait regarder ce que quelqu'un tape lorsqu'il exécute Sudo
ou su
, ou créer un faux Sudo
/su
mot de passe Prompt, ( potentiellement ) un programme malveillant pourrait également créer un faux écran de connexion.
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é admin
.
Lorsqu'un système Ubuntu antérieur à la version 12.04 est mis à niveau vers la version 12.04 ou ultérieure, le groupe admin
est conservé pour des raisons de compatibilité ascendante (et continue de conférer un pouvoir administratif aux utilisateurs qui s'y trouvent), mais le groupe Sudo
est également utilisé.
Si vous aimez, bien sûr. Créez un compte utilisateur limité dans Paramètres système > Comptes utilisateurs et connectez-vous en tant que cet utilisateur.
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 afin de pouvoir administrer votre système. Si ce n’est pas le cas, alors vous devez démarrer avec mode de récupération ou un CD live et redonner à certains utilisateurs le statut d’administrateur . (This est similaire à réinitialisation d'un mot de passe administrateur perd .)
Les outils graphiques permettant d'administrer les utilisateurs et les groupes vous empêcheront généralement de créer un système sans administrateur, ou du moins de vous prévenir. Les outils de ligne de commande ne le feront généralement pas (en sachant que vous savez ce que vous faites).
Aucune question idiote;)
J'espère que cela clarifie un peu les choses:
Sous Ubuntu, deux types de comptes d’utilisateur différents peuvent être créés: standard comptes et administrateur comptes. La différence entre les deux: un compte standard n’est pas autorisé à apporter des modifications importantes à votre système en obtenant un accès root, alors qu’un compte administrateur peut utiliser son mot de passe pour apporter des modifications en tant qu’utilisateur root. L'utilisateur racine lui-même est l'un des nombreux utilisateurs créés par le système et que vous ne voyez ou ne remarquez pas normalement, et vous ne pouvez pas vous connecter en tant que tel (par défaut, de toute façon). Si vous êtes connecté à un compte de type administrateur, vous pouvez devenir cet utilisateur racine à l'aide de la commande Sudo
dans un terminal et vous pouvez taper votre mot de passe pour installer le logiciel, modifier le système, etc. Si vous êtes connecté en tant qu'utilisateur standard, vous ne pouvez pas faire cela.
Le compte créé lors de l'installation est un compte administrateur .
Dans Ubuntu, le compte root n'a pas de mot de passe et, par conséquent, vous ne pouvez pas vous connecter en tant qu'utilisateur root
name__. Il existe des moyens de contourner ce problème, mais il s'agit du paramètre par défaut.
Un compte administrateur dans Ubuntu signifie que l'utilisateur est ajouté au groupe Sudo
name__, ce qui permet au compte de gagner des privilèges temporairement à l'aide de la commande Sudo
name__. PolicyKit peut demander une élévation de privilèges en indiquant le mot de passe 'Administrateur'. (Vous devez sélectionner un utilisateur administrateur et donner le mot de passe de ce compte.)
Ouvrez un terminal et essayez de mettre à jour l'index du package logiciel. apt-get update
est la commande utilisée pour le faire et cela nécessite que soit exécuté en tant que root. Cela fonctionne uniquement lorsque vous vous connectez en tant qu'utilisateur root ou que vous l'exécutez en tant qu'utilisateur root en utilisant des augmentations de privilèges. Un administrateur peut exécuter Sudo apt-get update
en s’authentifiant auprès du mécanisme Sudo
name__, qui permet d’exécuter des commandes en tant qu’utilisateur. Un utilisateur standard ne sera pas autorisé à le faire.
Ouvrez des comptes d'utilisateurs à partir des paramètres système et essayez d'ajouter un nouvel utilisateur. Le mécanisme de protection utilisé ici est le PolicyKit. Les administrateurs seront autorisés à s'authentifier et à élever leurs privilèges, mais les utilisateurs standard seront bloqués. Un mot de passe administrateur est nécessaire pour continuer.
Administrator
devrait apparaître sous le nom du compte dans les deux volets pour les comptes d’administrateur et Standard
pour les utilisateurs normaux.Dans Tous les systèmes Linux Pour apporter des modifications au système, nous devons être authentifiés en tant qu'utilisateur root et pour appliquer toutes les modifications, nous devons être utilisateur root.
Les utilisateurs normaux ne peuvent pas appliquer les modifications à l’ensemble du système. C’est l’avantage de Linux par rapport aux fenêtres.
Si une attaque est faite, cela ne concernera que cette zone du système Linux/Unix car attaquer ou modifier les zones restantes. Des autorisations root sont nécessaires, mais sous Windows, si un endroit est attaqué, tout le système sera affecté.
C’est pourquoi, dans de nombreuses questions, si un utilisateur ne demande pas de mot de passe root, nous l’avertirons alors que cela n’est pas recommandé dans des conditions de sécurité et laissons le choix entre eux.
Si vous souhaitez vous transformer en utilisateur root, Sudo peut vous aider.
Sudo -i
Si vous souhaitez lancer l'application en tant qu'utilisateur root, vous pouvez utiliser Sudo.
Sudo <app_name>
Il est toujours préférable d’exécuter le système en tant qu’utilisateur non root.
Non.
l'utilisateur avec lequel vous vous connectez à Ubuntu n'est pas l'utilisateur admin (l'utilisateur admin dans la terminologie Linux est appelé root)