Bonjour à tous,

Cet après midi, voila qu'il me prend l'envie de decouvrir un petit peu plus encore le Linux qu'il y a dans mon PC... En fouillant un petit peu, pour savoir s'il était possible de réinisitaliser le password "root" d'un PC sous Linux, j'ai lu que les mots de passe sont sauvegardés dans etc/shadow.

En effet, il sont sauvegardés sous la forme suivante :
root:$6$2n6Tk8wa6SHhsiMF$YueSb9SJY7j8Ez0YPbzVU4oBd6G/Jk7ZyDHat5POEbmA.WR70KFiDkg1NYVVuM.VbRUsQ0WEPHWXl807m5iyg/:14175:0:99999:7:::

La fin de la ligne ( 14175:0:99999:7:::) ne détiens que des informations sur la date du changement de mot de passe, sa durée de validité...
Le mot de passe se situe entre les deux premiers ":" dans mon cas le mot de passe crypté donne donc $6$2n6Tk8wa6SHhsiMF$YueSb9SJY7j8Ez0YPbzVU4oBd6G/Jk7ZyDHat5POEbmA.WR70KFiDkg1NYVVuM.VbRUsQ0WEPHWXl807m5iyg/
C'est donc ici qu'on peut réinisitaliser le mot de passe, a partir d'un autre PC ou en bootant avec un Live CD ou une Live Clé USB (je ne sais pas si ça se dit comme ça ^^' mais ça existe)

J'ai également vu ces lignes :

ftp:*:14175:0:99999:7:::
nobody:*:14175:0:99999:7:::
vcsa:!!:14175:0:99999:7:::
nscd:!!:14175:0:99999:7:::

Le mot de passe semble donc sauvegardé en "*" ou en "!!" pour les "utilisateurs" qui sont les logiciels installés dans l'ordinateur.
En entrant la commande "su ftp" ou "su vcsa" par exemple je remarque également que ça ne marche pas, je ne peux pas me log en tant que ces utilisateurs...

Si j'ai bien compris, "ftp" est un compte utilisateur pas vraiment protégé par mot de passe, que seul le systeme peut démarrer, et qui n'a donc que les permissions minimales pour executer le serveur FTP ?
Est il possible de se log en tant que "ftp" par exemple, et de voir les fichiers auxquels "ftp" à accès ?
J'ai également lu que le mot de passe d'un utilisateur (comme mon mot de passe root quelques lignes ci dessus) était crypté en "DES", est-ce sans risque d'afficher la ligne de mon mot de passe comme je le fait au dessus, ou bien le cryptage DES est-il un cryptage sûr ? (mon mot de passe fait 8 caractères, en 6 lettres au début et deux chiffres à la fin, je voudrais voir si queqlu'un arrive à me le décrypter ^^' )

Merci d'avance pour vos lumières 🙂
Je pense qu'avant tout, il serait bon que tu lises les pages correspondantes du man, on ne peut pas les réécrire ici.

Sache cependant que le fichier /etc/shadowne fait que compléter le fichier /etc/passwd, et c'est en combinant les deux que tu comprendras le tout.
Salut

La suite shadow permet de stocker les mots de passes ailleurs que dans /etc/passwd en l'occurence dans /etc/shadow qui n'est accessible qu'à root.
Cela évite qu'une personne puis lire les mots de passe sous leur forme même encodée, en effet ils sont encodés à l'aide de l'algorithme DES (en ajoutant une chaine nommée "salt" afin que chaque mot de passe puisse avoir 4096 formes encodées). DES "hash" le mot de passe, il en calcule une somme comme md5, sauf que l'algo est connu depuis longtemps et il est facile de réaliser une attaque par dictionnaire ou force brute (moins souvent utilisé) en calculant au préalable les 4096 formes possibles de mots de passe communs ou même aléatoires et ça met en danger la sécurité du système.

Sauf que des outils comme ls ont besoin de lire /etc/passwd pour avoir le nom de l'utilisateur, et bien sur quand tu fais ls dans un terminal en utilisateur, tu lis /etc/passwd en utilisateur 😉 la solution était donc de déplacer les mots de passe dans un fichier lisible seulement par root qui y accèdera pour les authentifications, les logins etc.

C'est ce à quoi sert /etc/shadow qui d'ailleurs fait partie de la suite shadow qui comprend aussi des outils dans leur version "shadow" comme su, passwd...

En éspérant avoir répondu à ta question 🙂

A+
Salut,

Pour le man j'en avais entendu parler une ou deux fois, enfin j'ai déja entendu ce mot la quelque part, et en effet après une recherche il y a 5 minutes sur google, je découvre que le man, c'est déja dans mon pc :o et que je n'ai juste qu'a taper "man shadow" pour découvrir un tas de formules très geek, mais avec quand même quelques explications 🙂 Je ne connaissais pas encore

Pour ce qu'a dit EOF c'est super clair.
Il est donc possible de finir par trouver le mot de passe (ça en fait quelques uns a essayer, mais quand même) bien que le fait que ceux ci ne soient plus stockés dans passwd rend difficile (voire impossible) l'accès aux mot de passe cryptés quand on n'est pas en root.

Merci à vous deux !
De rien 😉

La suite shadow sécurise bien les mots de passes mais cracker un mot de passe faible en DES est malheureusement rapide, même avec le "salt" donc encore une fois : choisir des mots de passes forts avec des minuscules, des majuscules, des chiffres et des caractères spéciaux, niveau longeure pas en dessous de 6 caractères :-P
Tiens je me posais la même question, merci EOF.
en bootant en init 1 tu peux changer n'importe quel mot de passe en utilisant simplement la commande passwd, très utile si tu as oublié ton mdp root
Efficace en effet !
Par contre je ne peux utiliser la commande "telinit x" que quand je suis log en tant que "root", y'a moyen d'y remedier ? ("shutdown" non plus ne fonctionne plus quand je suis pas log en tant que "root", il me semblais que ces commandes fonctionnaient sur les précendentes versions de linux )
telinit et shutdown sont des commandes d'administration et comme telles sont réservées a priori à root.
Elles sont situées dans /sbin.
Tu peux évidemment ajouter /sbin et ou /usr/sbin/ dans ton PATH, mais certaines commandes comme tcpdump (/usr/sbin/tcpdump) ne pourront pas fonctionner pour des raisons évidentes de sécurité.
D'ailleurs en ce moment sous F10 bêta /sbin et /usr/sbin sont dans le PATH d'un utilisateur non root. A vérifier lors de la sortie officielle.
Floppy wrote:Efficace en effet !
Par contre je ne peux utiliser la commande "telinit x" que quand je suis log en tant que "root", y'a moyen d'y remedier ? ("shutdown" non plus ne fonctionne plus quand je suis pas log en tant que "root", il me semblais que ces commandes fonctionnaient sur les précendentes versions de linux )
regarde les droits sur ces exécutables, tu verras que la plupart du temps, seul root est autorisé à les lancer.
@nouvo09
-rwxr-xr-x 1 root root 55608 avr 25  2008 /sbin/telinit
-rwxr-xr-x 1 root root 62788 avr 25  2008 /sbin/shutdown
-rwxr-xr-x 1 root root 612436 fév 13  2008 /usr/sbin/tcpdump
Même tcpdump est considéré comme exécutable, mais en réalité il ne va pas très loin car il n'a pas accès aux ressources nécessaires.
Exact. Je ne vois d'ailleurs pas pourquoi ces droits mais bon, c'est un autre sujet.
@nouvo09
Voir mon post sur /sbin et /usr/sbin qui seront dans le PATH de chaque utilisateur à partir de F10
Oui je l'ai vu et même commenté.