que signifie star dans le fichier passwd?

14

J'ai un ordinateur sur lequel je dois démarrer, mais les mots de passe semblent être faux. De plus, je ne peux pas monter le lecteur pour l'écriture, et c'est un processeur mips, donc je ne peux pas le coller dans une autre machine pour l'exécuter.

Quoi qu'il en soit, le fichier passwd a certains utilisateurs qui ressemblent à ceci, avec une étoile après le nom d'utilisateur. cela signifie-t-il un mot de passe vide ou quoi?

root:8sh9JBUR0VYeQ:0:0:Super-User,,,,,,,:/:/bin/ksh
sysadm:*:0:0:System V Administration:/usr/admin:/bin/sh
diag:*:0:996:Hardware Diagnostics:/usr/diags:/bin/csh
daemon:*:1:1:daemons:/:/dev/null
bin:*:2:2:System Tools Owner:/bin:/dev/null
uucp:*:3:5:UUCP Owner:/usr/lib/uucp:/bin/csh
sys:*:4:0:System Activity Owner:/var/adm:/bin/sh
adm:*:5:3:Accounting Files Owner:/var/adm:/bin/sh
lp:VvHUV8idZH1uM:9:9:Print Spooler Owner:/var/spool/lp:/bin/sh
nuucp::10:10:Remote UUCP User:/var/spool/uucppublic:/usr/lib/uucp/uucico
auditor:*:11:0:Audit Activity Owner:/auditor:/bin/sh
dbadmin:*:12:0:Security Database Owner:/dbadmin:/bin/sh
rfindd:*:66:1:Rfind Daemon and Fsdump:/var/rfindd:/bin/sh
j0h
la source
12
Notez que vous avez publié des hachages de mot de passe DES. Les hachages de mot de passe DES sont assez faciles à casser de nos jours. Ne connectez pas cet ordinateur à un réseau avant d'avoir modifié les mots de passe.
Gilles 'SO- arrête d'être méchant'
2
Je recommanderais de ne pas connecter cet ordinateur à l'Internet public du tout , pour être tout à fait franc. Mettez-le sur un réseau pare-feu suffisamment longtemps pour en extraire les données, bien sûr, mais il devrait ensuite être retiré. Si le système d'exploitation est aussi vieux qu'il en a l'air, il est probablement criblé de failles de sécurité du noyau sur des numéros de séquence TCP initiaux prévisibles par exemple.
zwol
Le mot de passe de l' lputilisateur est ridiculement faible. Et comme les mots de passe basés sur DES sont limités en ASCII et ne peuvent contenir que 8 caractères, vous n'obtenez pas plus de 53 bits d'entropie. Passez à un hachage plus fort si vous le pouvez et modifiez les mots de passe.
kasperd
Ajout de quelques chiffres à mon commentaire précédent: mon ordinateur portable peut casser le lpmot de passe en 630 millisecondes. Le rootmot de passe est beaucoup plus fort. J'ai laissé une attaque par force brute s'exécuter pendant cinq heures avant de la terminer. Il n'a pas cassé le rootmot de passe dans ces cinq heures. Mais vous devez bien sûr toujours suivre la recommandation précédente et changer le mot de passe.
kasperd
pour mémoire, vous savez cette histoire que le mot de passe le plus populaire est le mot de passe? bien password1 ne peut pas être loin derrière. ridiculement faible en effet.
hildred

Réponses:

22

Vous devez vérifier man passwd :

Si le mot de passe chiffré est défini sur un astérisque (*), l'utilisateur ne pourra pas se connecter à l'aide de login (1), mais pourra toujours se connecter à l'aide de rlogin (1), exécuter des processus existants et en lancer de nouveaux via rsh (1), cron (8), at (1), ou filtres de messagerie, etc. Essayer de verrouiller un compte en changeant simplement le champ shell donne le même résultat et permet en outre d'utiliser su (1).

Habituellement, les comptes avec le *champ dans le mot de passe n'ont pas de mot de passe, par exemple: désactivé pour la connexion. Ceci est différent du compte sans mot de passe, ce qui signifie que le champ du mot de passe sera vide et ce qui est presque toujours une mauvaise pratique.

taliezin
la source
13

Les comptes avec mots de passe sont les comptes avec un glob de charabia base64 dans le deuxième champ:

root:8sh9JBUR0VYeQ:0:0:Super-User,,,,,,,:/:/bin/ksh
lp:VvHUV8idZH1uM:9:9:Print Spooler Owner:/var/spool/lp:/bin/sh

Cet ordinateur semble utiliser le crypt(3)hachage de mot de passe traditionnel basé sur DES . Ce hachage est assez faible par rapport aux normes modernes; si vous ne parvenez pas à obtenir une connexion root d'une autre manière, vous pouvez probablement récupérer le mot de passe par force brute, en utilisant John the Ripper ou un logiciel similaire. En outre, techniquement, il ne s'agit pas de base64 mais d'un encodage plus ancien et similaire, mais vous n'avez probablement pas à vous en soucier.

La distinction entre :*:et :!:mentionnée dans d'autres réponses est trop nouvelle pour être pertinente pour votre problème. Sur un système UNIX aussi ancien, il n'y a que trois choses différentes qui peuvent apparaître dans le champ du mot de passe:

alice::1001:1001:Alice Can Log In Without A Password:/home/alice:/bin/ksh
bob:WSy1W41d4D1Gw:1002:1002:Bob Must Supply A Password:/home/bob:/bin/ksh
carol:ANYTHING ELSE:1003:1003:Carol Cannot Log In At All:/home/carol:/bin/ksh

Si le contenu du champ de mot de passe est vide, vous pouvez vous connecter sans mot de passe.

Si le contenu du champ est le crypthachage valide d'un mot de passe, vous pouvez vous connecter avec ce mot de passe.

Sinon, vous ne pouvez pas vous connecter en tant qu'utilisateur. *est juste la chose conventionnelle à utiliser - ce n'est visuellement pas un hachage de mot de passe valide. Il a probablement été choisi par celui qui a écrit le passwdprogramme.

(Le fait d'avoir des ID utilisateur dans le fichier de mots de passe qui ne peuvent pas se connecter est qu'ils peuvent toujours posséder des fichiers, ils peuvent toujours avoir des crontravaux et les démons peuvent utiliser setuidpour assumer cette identité. En fait, il est préférable d'exécuter tous les démons (qui ne doivent pas s'exécuter en tant que root) sous ces ID utilisateur, de sorte que vous avez un certain niveau d'assurance que seuls le démon s'exécute sous cette identité.)

(Les comptes avec /dev/nulldans le champ shell sont verrouillés contre l' rootutilisation supour exécuter des programmes sous cette identité d'utilisateur, ainsi que la connexion régulière. De nos jours, vous êtes beaucoup plus susceptible de voir /bin/falseou d' /sbin/nologinutiliser à cette fin; je soupçonne que sur ce système, ce dernier ne n'existe pas et le premier est un script shell.)

(Le mot de passe de Bob est "bobpassw", crypté à l'aide de l'ancien algorithme, mais sur une machine Linux moderne; ce n'est peut-être pas ce que votre ordinateur produirait pour le même mot de passe et le même sel. L'une des raisons pour lesquelles l'ancien algorithme n'est pas considéré comme bon plus il a une limite supérieure dure de 8 caractères dans un mot de passe.)

(Je sais que le système est vraiment ancien car il utilise le hachage de mot de passe basé sur DES, parce qu'il n'utilise pas de fichier fantôme, et parce que le shell de root est /bin/kshplutôt que quelque chose de plus récent et plus ergonomique.)

zwol
la source
Je pensais que le mot de passe de bob n'avait pas tout à fait rempli le formulaire.
Joshua
@Joshua Fixé maintenant :)
zwol
S'il a besoin de démarrer dans la machine, ne serait-ce pas un démarrage plus rapide en mode de récupération ou un démarrage avec un CD / DVD live USB et changer le mot de passe en un autre que d'utiliser John the Ripper?
YoMismo
@YoMismo Un ordinateur aussi ancien (je suppose que c'est du début des années 1990) peut ne pas avoir de mode de récupération. Il a probablement la capacité de démarrer à partir d'une sorte de support amovible, mais il peut être assez difficile de trouver un CD ou une bande amorçable ou autre. Un liveCD moderne ne fonctionnera certainement pas .
zwol
@zwol J'essaierais de démarrer le système avec une distribution réelle et un chroot sur son ancien système, sans doute passwdn'aurait pas besoin d'avoir monté --bind / dev / sys ....
YoMismo
8

Cela signifie qu'il est désactivé pour la connexion directe. Il s'agit d'un utilisateur utilisé pour exécuter des services ou pour être utilisé pour rlogin. Vérifiez https://en.wikipedia.org/wiki/Passwd#Password_file

Marco
la source
Cet ordinateur est assez vieux, je ne savais pas si la signification avait changé avec le temps.
2015
@WouterVerhelst: il est désactivé pour la connexion. Il n'est pas désactivé pour rlogin. Vous devez regarder la réponse de plus près.
Brian
J'ai changé ma réponse. J'espère que c'est maintenant plus correct pour @WouterVerhelst.
Marco
3

À propos de votre question, voyez la réponse de taliezin (et acceptez celle-ci;)

À propos de votre autre problème: recherchez la chaîne 8sh9JBUR0VYeQ sur le disque pour déterminer le ou les blocs de disque dans lesquels il se trouve. Ensuite, ajoutez ce ou ces blocs de disque dans un fichier, remplacez cette chaîne par un hachage de mot de passe connu (l'ancienne crypte () une - même longueur) et réécrivez le (s) bloc (s) de disque à l'ancien emplacement - en faisant éventuellement une sauvegarde complète du disque auparavant. Étant donné que cette approche ne modifie pas la taille du fichier, aucune métadonnée du système de fichiers ne doit être mise à jour.

Bodo Thiesen
la source