Existe-t-il un mot de passe root sur OS X et Ubuntu?

13

Lorsque vous configurez une nouvelle installation Ubuntu ou OS X, un utilisateur est généralement créé pour vous. Sous OS X, c'est le nom d'utilisateur que vous choisissez. Sur Ubuntu (la version serveur), l' ubuntuutilisateur est généralement créé.

D'après ce que je comprends, il y a aussi un utilisateur root, auquel vous pouvez accéder via quelque chose comme sudo su - root, et entrer le mot de passe du ubuntuou de l'utilisateur que vous avez créé, qui fait partie du groupe des administrateurs. Une fois que vous passez à rootJe pense que vous pouvez utiliser la passwdcommande et changer le mot de passe de root.

Mais quel était rootle mot de passe avant cela? Existe-t-il? S'agit-il d'une chaîne aléatoire de chiffres et de lettres? Comment le système gère-t-il cela?

cwd
la source
1
Sur Ubuntu, vous n'avez besoin que sudo su. Le rootcompte est supposé par défaut.
Nathan Osman
1
Sur Ubuntu, sun'est nécessaire que pour passer à un utilisateur non root . Pour exécuter une seule commande en tant que root, tapez sudo command. Pour obtenir un shell racine, tapez sudo -i.
Scott Severance
Et si vous dites à quelqu'un sur les forums ubuntu comment définir un mot de passe root, ou démarrer et réinitialiser un mot de passe utilisateur via un livecd, cela peut faire bannir votre compte pendant 30 jours ... demandez-moi comment je sais .... L'Ubuntu les gens ne veulent vraiment pas que vous ayez un mot de passe pour root, ils veulent que vous
utilisiez

Réponses:

12

Je ne peux répondre que pour Ubuntu.
Dans Ubuntu, l' rootutilisateur a un mot de passe verrouillé. Depuis la passwdpage de manuel:

   -l, --lock
           Lock the password of the named account. This option disables a 
           password by changing it to a value which matches no possible 
           encrypted value (it adds a '!' at the beginning of the password).

Vous pouvez voir la !dans /etc/shadow.

Un utilisateur avec un compte verrouillé ne peut pas changer son mot de passe, mais root peut, sans avoir saisi au préalable l'ancien mot de passe.

enzotib
la source
10

Voici comment déverrouiller (?) Ou créer un véritable utilisateur root dans OSX:

  1. Préférences de système
  2. Utilisateurs et groupes
  3. Options de connexion (cliquez sur verrouiller et authentifiez-vous ici)
  4. Cliquez sur "Rejoindre" (NAS)
  5. Utilitaire Open Directory
  6. Cliquez sur le verrou (authentifiez-vous à nouveau)
  7. Menu Edition -> activer l'utilisateur root
  8. (Menu Edition -> changer le mot de passe root)

Prendre plaisir !

Yossi Farjoun
la source
+1 pour la bonne description de l'interface graphique du Mac. Je ne connaissais que la manière en ligne de commande d'activer le compte root.
Andrew J.Brehm
Ouais, j'ai été étonné quand le gars d'Apple Customer Care m'a guidé à travers les étapes pour le faire ... J'ai pensé que c'était trop beau d'un secret pour rester "caché".
Yossi Farjoun
7

Comme l'a dit enzotib, Ubuntu a un compte root mais il est verrouillé par défaut.

Maintenant, à propos des Mac:

Comme vous pouvez probablement le deviner, root (avec tous les comptes démon) n'apparaît pas dans la section "Utilisateurs et groupes" des paramètres.

En regardant mes mac /etc/passwd, il y a une entrée pour root, avec un message

Note that this file is consulted directly only when the system is running
in single-user mode.  At other times this information is provided by 
Open Directory.

J'ai essayé de trouver la liste des utilisateurs d'Open Directory, sans succès, mais dans les configurations, il y avait des mentions de donner explicitement des autorisations root même si elles étaient implicites. Je n'ai jamais été invité à entrer un mot de passe root lors de la première configuration de la machine, donc je suppose que le compte root est verrouillé comme dans ubuntu. Je n'ai pas (et je ne veux pas vraiment) essayer de donner à root un mot de passe et de me connecter avec, mais vous pourriez probablement.

La ligne passwd:

root:*:0:0:System Administrator:/var/root:/bin/sh

La commande perl du commentaire de keith ajoute un :0à la fin. Pas de hachage de mot de passe. Je ne trouve aucun fichier caché non plus, je n'ai pu les trouver nulle part pour vérifier si root pouvait avoir un mot de passe.

Kevin
la source
Quelle est la sortie de perl -e 'print join(":", getpwuid(0)), "\n"'? ( REMARQUE : s'il contient quelque chose qui ressemble à un mot de passe haché, ne le postez pas ici.)
Keith Thompson
@KeithThompson Posté, rien de spécial. Je connais le hachage, mais je vous remercie d'avoir inclus l'avertissement pour les utilisateurs qui pourraient ne pas le faire.
Kevin
1
Qu'en est-il de la même commande Perl avec votre propre uid? Cela montre-t-il un mot de passe haché? (Encore une fois, évidemment, ne postez pas le hachage.)
Keith Thompson
1
Hmm. Peut-être que getpwuid()sur MacOS le fait délibérément, pour éviter de révéler des informations sensibles (bien qu'il doit y avoir quelque chose qui puisse accéder au mot de passe haché).
Keith Thompson
1
J'ai cherché en ligne et il semble qu'ils avaient une ombre dans le dernier os, mais je n'en trouve pas chez le lion.
Kevin
7

Le mot de passe root sur Mac OS X est stocké (comme mentionné par Kevin) dans Open Directory. Pour confirmer l'existence de l'utilisateur root, un simple grep est requis:

$ grep ^root /etc/passwd 
root:*:0:0:System Administrator:/var/root:/bin/sh

Pour lire les informations de mot de passe root à partir d'Open Directory:

$ dscl localhost -read /Local/Default/Users/root Password
Password: *
$ dscl localhost -read /Local/Default/Users/root AuthenticationAuthority
No such key: AuthenticationAuthority

Dans le cas par défaut (comme indiqué), l'utilisateur root n'a pas de hachage de mot de passe défini (le compte est verrouillé). Vous pouvez comparer ce paramètre avec la valeur en OD pour un utilisateur "normal":

$ dscl localhost -read /Local/Default/Users/normaluser Password
Password: ********
$ dscl localhost -read /Local/Default/Users/normaluser AuthenticationAuthority
AuthenticationAuthority: ;ShadowHash;HASHLIST:<SALTED-SHA512>...#rest of hash data
Mark Glossop
la source
2

Ubuntu définit un mot de passe pour l'utilisateur nommé et l'utilise pour les tâches de niveau superutilisateur (racine) comme l'installation et la suppression de logiciels et de répertoires et la suppression / exécution de fichiers au-delà de votre répertoire personnel. Un compte root est en effet en place mais sans mot de passe attribué un peu caché. Les conventions d'utilisation canoniques et Ubuntu vous découragent en effet de l'invoquer directement.

Il configure un compte d'utilisateur nommé plutôt que de configurer un compte générique "ubuntu". C'est du moins le cas avec les systèmes installés. Un compte générique "ubuntu" peut être en place si vous utilisez un CD live, je ne me souviens pas, je n'ai pas travaillé avec un CD live depuis quelques années.

Le comportement dans MacOsX est en fait assez similaire. Vous êtes invité à définir un mot de passe, qui est invoqué à chaque fois que vous essayez d'effectuer des tâches de niveau superutilisateur telles que l'installation ou la mise à niveau d'un logiciel, mais il n'y a pas de compte nommé "root".

Haziz
la source
3
Je crois qu'il y a en fait un "utilisateur" racine. Vous pouvez surooter, root a un répertoire personnel et les fichiers peuvent appartenir à root. Pouvez-vous citer un peu votre argument selon lequel il n'y a pas de compte root?
cwd
3
Il y a certainement un compte root explicite (uid 0, nom "root"). Il doit y en avoir sur n'importe quel système de type Unix. Il n'a tout simplement pas de mot de passe (au moins par défaut). Vous pouvez même obtenir un shell racine:, sudo bash -lpuis tapez whoami. (Mais normalement, vous devriez utiliser sudopour des commandes individuelles plutôt que d'avoir un shell interactif fonctionnant en tant que root.)
Keith Thompson
Vous avez peut-être raison, je ne vous interroge pas. S'il y a un compte root, alors ils ont fait du bon travail en le cachant. J'utilise également Fedora sur certaines de mes machines et machines virtuelles et root est un compte actif.
haziz
1

Pour Ubuntu: par défaut, vous pouvez accéder à votre compte utilisateur nouvellement créé.

Pour exécuter une commande en tant que root, vous pouvez utiliser

sudo command

puis entrez votre mot de passe normal.

Le compte root est par défaut verrouillé. Pour activer root par ligne de commande, entrez simplement

sudo passwd

puis entrez le mot de passe de votre utilisateur connecté, puis de nouveaux mots de passe pour root. Vous pouvez maintenant vous connecter en tant que root en utilisant su puis saisir le mot de passe de root.

kushdilip
la source