Précédent   Forum des professionnels en informatique > Systèmes > Linux > Système
Système Vos questions autour de l'administration système
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/08/2006, 09h21   #1
Modérateur
 
Avatar de sebhm
 
Homme Seb
Développeur Web
Inscription : avril 2004
Messages : 1 063
Détails du profil
Informations personnelles :
Nom : Homme Seb
Âge : 31
Localisation : France, Landes (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : avril 2004
Messages : 1 063
Points : 1 181
Points : 1 181
Par défaut PATH en rsh incomplet

Bonjour,

en voulant exécuter une commande en rsh, je me suis apercu que le PATH connu par rsh n'était pas le PATH complet :
sur X machines, je fais un
Code :
rsh -n <nom_machine> /tmp/script_shell.sh
ces machines m'autorisent à faire un rsh en tant que root (je sais, pas génial en terme de sécurité...)

mon script_shell.sh :
Code :
1
2
#! /bin/ksh
usermod -g 0 -u 0 -o admin
réponse à mon rsh :
/tmp/script_shell.sh[2]: usermod: not found

alors je regarde le PATH que j'ai en rsh :
Code :
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/java/j2re1.4.1_07/bin:/usr/bin:/bin

ce qui est différent du PATH que j'ai en ssh :
Code :
1
2
3
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/java/j2re1.4.1_07/bin:
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:
/usr/X11R6/bin:/root/bin:/usr/dlc:/usr/dlc/bin:.
si je modifie mon script_shell.sh :
Code :
1
2
#! /bin/ksh
/usr/sbin/usermod -g 0 -u 0 -o admin
alors ca fonctionne. Ce n'est donc pas un pb de droit.

est-ce que quelqu'un sait m'expliquer ce comportement ?
sebhm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2006, 09h45   #2
Rédacteur
 
Inscription : mars 2004
Messages : 1 298
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 298
Points : 1 450
Points : 1 450
à priorie cela via d'un "shell" de connection different, enfin surtout des fichiers d'initialisation de ces shell respectif rsh et ssh ... si dans le repertoire de l'utilisateur de connection il existe un .bash_profile ssh l'utilisera alors que rsh non.
__________________
Marc
Slackware for ever ......
BASH - KSH ( http://marcg.developpez.com/ksh/ )
MarcG est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2006, 10h01   #3
Modérateur
 
Avatar de sebhm
 
Homme Seb
Développeur Web
Inscription : avril 2004
Messages : 1 063
Détails du profil
Informations personnelles :
Nom : Homme Seb
Âge : 31
Localisation : France, Landes (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : avril 2004
Messages : 1 063
Points : 1 181
Points : 1 181
ben a priori non.
parce que dans le .bash_profile de root, il y a un petit ajout au PATH mais qui n'explique pas la différence entre les 2 PATH que j'ai donné.
sebhm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/08/2006, 02h52   #4
Membre émérite
 
Inscription : août 2003
Messages : 878
Détails du profil
Informations forums :
Inscription : août 2003
Messages : 878
Points : 935
Points : 935
Citation:
Envoyé par MarcG
à priorie cela via d'un "shell" de connection different, enfin surtout des fichiers d'initialisation de ces shell respectif rsh et ssh ... si dans le repertoire de l'utilisateur de connection il existe un .bash_profile ssh l'utilisera alors que rsh non.
Tu es sûr que ksh utilise ".bash_profile" ?
__________________
Un problème bien exposé
est, pour moitié, solutionné. / La connaissance s'accroît quand on la partage, pas quand on l'impose. / La violence est le langage des faibles.
David.Schris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/08/2006, 03h34   #5
Membre émérite
 
Inscription : août 2003
Messages : 878
Détails du profil
Informations forums :
Inscription : août 2003
Messages : 878
Points : 935
Points : 935
Citation:
Envoyé par sebhm
en voulant exécuter une commande en rsh, je me suis apercu que le PATH connu par rsh n'était pas le PATH complet
[...]
est-ce que quelqu'un sait m'expliquer ce comportement ?
Une recherche sur Google plus tard, on trouve (en première position quand j'ai fait la recherche) un document intitulé PATH HOWTO qui a été traduit en français et dans lequel on peut lire (au chapitre "8.2 rsh") :
Citation:
Le démon de rsh utilise le PATH défini par _PATH_DEFPATH (/usr/include/path.h), c'est à dire, le même que celui utilisé par le programme login pour connecter les utilisateurs normaux.
Note : il se peut que chez vous le chemin du header soit "/usr/include/paths".
Pas de chance, ce document nous dit que le PATH est écrit en dur dans le programme...
Pas de chance parce-que si c'est vrai, il faudra modifier et recompiler le programme pour en avoir un autre. ......(musique qui fait peur)............nan, j'déc*nne !
Pas de chance parce-qu'en fait, la valeur de PATH que tu nous donne n'est visiblement pas écrite en dur (présence de "/usr/java/j2re1.4.1_07/bin" que j'imagine mal en dur dans rsh), ou du moins pas complètement.

Alors ?

Alors, il faut savoir quel shell rsh lance ("echo $SHELL"...pas dans un script évidemment), voir ce que fait ce shell quand il est lancé avec l'option "-c" (quels fichiers "rc" il exécute) et voir ce que ksh fait quand il exécute un script (si le shell lancé par rsh est différent de ksh).
Quand tu as trouvé les bons fichiers (genre ".profile", "/etc/profile" [1], ".kshrc", ".bashrs" pour bash quand il détecte que rsh l'a lancé, etc) : tu pourras les modifier.
Pour trouver le bon sans lire la dcumentation du shell, tu pourrais commencer par un truc du genre :
Code :
for f in /etc /root ; do { grep -r 'j2re1\.4\.1_07' "${f}" ; } done
Quand tu auras trouvé, donnes-nous le résultat

[1] - peu probable avec l'option "-c"
__________________
Un problème bien exposé
est, pour moitié, solutionné. / La connaissance s'accroît quand on la partage, pas quand on l'impose. / La violence est le langage des faibles.
David.Schris est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h12.


 
 
 
 
Partenaires

Hébergement Web