OVH Cloud OVH Cloud

/bin/bash permission denied

22 réponses
Avatar
Jean-Jacques Gerbaud
Bonjour à tous,

Ca fait plusieurs fois que j'essaie d'envoyer un message à la liste et il
m'est retourné deux fois car "il ne respectait pas la charte".

Je me suis aperçu que l'objet du message était "/bin/bash" et ce sont ces
deux slash qui ne sont pas conformes.

J'ai donc pris un de mes anciens messages aui avait "'passé le filtre" et,
par copier coller, j'ai tout mis en ordre mais, sans y prêter attention, une
partie du texte de ce message s'est mêlé à celui que je voulais envoyer ce
qui donne quelque chose d'incompréhensible ! Je vous demande donc de ne pas
tenir compte de ce message "ancien" qui n'est plus d'actualité. Mais la
question qui suit est tout a fait réelle et je n'arrive pas à me
dépatouiller avec ça.

Aujourd'hui, j'ai un problème que je n'avais eu auparavant et je suis bien
embêté pour le résoudre.

je suis sous Agnula/DeMudi (Debian) et je n'ai pas ouvert mon ordinateur
depuis quelques jours. J'ai réussi à me connecter mais, en console, je n'ai
pas réussi à lancer la commande "locate", "whereis", "find" ---> command not
found. Bon, j'ai pensé : c'est un problème de path" et j'ai tapé la
commande "su" pour voir ---> command not found
Je ne peux même plus me connecter sous "root" et là c'est grave.

Il m'est déjà arrivé d'avoir des problèmes bizarres et, à la reconnexion,
tout est redevenu normal. Je me déconnecte donc en espérant qu'au prochain
redémarrage, je vais retrouver mon environnement KDE comme d'habitude. Et
bien non ! Rien à faire, je n'arrive plus à avoir l'environnement graphique,
quel qu'il soit, ni kde, ni Gnome !

Les messages d'erreur :
no directory, logging in with HOME=/
cannot execute /bin/bash : permission denied.

J'ai ouvert un autre user pour voir s'il pourrait, lui, se connecter mais :
mêmes messages !

Dans mon dossier personnel j'ai les fichiers normaux (je pense)
./bash_profile et ./bashrc.

Quelqu'un peut il me donner une piste ?

Merci
--
Jean-Jacques Gerbaud - 26110 Vinsobres

10 réponses

1 2 3
Avatar
Jean-Jacques Gerbaud
Jean-Jacques Gerbaud wrote:


Merci Capfree d'avoir répondu.
........
# User privilege specification
root ALL=(ALL) ALL
jjg ALL=NOPASSWD: ALL





Affreux ça! Qu'est ce qui l'a configuré comme ça sans demander?
D'abord que donne dans chaque distrib ?
ls -l /etc/sudoers
Sur mandriva :

[ /]$ ls -l /etc/sudoers
-r--r----- 1 root root 608 aoû 30 2005 /etc/sudoers

Sur Agnula-Demudi/Debian
[ etc]# ls -l /mnt/_/etc/sudoers
-r--r----- 1 root root 303 fév 13 19:30 /mnt/_/etc/sudoers

Voici les lignes de sudoers qui autorisent exclusivement l'user francois à
lancer la commande de connexion : $ sudo /usr/sbin/adsl-start

[# User alias specification
[Cmnd_Alias ADSLSTART=/usr/sbin/adsl-start

[...]
[# User privilege specification
[root ALL=(ALL) ALL
[francois ALL=NOPASSWD:ADSLSTART

et rien d'autre, ni personne si mot de passe user au lancement

Avec ça, tu as un Linux au moins aussi sécurisé qu'un Windows 95 ...



Merci de ta remarque mais ça ne fait pas beaucoup avance le schmilblick
! ;-)

Est ce que je dois désinstaller sudo ? (et tous les paquets qui vont
avec ?)

Non, il faut apprendre vim et man sudo (si besoin sur le web en français)

puis pour écrire
# chmod 660 /etc/sudoers

lancer visudo et finir par

# chmod 440 /etc/sudoers


Remarques :
- Depuis longtemps, j'utilise vi et je peux dire que je sais me dépatouiller
avec.
- J'ai installé "sudo" parce que je pensais que ça pouvait m'éviter de
passer par "su" pour certaines commandes. Apparemment, ce n'est pas le cas
et mon fichier /etc/sudoers a été configuré tel qu'il est actuellement par
le système. Ce n'est évidemment pas moi qui l'ai mis ainsi !
- Si ça pose tellement de problèmes, je n'ai aucune objection à éliminer,
détruire, faire disparaître, supprimer, enlever, dissoudre, purger, etc...
ce $@?&£ de sudo dont je me suis passé pendant des années !

- Enfin - et c'est la dernière remarque - tu me dis d'écrire "# chmod 660
/etc/sudoers" puis "# chmod 440 /etc/sudoers"
a) - laquelle de ces commandes est la bonne
b) - je pense que je n'ai pas bien compris ce que tu m'expliques ci-dessus.
Ou alors, il me semble, d'après ce que je lis ici et là, que le fichier
/etc/sudoers doit être complété par "root" chaque fois qu'un utilisateur
lambda veut exécuter une commande normalement inacessible par lui. Est-ce
bien ça ? Si c'est oui, mon fichier /etc/sudoers permet à l'utilisateur
"viejo" que je suis de TOUT faire ! Autant dire que je n'ai plus besoin de
"root" !
c) - n'est il pas préférable de supprimer carrément "sudo" ? C'est cette
solution qui me semble la meilleure dans la mesure où, comme je l'ai dit
ci-dessus, je n'ai aucune objection à taper "su" puis le mot de passe "root"
pour exécuter une commande.


Tout ça ne résoud pas le pb du départ, Debian n'est pas un truc pour
débutant, moi éternel newbie j'y touche pas ;-)
J'ai utilisé Mandrake puis Mandriva depuis des années et ce n'est que

l'année dernière que j'ai installé Debian. J'ai eu quelques difficultés et
abandonné devant les problèmes. Je m'y suis remis avec Agnula-deMudi
(Debian) et. Jusqu'à présent, tout allait bien. Et je réussissais à
"dominer" ma machine, c'est à dire installer le son, l'imprimante, le réseau
lorsque ceux-ci n'étaient pas configurés tout seuls, par le système. Il me
semble même que, à l'usage, c'est finalement plus facile que Mandriva. Si tu
es un "éternel newbie" (comme moi, d'ailleurs), je t'invite à essayer et,
avec de la patience, tu y arriveras (comme moi, aussi !)

Merci en tout cas de tes conseils, que j'attends avec impatience.

--
Jean-Jacques Gerbaud - 26110 Vinsobres




Avatar
capfree
Jean-Jacques Gerbaud wrote:

D'abord que donne dans chaque distrib ?
ls -l /etc/sudoers
Sur mandriva :

[ /]$ ls -l /etc/sudoers
-r--r----- 1 root root 608 aoû 30 2005 /etc/sudoers

Sur Agnula-Demudi/Debian
[ etc]# ls -l /mnt/_/etc/sudoers
-r--r----- 1 root root 303 fév 13 19:30 /mnt/_/etc/sudoers




Non, il faut apprendre [[vim et man]] sudo (si besoin sur le web en

français) puis pour écrire
# chmod 660 /etc/sudoers

lancer visudo et finir par

# chmod 440 /etc/sudoers


Remarques :
- Depuis longtemps, j'utilise vi et je peux dire que je sais me
dépatouiller avec.
- J'ai installé "sudo" parce que je pensais que ça pouvait m'éviter de
passer par "su" pour certaines commandes. Apparemment, ce n'est pas le
cas et mon fichier /etc/sudoers a été configuré tel qu'il est
actuellement par le système. Ce n'est évidemment pas moi qui l'ai mis
ainsi ! - Si ça pose tellement de problèmes, je n'ai aucune objection à
éliminer, détruire, faire disparaître, supprimer, enlever, dissoudre,
purger, etc... ce $@?&£ de sudo dont je me suis passé pendant des années
!

- Enfin - et c'est la dernière remarque - tu me dis d'écrire "# chmod
660 /etc/sudoers" puis "# chmod 440 /etc/sudoers"
a) - laquelle de ces commandes est la bonne
b) - je pense que je n'ai pas bien compris ce que tu m'expliques
ci-dessus.


chmod 6 donne le droit d'écrire sudoers avec visudo, chmod 4 revient à la
lecture seule, l'état normal.

Ou alors, il me semble, d'après ce que je lis ici et là, que
le fichier /etc/sudoers doit être complété par "root" chaque fois qu'un
utilisateur lambda veut exécuter une commande normalement inacessible
par lui. Est-ce bien ça ? Si c'est oui, mon fichier /etc/sudoers permet
à l'utilisateur "viejo" que je suis de TOUT faire ! Autant dire que je
n'ai plus besoin de "root" !


C'est ça, c'est pourquoi cmnd précise quelles seules commandes root
autorise.

c) - n'est il pas préférable de supprimer carrément "sudo" ? C'est cette
solution qui me semble la meilleure dans la mesure où, comme je l'ai dit
ci-dessus, je n'ai aucune objection à taper "su" puis le mot de passe
"root" pour exécuter une commande.

Si c'est pour une commande très courante, se connecter par ex.,

sudo /usr/sbin/adsl-start
est plus sûr et aussi rapide que
su etc...
Et on peut même le lancer par un script = une simple icône sur le bureau

http://www.bsdbooks.net/shells/Linux-sudo.html


Tout ça ne résoud pas le pb du départ, Debian n'est pas un truc pour
débutant, moi éternel newbie j'y touche pas ;-)
J'ai utilisé Mandrake puis Mandriva depuis des années et ce n'est que

l'année dernière que j'ai installé Debian. J'ai eu quelques difficultés
et abandonné devant les problèmes. Je m'y suis remis avec Agnula-deMudi
(Debian) et. Jusqu'à présent, tout allait bien. Et je réussissais à
"dominer" ma machine, c'est à dire installer le son, l'imprimante, le
réseau lorsque ceux-ci n'étaient pas configurés tout seuls, par le
système. Il me semble même que, à l'usage, c'est finalement plus facile
que Mandriva. Si tu es un "éternel newbie" (comme moi, d'ailleurs), je
t'invite à essayer et, avec de la patience, tu y arriveras (comme moi,
aussi !)

J'ai un handicap rhédibitoire, je ne me fais pas à l'anglais.

I cancelled ;-)

Merci en tout cas de tes conseils, que j'attends avec impatience.



--
caprinew



Avatar
Matthieu Moy
Jean-Jacques Gerbaud writes:

Jean-Jacques Gerbaud writes:

Il est à supposer que ces commandes doivent êtres passées par l'user
mais, comme je l'ai dit dans mon message précédent, je ne peux pas me
logger :-(




[...]

lorsque j'ai voulu me connecter à Debian, j'ai pu le faire sans
pouvoir lancer les commandes "locate", whereis" ni même "su !


Je ne comprends toujours pas. Tu dis que tu ne peux pas te connecter,
et juste après, tu dis que tu peux, sans pouvoir lancer de commande.

Bon, on va poser la question plus clairement. Coches les cases :

Tu peux te logguer sur ta Debian :

[ ] Oui
[ ] Non

Si oui, tu peux lancer les commandes locate, whereis, ... :

[ ] Oui
[ ] Non

--
Matthieu



Avatar
Jean-Jacques Gerbaud
Jean-Jacques Gerbaud writes:
........


Je ne comprends toujours pas. Tu dis que tu ne peux pas te connecter,
et juste après, tu dis que tu peux, sans pouvoir lancer de commande.

Bon, on va poser la question plus clairement. Coches les cases :

Tu peux te logguer sur ta Debian :

[x ] Oui ----> en tant que root
[x ] Non ---> comme user

Si oui, tu peux lancer les commandes locate, whereis, ... :

[x ] Oui ----> en tant que root
[x ] Non ---> comme user ]


Il me semblait pourtant avoir étgé assez clair.
Je résume, rien n'est changé pour "root" qui peut faire ce qu'il veut.

Pour l'user, il ne peut rien faire car il ne peut pas se logguer. (messages
d'erreur :
no directory, logging in with HOME=/
cannot execute /bin/bash : permission denied).

Voila.

--
Jean-Jacques Gerbaud - 26110 Vinsobres

Avatar
Matthieu Moy
Jean-Jacques Gerbaud writes:

Jean-Jacques Gerbaud writes:
........

Je ne comprends toujours pas. Tu dis que tu ne peux pas te
connecter,
et juste après, tu dis que tu peux, sans pouvoir lancer de commande.
Bon, on va poser la question plus clairement. Coches les cases :
Tu peux te logguer sur ta Debian :
[x ] Oui ----> en tant que root
[x ] Non ---> comme user
Si oui, tu peux lancer les commandes locate, whereis, ... :
[x ] Oui ----> en tant que root
[x ] Non ---> comme user ]


Il me semblait pourtant avoir étgé assez clair.
Je résume, rien n'est changé pour "root" qui peut faire ce qu'il veut.


J'ai toujours pas compris.

,----
| mais lorsque j'ai voulu me connecter à Debian, j'ai pu le faire sans
| pouvoir lancer les commandes "locate", whereis" ni même "su !
`----

Quel est l'utilisateur qui a pu se connecter à Debian sans pouvoir
lancer les commandes ??

Soit plus clair dans tes explications, ou alors ne t'étonnes pas si tu
n'as pas de réponse ...

Pour l'user, il ne peut rien faire car il ne peut pas se logguer.
(messages d'erreur :
no directory, logging in with HOME=/
cannot execute /bin/bash : permission denied).


En root, sur la Debian, que donnent

echo ~jjg
ls -l ~jjg
cat /etc/mtab
su jjg

--
Matthieu


Avatar
Sébastien Monbrun aka TiChou
Dans le message <news:,
*Matthieu Moy* tapota sur f.c.o.l.configuration :

En root, sur la Debian, que donnent

echo ~jjg
ls -l ~jjg


ls -ld ~jjg/{,.bash*,.profile*} /home

cat /etc/mtab


J'ai tendance à plutôt préconiser la commande 'mount' ou, mieux, la lecture
de /proc/mounts (/etc/mtab peut être corrompu ou non à jour ; mount peut
être corrompu aussi ; /proc/mounts plus difficilement).

su jjg


Et je rajouterai :

grep jjg /etc/passwd

--
Sébastien Monbrun aka TiChou

Avatar
Matthieu Moy
Sébastien Monbrun aka TiChou writes:

Dans le message <news:,
*Matthieu Moy* tapota sur f.c.o.l.configuration :

En root, sur la Debian, que donnent

echo ~jjg
ls -l ~jjg


ls -ld ~jjg/{,.bash*,.profile*} /home


Oui, en effet, le -d est bienvenu.

su jjg


Et je rajouterai :

grep jjg /etc/passwd


Ça, on a déjà :

,----
| "grep jjg /etc/passwd" sous "root" et voila la réponse :
|
| jjg:x:1000:1000:Jean-Jacques Gerbaud,,,:/home/jjg:/bin/bash
`----

--
Matthieu


Avatar
Sébastien Monbrun aka TiChou
Dans le message <news:,
*Matthieu Moy* tapota sur f.c.o.l.configuration :

Et je rajouterai :

grep jjg /etc/passwd


Ça, on a déjà :


[...]

Oups, au temps pour moi Matthieu. J'avais suivi le début du fil et
aujourd'hui la fin mais sans lire les messages intermédiaires.
Décidément, ce n'est pas mon jour. :-)

--
Sébastien Monbrun aka TiChou


Avatar
jjgerbaud
Matthieu Moy wrote:
Sébastien Monbrun aka TiChou writes:
.......,

*Matthieu Moy* tapota sur f.c.o.l.configuration :


En root, sur la Debian, que donnent

echo ~jjg
/home/jjg




ls -ld ~jjg/{,.bash*,.profile*} /home
ls /home/jjg/profile* : aucun fichier ou répertoire de ce type


drw-rw-rw- 5 jjg staff 104 <date> <heure> /home
drwxr-xr-x 87 jjg jjg 6208 <date> <heure> /home/jjg
-rw------- 1 jjg root 6705 <date> <heure> /home/jjg/.bash_history
-rw-r--r-- 1 jjg jjg 888 <date> <heure> /home/jjg/.bash_profile
-rw-r--r-- 1 jjg jjg 414 <date> <heure>
/home/jjg/.bash_profile_language-env-bak
-rw-r--r-- 1 1001 1001 1834 <date> <heure> /home/jjg/.bashrc

su jjg
no shell





Et je rajouterai :

grep jjg /etc/passwd
jjg:x:1000:1000;Jean-Jacques Gerbaud,,,:/home/jjg:/bin/bash





/etc/mtab :
/dev/sda6 / ext3 rx,errors=remount-ro 0 0
proc proc proc rw 0 0
sysfs /sys sysfs rw 0 0
devpts /devpts devpts rw,gid=5,modeb0 0 0
tmpfs /devshm tmpfs rw 0 0
usbfs /proc/bus/usb usbfs rw 0 0
/devsda7 /home reiserfs rw 0 0
/dev/sda8 /usr reiserfs rw 0 0
/dev/sda9 /usr/local reiserfs rw 0 0
/dev/sdb5 /mnt/_ ext3 rw 0 0
/dev/sdb6 /mnt/home reiserfs rw 0 0
/dev/sdb7 /mnt/usr reiserfs rw 0 0
/dev/sdb8 /mnt/opt reiserfs rw 0 0
/dev/sdb9 /mnt/reserve reiserfs rw 0 0

/proc/mounts
rootfs / rootfs rw 0 0
/dev2root2 / ext3 rw 0 0
proc proc proc rw 0 0
devpts /devpts devpts rw,nodiratime 0 0
sysfs /sys sysfs rw 0 0
devpts /devpts devpts rw,gid=5,modeb0 0 0
tmpfs /devshm tmpfs rw 0 0
usbfs /proc/bus/usb usbfs rw 0 0
/devsda7 /home reiserfs rw 0 0
/dev/sda8 /usr reiserfs rw 0 0
/dev/sda9 /usr/local reiserfs rw 0 0
/dev/sdb5 /mnt/_ ext3 rw 0 0
/dev/sdb6 /mnt/home reiserfs rw 0 0
/dev/sdb7 /mnt/usr reiserfs rw 0 0
/dev/sdb8 /mnt/opt reiserfs rw 0 0
/dev/sdb9 /mnt/reserve reiserfs rw 0 0

Quelques explications puisqu'il semble que je me suis mal exprimé.

J'ai deux disques durs sur lesquels sont installées deux distributions :
et Agnula-deMudi/Debian sur /dev/hda (et aussi Windows Xp mais c'est
hors sujet) et Mandriva LE 2006 sur /dev/hdb (Les deux distributions
permettant l'accès l'une à l'autre par la modification de /etc/fstab).

Pendant quelques jours je ne me suis connecté ni à l'une ni à l'autre.
Lorsque j'ai relancé mon ordinateur, je me suis connecté à Agnula/Debian
normalement sans problème mais sans pouvoir lancer aucune commande (ni
locate, ni whereis, ni su). Je me suis déloggué et... plus moyen de me
RELOGGUER sur Debian SAUF EN ROOT. Depuis, tous mes efforts sont restés
vains pour me connecter en user (jjg).

Si c'est pas assez clair, j'abandonne et je donne ma langue au chat.
Merci à ceux qui ont bien voulu essayer de me comprendre et un plus
grand merci encore à ceux qui pourront me donner une réponse me
permettant de revenir comme avant.

Enfin, j'ai désinstallé sudo qui semble être la cause de toutes mes M... !

--
Jean-Jacques Gerbaud - Les Cornuds
26110 Vinsobres



Avatar
Sébastien Monbrun aka TiChou
Dans le message <news:443ed25e$0$20292$,
*jjgerbaud* tapota sur f.c.o.l.configuration :

ls -ld ~jjg/{,.bash*,.profile*} /home
ls /home/jjg/profile* : aucun fichier ou répertoire de ce type


drw-rw-rw- 5 jjg staff 104 <date> <heure> /home
^^^^^^^^

Eh beh... Et ça ne vous choque pas ? :-)
Permissions d'écritures pour tous (+222) mais accès refusé (-111).

Corrigeons cela, sous root :

# chown root:staff /home
# chmod 755 /home

ou, si plus de sécurité se fait besoin :

# chmod 711 /home

drwxr-xr-x 87 jjg jjg 6208 <date> <heure> /home/jjg


Correct, mais si besoin de plus de sécurité :

# chmod 700 /home/jjg

-rw------- 1 jjg root 6705 <date> <heure> /home/jjg/.bash_history


# chgrp jjg /home/jjg/.bash_history

-rw-r--r-- 1 jjg jjg 888 <date> <heure> /home/jjg/.bash_profile
-rw-r--r-- 1 jjg jjg 414 <date> <heure>
/home/jjg/.bash_profile_language-env-bak
-rw-r--r-- 1 1001 1001 1834 <date> <heure> /home/jjg/.bashrc


# chown jjg:jjg /home/jjg/.bashrc

grep jjg /etc/passwd
jjg:x:1000:1000;Jean-Jacques Gerbaud,,,:/home/jjg:/bin/bash


^

Ligne recopié à la main ?

[/etc/mtab]
/devsda7 /home reiserfs rw 0 0
^^

Idem ?

[/proc/mounts]
/devsda7 /home reiserfs rw 0 0
^^

Ça devient suspect votre histoire.

--
Sébastien Monbrun aka TiChou



1 2 3