Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 14/07/2012, à 22:55

PounkyM

[Résolu]Problèmes pour définir un shell par défaut pour un utilisateur

Bonjour à tous,

J’aimerais définir zsh comme shell par défaut pour l’utilisateur user. Après lecture du man, je me suis donc connecté en ssh sur le compte du user mais voici l’erreur que j’ai eu lorsque j’ai voulu utiliser chsh :

% sudo chsh
Password: 
chsh: PAM authentication failed

Que faire ?

Dernière modification par PounkyM (Le 16/07/2012, à 14:12)


"La liberté est un bagne aussi longtemps qu'un seul homme est asservi sur la terre"

Hors ligne

#2 Le 15/07/2012, à 00:43

Amarokk

Re : [Résolu]Problèmes pour définir un shell par défaut pour un utilisateur

Salut!
As-tu tout simplement essayé de définir zsh comme shell par défaut dans le fichier /etc/passwd?
/bin/zsh j'imagine (`which zsh` te donnera le lien complet)


Ubuntuboy since 2007

Hors ligne

#3 Le 15/07/2012, à 00:47

xavier4811

Re : [Résolu]Problèmes pour définir un shell par défaut pour un utilisateur

Bsoir,

Ca sent la boulette ça.
Vérifie en 1er qu'il y a bien une ligne /bin/zsh dans /etc/shells
Si tu utilise sudo tu change le shell par défaut de root, pas celui de user.
Si tu a saisi une fois un nom de shell incorrect, pour remettre le bon (/bin/zsh et non pas zsh) il faut ouvrir /etc/pam.d/chsh, commenter la ligne

auth       required   pam_shells.so

relancer

sudo chsh

remettre le bon shell pour root, rouvrir /etc/pam.d/chsh et dé-commenter la même ligne que précédemment.
une fois que c'est fait vérifier la présence de /bin/zsh puis

chsh  -s /bin/zsh

ou

sudo chsh  -s /bin/zsh user

Dernière modification par xavier4811 (Le 15/07/2012, à 00:48)

Hors ligne

#4 Le 15/07/2012, à 23:23

PounkyM

Re : [Résolu]Problèmes pour définir un shell par défaut pour un utilisateur

@Amarokk : salut et merci de ta réponse mais le problème, c’est que je ne sais pas quelle ligne changer… (il y a plusieurs lignes pour l’utilisateur en question…)

@xavier : salut ! mon /etc/shells semble être bon :

$ cat /etc/shells 
# /etc/shells: valid login shells
/bin/csh
/bin/sh
/usr/bin/es
/usr/bin/ksh
/bin/ksh
/usr/bin/rc
/usr/bin/tcsh
/bin/tcsh
/usr/bin/esh
/bin/dash
/bin/bash
/bin/rbash
/bin/zsh
/usr/bin/zsh

J’ai essayé la commande que tu m’as donnée mais j’ai un problème :

$ chsh -s /bin/zsh
Password: 
Multiple entries named 'user' in /etc/passwd. Please fix this with pwck or grpck.
chsh: failed to prepare the new /etc/passwd entry 'user'

Je copie/colle mon /etc/passwd :

$ cat /etc/passwd | grep user
root:x:0:0:root:/root:user
user:x:1000:1000:Raspberry Pi User,,,:/home/user:/bin/bash
user:x:1001:1001::/home/user:/bin/bash

C’est un peu le bazar non ?


"La liberté est un bagne aussi longtemps qu'un seul homme est asservi sur la terre"

Hors ligne

#5 Le 15/07/2012, à 23:46

xavier4811

Re : [Résolu]Problèmes pour définir un shell par défaut pour un utilisateur

PounkyM a écrit :

J’ai essayé la commande que tu m’as donnée mais j’ai un problème :

$ chsh -s /bin/zsh
Password: 
Multiple entries named 'user' in /etc/passwd. Please fix this with pwck or grpck.
chsh: failed to prepare the new /etc/passwd entry 'user'

Je copie/colle mon /etc/passwd :

$ cat /etc/passwd | grep user
root:x:0:0:root:/root:user
user:x:1000:1000:Raspberry Pi User,,,:/home/user:/bin/bash
user:x:1001:1001::/home/user:/bin/bash

C’est un peu le bazar non ?

Ok pour /etc/shells mais ton /etc/passwd par contre...

Pour root c'est bizarre qu'il n'y ai pas de shell par défaut.
Tu a 2 ligne "user" avec 2 uid/gid différents sur le même home.
Logiquement le premier créé sur debian a un uid de 1000.
Ca donne quoi un

id

connecté avec ton compte habituel ?
En passant essaye de te connecter en tant que root au login, si ça marche pas tu peut déja changer la ligne de root
Pour le reste le 1er user a l'air correct par rapport a ce que j'ai sous la main

 cat /etc/passwd | grep "xavier\|root"
root:x:0:0:root:/root:/bin/bash
xavier:x:1000:1000:xavier,,,:/home/xavier:/bin/bash

Hors ligne

#6 Le 16/07/2012, à 08:17

PounkyM

Re : [Résolu]Problèmes pour définir un shell par défaut pour un utilisateur

Alors, quand je me connecte avec user, j’obtiens :

$ id
uid=1000(user) gid=1000(user) groups=1000(user),4(adm),20(dialout),24(cdrom),29(audio),46(plugdev),100(users),104(fuse),111(lpadmin),119(admin),122(sambashare),136(vchiq),257(powerdev),1004(www-data)
xavier 4811 a écrit :

En passant essaye de te connecter en tant que root au login

Je ne sais pas comment faire car j’ai désactivé le droit de se connecter à mon serveur en root…

EDIT : est-ce que je peux rajouter /bin/zsh à la fin de la ligne concernant root dans /etc/passwd ?

Dernière modification par PounkyM (Le 16/07/2012, à 08:20)


"La liberté est un bagne aussi longtemps qu'un seul homme est asservi sur la terre"

Hors ligne

#7 Le 16/07/2012, à 09:34

Pseudo supprimé

Re : [Résolu]Problèmes pour définir un shell par défaut pour un utilisateur

usermod

#8 Le 16/07/2012, à 09:52

PounkyM

Re : [Résolu]Problèmes pour définir un shell par défaut pour un utilisateur

@Titouan : je n’ai pas tout bien compris…


"La liberté est un bagne aussi longtemps qu'un seul homme est asservi sur la terre"

Hors ligne

#9 Le 16/07/2012, à 10:19

Pseudo supprimé

Re : [Résolu]Problèmes pour définir un shell par défaut pour un utilisateur

solution provisoire.

sudo su - user -s /bin/bash
sinon 
sudo usermod user -s /bin/bash

#10 Le 16/07/2012, à 12:59

PounkyM

Re : [Résolu]Problèmes pour définir un shell par défaut pour un utilisateur

Merci pour ton aide mais j’ai toujours le même problème :

$ sudo usermod user -s /bin/zsh 
Multiple entries named 'user' in /etc/passwd. Please fix this with pwck or grpck.
usermod: failed to prepare the new /etc/passwd entry 'user'

"La liberté est un bagne aussi longtemps qu'un seul homme est asservi sur la terre"

Hors ligne

#11 Le 16/07/2012, à 13:00

xavier4811

Re : [Résolu]Problèmes pour définir un shell par défaut pour un utilisateur

PounkyM a écrit :

Alors, quand je me connecte avec user, j’obtiens :

$ id
uid=1000(user) gid=1000(user) groups=1000(user),4(adm),20(dialout),24(cdrom),29(audio),46(plugdev),100(users),104(fuse),111(lpadmin),119(admin),122(sambashare),136(vchiq),257(powerdev),1004(www-data)

EDIT : est-ce que je peux rajouter /bin/zsh à la fin de la ligne concernant root dans /etc/passwd ?

Donc la ligne user:x:1001... doit pas beaucoup servir, tu devrait pouvoir la supprimer.
Fait une vérification avant avec pwck & grpck,ça t'affichera les erreurs de /etc/passwd et /etc/group.

Tu peut changer la ligne root par si besoin

root:x:0:0:root:/root:/bin/zsh

J'ai sacrifié une VM debian pour vérifier, aucun problème.

Hors ligne

#12 Le 16/07/2012, à 13:08

PounkyM

Re : [Résolu]Problèmes pour définir un shell par défaut pour un utilisateur

Merci Xavier pour ta réponse.
J’ai essayé pwck et il me retourne :

$ sudo pwck
user 'root': program 'user' does not exist
user 'lp': directory '/var/spool/lpd' does not exist
user 'news': directory '/var/spool/news' does not exist
user 'uucp': directory '/var/spool/uucp' does not exist
user 'www-data': no group 33
user 'list': directory '/var/list' does not exist
user 'irc': directory '/var/run/ircd' does not exist
user 'gnats': directory '/var/lib/gnats' does not exist
user 'nobody': directory '/nonexistent' does not exist
user 'syslog': directory '/home/syslog' does not exist
user 'avahi-autoipd': directory '/var/lib/avahi-autoipd' does not exist
user 'avahi': directory '/var/run/avahi-daemon' does not exist
user 'couchdb': directory '/var/lib/couchdb' does not exist
user 'usbmux': directory '/home/usbmux' does not exist
user 'speech-dispatcher': directory '/var/run/speech-dispatcher' does not exist
user 'pulse': directory '/var/run/pulse' does not exist
user 'saned': directory '/home/saned' does not exist
user 'hplip': directory '/var/run/hplip' does not exist
duplicate password entry
delete line 'user:x:1000:1000:Raspberry Pi User,,,:/home/user:/bin/bash'?

Je réponds oui ?


"La liberté est un bagne aussi longtemps qu'un seul homme est asservi sur la terre"

Hors ligne

#13 Le 16/07/2012, à 13:15

xavier4811

Re : [Résolu]Problèmes pour définir un shell par défaut pour un utilisateur

C'est pas du tout celle que je pensais supprimer.
Fais un

ls -ln /home && ls -ln ~/

pour vérifier les uid/gid de ton home, si c'est pas la bonne tu ne pourra plus accéder a ton répertoire.

Hors ligne

#14 Le 16/07/2012, à 13:18

PounkyM

Re : [Résolu]Problèmes pour définir un shell par défaut pour un utilisateur

$ ls -ln /home && ls -ln ~/
total 28
drwx------  2    0    0 16384 Jun 17 14:43 lost+found
drwxr-xr-x 19 1000 1000  4096 Jul 16 11:59 user
drwxr-xr-x  5 1002 1001  4096 Jul 11 17:54 simon
drwxr-xr-x  2    0    0  4096 Jul  5 11:13 theo
total 24
drwxr-xr-x 17    0    0 4096 Jul  2 15:13 backup
drwxr-xr-x  2 1000 1000 4096 Jun 16 22:11 Desktop
drwxr-xr-x  2 1000 1000 4096 Jul  1 12:05 Downloads
drwxr-xr-x  2 1000 1000 4096 Jun 16 23:05 mnt
drwxr-xr-x  3 1000 1000 4096 Jul 11 16:56 series
drwxr-xr-x  4 1000 1000 4096 Jun 30 14:38 src

Je refais sudo pwck et je supprime l’autre ligne concernant user alors ?


"La liberté est un bagne aussi longtemps qu'un seul homme est asservi sur la terre"

Hors ligne

#15 Le 16/07/2012, à 13:24

xavier4811

Re : [Résolu]Problèmes pour définir un shell par défaut pour un utilisateur

Oui c'est la 1001 qui est en trop, si pwck te propose l'autre quitte et supprime la directement dans le fichier.
Par contre ne supprime pas le groupe 1001, l'autre utilisateur "simon" a l'air d'en faire partie

drwxr-xr-x  5 1002 1001  4096 Jul 11 17:54 simon

Hors ligne

#16 Le 16/07/2012, à 14:12

PounkyM

Re : [Résolu]Problèmes pour définir un shell par défaut pour un utilisateur

C’est bon, j’ai utilisé pwck, supprimé la ligne 1001, et j’ai pu changer le shell !

Merci beaucoup !


"La liberté est un bagne aussi longtemps qu'un seul homme est asservi sur la terre"

Hors ligne

#17 Le 06/04/2017, à 19:03

guira

Re : [Résolu]Problèmes pour définir un shell par défaut pour un utilisateur

bonjour tout le monde
j ai eu le même problème et j ai pu le résoudre en modifiant la première ligne du fichier /etc/passwd,  comme tel root:x:0:0:root:/root:<partie à modifier selon le shell désiré>

une fois ce fichier modifié le mot de passe ne sera plus demandé et il n y aura plus d erreur.
j espére que cela marchera pour vous smile

Hors ligne