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 17/12/2012, à 15:38

nicolas66

Invocation de bash [résolu]

Bonjour à tous,

Je dispose depuis qq temps d'un NAS synology. Depuis les dernières MAJ, un bug connu empêche un utilisateur de se connecter par ssh au NAS lorsque le shell pointe sur /opt/bin/bash dans /etc/passwd. En revanche, lorsque le shell pointe sur /bin/sh, pas de problèmes. Un contournement possible est de lancer /opt/bin/bash via la commande exec dans le .profile du répertoire utilisateur. Le souci c'est que les lignes suivantes dans ce fichier ne sont pas lues. Quelqu'un a-t-il une brillante idée pour surmonter ce problème ? D'avance, merci smile


--
Nicolas.

Dernière modification par nicolas66 (Le 18/12/2012, à 13:36)


"The computer was born to solve problems that did not exist before." (B. Gates)

Hors ligne

#2 Le 17/12/2012, à 16:04

H4nnibal

Re : Invocation de bash [résolu]

Bonjour,

je ne connais pas synology...
mais peut-être qu'en stockant la config du shell bash dans un fichier ~/.bashrc, ça peut marcher ?

et si la configuration n'est pas lue automatiquement, essaie de lancer le commande :

source ~/.bashrc

/* No comment*/

Hors ligne

#3 Le 17/12/2012, à 16:34

tiramiseb

Re : Invocation de bash [résolu]

Le souci c'est que les lignes suivantes dans ce fichier ne sont pas lues.

Normales : ces lignes sont lues successivement ; tant que ton bash ne se sera pas arrêté, les lignes suivantes ne seront pas lues ; elles seront lues quand tu fermeras ton bash.

Pourquoi ne pas mettre /opt/bin/bash en tout dernier ?

Hors ligne

#4 Le 17/12/2012, à 18:40

nicolas66

Re : Invocation de bash [résolu]

H4nnibal a écrit :

mais peut-être qu'en stockant la config du shell bash dans un fichier ~/.bashrc, ça peut marcher ?

En fait, il y a un /etc/profile qui charge le .profile de l'utilisateur qui se connecte. Donc de côté-là, pas de soucis.

tiramiseb a écrit :

Normales : ces lignes sont lues successivement ; tant que ton bash ne se sera pas arrêté, les lignes suivantes ne seront pas lues ; elles seront lues quand tu fermeras ton bash. Pourquoi ne pas mettre /opt/bin/bash en tout dernier ?

Oui, j'avais bien compris. Comme je l'ai indiqué dans mon 1er post, je suis obligé de faire pointer le shell de l'utilisateur sur /bin/sh dans /etc/passwd. Du coup, lorsqu'un utilisateur se connecte, son .profile est lu avec ce shell. Or, la plupart des commandes contenues dans ce fichier ne sont compatibles qu'avec bash. Ce que j'aimerai, c'est lancer bash au début et interpréter les lignes qui suivent avec ce shell.


"The computer was born to solve problems that did not exist before." (B. Gates)

Hors ligne

#5 Le 17/12/2012, à 20:04

tiramiseb

Re : Invocation de bash [résolu]

Ce que j'aimerai, c'est lancer bash au début et interpréter les lignes qui suivent avec ce shell.

Dans ce cas-là il faut utiliser un fichier chargé par bash.
Comme .bashrc par exemple. Comme l'a dit H4nnibal.
En fait je ne comprend pas ta réponse à sa proposition...

Hors ligne

#6 Le 17/12/2012, à 20:42

Watael

Re : Invocation de bash [résolu]

salut,

Du coup, lorsqu'un utilisateur se connecte, son .profile est lu avec ce shell. Or, la plupart des commandes contenues dans ce fichier ne sont compatibles qu'avec bash.

bon, alors tu déplaces .profile vers .bashrc, et tu crées un nouveau .profile qui ne contient que l'exec bash.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#7 Le 17/12/2012, à 20:43

nicolas66

Re : Invocation de bash [résolu]

tiramiseb a écrit :

Dans ce cas-là il faut utiliser un fichier chargé par bash.
Comme .bashrc par exemple. Comme l'a dit H4nnibal.
En fait je ne comprend pas ta réponse à sa proposition...

Encore faut-il indiquer de charger bash ... Au départ, le fichier /etc/profile est chargé avec /bin/sh. Comme l'indique H4nnibal, il y a bien un "source ~/.profile" (utiliser un .bashrc ne change rien) dans ce fichier. Ensuite le .profile de l'utilisateur est lu tjs avec /bin/sh. C'est pour cela que je lance la commande "exec /opt/bin/bash" à ce moment-là pour changer de shell.


"The computer was born to solve problems that did not exist before." (B. Gates)

Hors ligne

#8 Le 17/12/2012, à 20:46

tiramiseb

Re : Invocation de bash [résolu]

C'est pour cela que je lance la commande "exec /opt/bin/bash" à ce moment-là pour changer de shell.

Oui, et lorsqu'il se lance, bash lit le fichier ~/.bashrc. Donc si tu mets tes instructions "complémentaires" dans .bashrc (ou dans .bash_profile, j'ai jamais vraiment cherché la différence entre les deux) elles seront exécutées par Bash...
Où est le problème ?

Hors ligne

#9 Le 18/12/2012, à 13:35

nicolas66

Re : Invocation de bash [résolu]

Désolé, j'avais mal compris l'idée de mettre les commandes dans un .bash_profile séparé du .profile. Bizarrement, le .bash_profile n'était pas appelé directement. J'ai donc rajouté l'option `--rcfile'. Ensuite, j'avais encore un souci avec l'historique des commandes tapées mais un export a réglé le problème. Merci beaucoup pour votre aide. Je passe le thread en résolu smile


"The computer was born to solve problems that did not exist before." (B. Gates)

Hors ligne