Utilisateur sans mot de passe - comment peut-on se connecter à ce compte à partir d'un compte non root

25

Je viens de commencer à utiliser Scientific Linux (7.0) (bien que je suppose que cette question pourrait être neutre en termes de distribution ..). La version du noyau est 3.10.0-123.20.1.el7.x86_64.

Revenons à ma question.

Je suis passé au rootcompte et à partir de là, j'ai créé un nouveau compte test-accountutilisateur à l'aide de la commande adduser test-account. Il ne m'a pas demandé de mot de passe et je n'ai pas non plus utilisé l'option pour fournir un mot de passe. Donc je suppose que c'est un compte "sans mot de passe". Je peux me connecter à ce compte à partir du compte root - ce que je suppose que je pourrais sans fournir de mot de passe même si le compte de test avait un mot de passe. Cependant, lorsque j'essaie de me connecter à ce compte de test à partir d'un troisième compte, il me demande un mot de passe. Et le simple fait d'appuyer Enterne fonctionne pas.

Est-il possible de se connecter à ce compte à partir d'un compte non root. Existe-t-il un moyen (sans passer à root ou utiliser sudo)?

Lavya
la source
La politique de votre système pourrait être qu'un mot de passe est requis. adduserconnaît l' -poption de définir un mot de passe, son utilisation n'est pas recommandée. Donc, en tant que root, faites passwd test-accountet définissez un mot de passe.
ott--
non, le compte est créé sans mot de passe et je peux même y accéder en le basculant depuis root. la seule chose que je ne suis pas en mesure de le faire est de passer à un utilisateur normal.
Lavya
Comment y basculez-vous depuis root (quelle commande utilisez-vous)?
roaima
@roaima su test-account. Cela passe à l' test-accountinvite sans mot de passe (ce qui se passerait même si vous test-accountaviez un mot de passe). Cependant, lorsque j'essaie de basculer vers le compte de test à partir d'un autre compte utilisateur non privilégié, le noyau me demande le mot de passe avec une invite, et il n'accepte pas l' eneter
annulation
Vous avez déjà reçu la réponse à cela. Prendre plaisir.
roaima

Réponses:

29

Par défaut sur l'entreprise GNU / Linux et ses dérivés, la addusercommande crée un utilisateur qui est désactivé jusqu'à ce que vous spécifiez explicitement un mot de passe pour cet utilisateur.

Voici un exemple sur CentOS 6.5, qui devrait être le même que Scientific Linux.

 $ sudo adduser test
 $ sudo grep test /etc/shadow
 test:!!:123456:0:99999:7:::

la raison en est que dans le /etc/shadowfichier, le champ du mot de passe est !!comme vous pouvez le voir dans l'exemple.

une fois que vous exécutez passwdpour ce compte, il modifiera le mot de passe de l'utilisateur et lui permettra de se connecter.

donc ce que vous devriez pouvoir faire est le suivant pour avoir un utilisateur sans mot de passe, créez simplement un compte puis supprimez le mot de passe.

 $ sudo adduser test
 $ sudo passwd -d test
 Removing password for user test.
 passwd: Success
 $ su test
 $ whoami
 test

maintenant, tout utilisateur devrait pouvoir utiliser suet se connecter en tant qu'utilisateur testdans mon exemple. vous n'aurez pas à utiliser sudopour vous connecter en tant que compte.

Bien que cela soit possible et que vous puissiez avoir un compte sans mot de passe, cela n'est pas conseillé. Si vous définissez simplement le mot de passe de l'utilisateur, vous devez être autorisé à vous connecter.

$ sudo passwd test
[sudo] password for <YOURACCOUNT>:
Changing password for user test.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
Nathan McCoy
la source
"la commande adduser crée un utilisateur qui est désactivé jusqu'à ce que vous spécifiiez explicitement un mot de passe pour cet utilisateur": comment puis-je basculer test-account de la racine si c'est le cas (utilisateur étant désactivé)?
Lavya
su test-account
Nathan McCoy
Je voulais demander est que si le compte est désactivé, alors comment est-ce que je peux y basculer en utilisant à supartir de la racine?
Lavya
2
l' rootutilisateur peut sudans n'importe quel compte qui a un shell. Si le shell était défini sur, /bin/falsepar exemple, cela ne fonctionnerait pas. C'est juste la magie de root! de nombreux comptes d'utilisateurs n'ont pas de shell valide et ne sont utilisés que pour exécuter des programmes spécifiques en tant qu'utilisateur. tels que l' apacheutilisateur et le serveur Web Apache.
Nathan McCoy
Dans Ubuntu 18.04, je ne peux pas me connecter en tant qu'utilisateur avec un mot de passe vide.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
3

J'ai un invité utilisateur qui est sans mot de passe. C'est son record:

invité: U6aMy0wojraho: 17057: 0: 99999: 7 :::

La chaîne "U6aMy0wojraho" est le mot de passe haché de l'utilisateur invité. Lorsque je me connecte, je clique simplement sur Entrée pour le mot de passe et le système me permet d'entrer.

Vous devez éditer le fichier / etc / shadow et ajouter la chaîne mentionnée ci-dessus juste après le nom d'utilisateur et le premier deux-points.

J'ai copié cette chaîne à partir du CD live d'Ubuntu - son utilisateur est sans mot de passe.

Raicho Nikolov
la source
Au lieu de la réponse acceptée ( passwd -d ...), cela fonctionne également avec sddm.
mzimmer
1
La modification /etc/shadowdirecte du fichier est risquée et n'est généralement pas recommandée. Avoir un guestcompte, c'est bien, mais l'utilisation des outils pour modifier le mot de passe réduira la saisie utilisateur incorrecte potentielle ou les problèmes d'enregistrement de fichiers multi-utilisateurs.
Nathan McCoy
@NathanMcCoy, je reconnais que c'est risqué. Mais les outils GUI ne permettent pas de créer un mot de passe vide - il nécessite au moins 6 ou 8 caractères. C'est du moins le cas sur Kubuntu que j'utilise.
Raicho Nikolov
@NathanMcCoy oui, on pourrait utiliser chpasswd -epour le faire en toute sécurité: unix.stackexchange.com/a/472966/32558
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
C'est idéal pour les cas de récupération d'urgence, branchez le disque dur (pour ainsi dire) et modifiez quelques fichiers pour réparer la machine. Ajoutez spécifiquement cet utilisateur et ajoutez-le temporairement aux sudoers, puis utilisez une console série pour vous connecter et réparer tout ce qui s'est cassé openssh
Ray Foss
2

Utilisateur avec mot de passe vide

sudo useradd test-user-0
echo test-user-0:U6aMy0wojraho | sudo chpasswd -e
su test-user-0

L'invite de mot de passe s'affiche toujours malheureusement.

Mais si vous appuyez simplement sur Entrée sans rien taper, il se connecte en tant qu'utilisateur test-user-0.

Les -edrapeaux indiquent chpasswdque le mot de passe est déjà crypté et U6aMy0wojrahoest le hachage de la chaîne vide.

Testé sur Ubuntu 18.04.

Connexion automatique BusyBox

Sur le terminal au moins, vous n'avez pas besoin de créer un utilisateur sans mot de passe pour permettre à quelqu'un de ne pas taper son mot de passe à chaque fois, inittabun piratage suffit: comment se connecter automatiquement sans taper le nom d'utilisateur ou le mot de passe root dans Buildroot BusyBox init?

Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
la source