Si j'ai créé un compte utilisateur dans Ubuntu appelé root
, aurait-il automatiquement les autorisations root? Briser le système? Causer un pépin dans la matrice? Ce qui se passerait?
permissions
root
users
Le roi oublié
la source
la source
Réponses:
Les noms d'utilisateur doivent être uniques, donc, comme mentionné par la réponse d'Owen Hines , vous ne pourrez pas créer cet utilisateur. Cependant, le point clé ici est que les pouvoirs de superutilisateur (toutes les autorisations possibles) ne sont pas accordés par le nom d'utilisateur
root
, mais par l'UID.L'utilisateur avec UID 0 est le superutilisateur.
Ainsi, si l'utilisateur avec l'UID 0 avait un nom différent et que vous avez créé un utilisateur appelé
root
, il n'aurait pas de statut spécial.Je vous renvoie au wiki des balises racine !
la source
root
. Pas une bonne idée, mais possible. Ainsi, on pourrait, par exemple, créer un compte de superutilisateur appelégod
avec uid0
, et un utilisateur normal appeléroot
avec un uid de1000
ou un autre numéro.Cela ne vous laisserait pas parce qu'il y aurait déjà un
root
utilisateur.Mais, comme l'a dit Florian Diesch dans les commentaires:
la source
chown root file
?Tout d'abord, comme d'autres l'ont indiqué, vous changez l'utilisateur avec l'UID 0 en autre chose. Ensuite, vous pouvez créer un utilisateur normal avec le nom de root et un UID supérieur à 1000. Cela fonctionnera "très bien". Toutes les autorisations et fonctions système centrales utilisent l'UID et non le nom d'utilisateur. En fait, c'est une bonne première étape pour durcir un système Linux. (beaucoup mieux pour désactiver root, mais avant sudo, nous le faisions).
Maintenant, ce qui va se passer.
La plupart du temps, rien. Tous les appels système liés à l'autorisation ou à l'authentification utilisent l'UID (à ma connaissance). Et c'est ainsi depuis un certain temps. Votre système continuera de fonctionner comme d'habitude. Les outils système refléteront le nouveau nom d'utilisateur, mais continueront de fonctionner normalement. En d'autres termes "racine" dans la convention et non pas gravée dans le marbre.
Cela dit, je suis sûr que certains outils et programmes sont mal écrits. Les programmes qui vérifient la variable d'environnement $ USER peuvent agir incorrectement. Habituellement, ce sont des scripts et de petits projets, mais vous pourriez passer un peu de temps à retrouver ce mauvais commit, il y a 6 ans dans fdisk qui vous donne toujours mal à la tête.
C'est quelque chose que je faisais tout le temps. Ce fut une étape facile, et tombe sous la règle des "noms d'utilisateur non prévisibles". Il existe cependant BEAUCOUP de meilleures façons d'atteindre les mêmes objectifs aujourd'hui.
la source
Comme d'autres l'ont expliqué, c'est l'UID = 0 qui donne à l'utilisateur des "super pouvoirs", pas le nom d'utilisateur étant "root". Donc, si vous avez réussi à créer un autre utilisateur appelé "root" (après avoir renommé / supprimé l'original) - le super-statut de l'utilisateur dépendrait de l'UID que vous lui avez donné.
Ce qui conduit également à une autre idée intéressante: il est totalement possible d'avoir plusieurs utilisateurs avec le même UID (ce qui les rend essentiellement le même utilisateur du point de vue des autorisations du système de fichiers mais permet d'avoir différents, disons, shell et répertoire personnel). En fait, certains systèmes de type UNIX ont un autre compte de superutilisateur appelé toor (root backwards) qui permet d'avoir deux comptes de superutilisateur avec des paramètres différents.
la source
Comment créer le 2e 'root':
Oui, en théorie, il ne doit pas y avoir deux utilisateurs avec le même nom d'utilisateur ou les mêmes identifiants. Et les utilitaires standard sont infaillibles et ne feront pas de tels utilisateurs pour vous. Mais vous pouvez toujours éditer / etc / passwd manuellement.
Par exemple, j'ai fait:
Comme vous le voyez, nous sommes root maintenant! Oui, ce n'est pas la vraie racine (pas uid = 0), mais ce sont les mêmes quatre lettres. Impressionnant et inutile.
Comment créer une meilleure 2e racine:
Vous pouvez également effectuer d'autres modifications. Laissez le nom d'utilisateur tel quel (votre nom ou root2) mais changez l'uid.
(voir, les champs UID et GID sont des zéros) Maintenant, vous avez un utilisateur habituel (non root), avec un nom d'utilisateur presque non suspect (ou faites un nom d'utilisateur 'johndoe' pour un meilleur effet), mais en fait, cet utilisateur a des super pouvoirs!
Comme vous le voyez, l'utilisateur ordinaire ne peut pas utiliser fdisk sur / dev / sda, mais root2 peut tout faire!
Cette astuce simple parfois utilisée après le piratage du système pour fournir une porte dérobée. Même si la vraie racine va changer ses clés / mots de passe, le pirate aura toujours le contrôle total du système via un autre utilisateur avec uid = 0.
Comment fonctionne la matrice
En fait, ni le nom d'utilisateur 'root', ni uid = 0 n'est magique en soi. C'est juste une question de convention. Et ce n'est même pas toujours vrai. (voir cette question: le compte root a-t-il toujours UID / GID 0? ) Le code du noyau est magique. En fait, le code de l'espace utilisateur lui - même - ne peut rien faire que root puisse faire. Même s'il s'exécute en tant que root! La puissance racine est dans le noyau. Par exemple, si vous faites "cat / etc / shadow" (seule la racine peut généralement le faire), le programme / bin / cat appelle la fonction libc open () qui est toujours du code de l'espace utilisateur, et cette fonction open () effectue un appel système au noyau. Ensuite, le noyau lui-même décide quoi faire. Par exemple, le noyau peut autoriser certaines opérations si l'utilisateur efficace a id == 0.
En théorie, si vous changez du code dans le noyau et gérez l'utilisateur «www-data» différemment - certaines opérations peuvent être autorisées uniquement pour l'utilisateur «www-data» (et même pas autorisées à rooter).
la source
La plupart des outils «conviviaux» vérifieront cela et ne vous permettront pas de créer un compte avec un nom d'utilisateur déjà utilisé.
Si vous contournez cela et ajoutez manuellement un deuxième compte root à votre / etc / passwd et / etc / shadow, alors lequel sera utilisé, je suppose que cela dépendra si vous le mettez avant ou après l'original. Comme tous les comptes d'utilisateurs sur un système Unix, il n'aura également un accès superutilisateur que si son UID est nul, quel que soit le nom.
la source