PATH beim User setzen
Hi @ all, kann mir jemand mal eine Suchhilfe zum Thema PATH für User geben? Ich blicke es einfach nicht, wo ich diese Einträge hinmachen muss, und was mit einem evtl. vorhandenen PATH aus echo $PATH dann passiert? Bisher war ich der Meinung, dass sowas in die .profile des Users gehört. Dies scheit aber nicht bei allen Programmen, bzw. shells zu funktionieren? Gibts auch noch Unterschiede ob ich SuSE, Red-Hat, Solaris oder Reliant benutze? Noch nen schönen Abend Dirk -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Mit, 22 Nov 2006, Dirk schrieb:
kann mir jemand mal eine Suchhilfe zum Thema PATH für User geben?
man $SHELL
Dies scheit aber nicht bei allen Programmen, bzw. shells zu funktionieren?
'export' vergessen?
Gibts auch noch Unterschiede ob ich SuSE, Red-Hat, Solaris oder Reliant benutze?
Nein. Das haengt von der shell ab. Nur wie und wo vordefiniert wird unterscheidet sich bei den Distris. -dnh -- Wait for the ricochet... -- Deep Purple, "Child in Time" -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
David Haller schrieb:
Hallo,
Am Mit, 22 Nov 2006, Dirk schrieb:
kann mir jemand mal eine Suchhilfe zum Thema PATH für User geben?
man $SHELL
Dies scheit aber nicht bei allen Programmen, bzw. shells zu funktionieren?
'export' vergessen?
Gibts auch noch Unterschiede ob ich SuSE, Red-Hat, Solaris oder Reliant benutze?
Nein. Das haengt von der shell ab. Nur wie und wo vordefiniert wird unterscheidet sich bei den Distris.
-dnh
Besten Dank euch allen erstmal :) Das brachte doch schon einiges Licht ins Dunkel. Habe nur noch eine Frage wie es sich denn bei nicht login shells verhält. Ich lasse zwar als User xy scripte laufen, da der aber dabei nicht eingeloggt ist (per cron), denke ich, dass genau das das Problem war, warum der meine PATH-Erweiterungen nicht gefressen hat. Muss ich denn für ein script in der bash auch die bashrc von root oder die vom System erweitern? Wenn noch jemand einen Tip hat, dann nur her damit :) Thx und schönes WE Dirk p.s. ich melde mich erst jetzt, weil mein PC verreckt ist (grummel M$ Update auf IE7) hoil -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Sat, 25 Nov 2006 15:17:42 +0100 schrieb Dirk <mails@funon.de>: Hallo Dirk, [...]
Besten Dank euch allen erstmal :) Das brachte doch schon einiges Licht ins Dunkel. Habe nur noch eine Frage wie es sich denn bei nicht login shells verhält. Ich lasse zwar als User xy scripte laufen, da der aber dabei nicht eingeloggt ist (per cron), denke ich, dass genau das das Problem war, warum der meine PATH-Erweiterungen nicht gefressen hat. Muss ich denn für ein script in der bash auch die bashrc von root oder die vom System erweitern?
Wenn noch jemand einen Tip hat, dann nur her damit :)
Cron hat seine ganz eigene Umgebung. Und die ist sehr eingeschränkt. Dir bleibt nun die Wahl zwischen dem Schreiben von vollständigen Pfaden im Script zu dem Kommandos. Oder, da es eh schon ein Script ist ;), gleich zu Beginn desselben einen PATH zu setzen. Gruß Renate -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Renate Neike schrieb:
Am Sat, 25 Nov 2006 15:17:42 +0100 schrieb Dirk <mails@funon.de>:
Hallo Dirk, [...]
Besten Dank euch allen erstmal :) Das brachte doch schon einiges Licht ins Dunkel. Habe nur noch eine Frage wie es sich denn bei nicht login shells verhält. Ich lasse zwar als User xy scripte laufen, da der aber dabei nicht eingeloggt ist (per cron), denke ich, dass genau das das Problem war, warum der meine PATH-Erweiterungen nicht gefressen hat. Muss ich denn für ein script in der bash auch die bashrc von root oder die vom System erweitern?
Wenn noch jemand einen Tip hat, dann nur her damit :)
Cron hat seine ganz eigene Umgebung. Und die ist sehr eingeschränkt. Dir bleibt nun die Wahl zwischen dem Schreiben von vollständigen Pfaden im Script zu dem Kommandos. Oder, da es eh schon ein Script ist ;), gleich zu Beginn desselben einen PATH zu setzen.
Gruß Renate
Thx Renate, und Huhu Liste Verstehe ich das richtig, dass Cron einen eigenen Path benutzt? Kann ich denn einfach im Script einen PATH setzen, der dann nicht den vom ausführenden User ersetzt? Also der cron läuft als USER xyz und ich will nicht seine eigentliche PATH-Variable ersetzen, muss aber fürs script zusätzliche Verzeichnisse aufnehmen. Wie schon mal erwähnt, das script läuft komplett als der User, wenn ich denn eingelogt bin. Wenn User-Cron einen eigenen PATH hat, wo setze ich diesen dann, oder muss ich dass in jedem Script tun? Geht da dann auch ein PATH=$PATH, +neu2, +neu1 ...? Schönen Sonntag noch und danke für eure Hilfe. Dirk -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Sun, 03 Dec 2006 12:18:46 +0100 schrieb Dirk <mails@funon.de>:
Renate Neike schrieb:
Am Sat, 25 Nov 2006 15:17:42 +0100 [...] Cron hat seine ganz eigene Umgebung. Und die ist sehr eingeschränkt. Dir bleibt nun die Wahl zwischen dem Schreiben von vollständigen Pfaden im Script zu dem Kommandos. Oder, da es eh schon ein Script ist ;), gleich zu Beginn desselben einen PATH zu setzen.
Gruß Renate
Thx Renate, und Huhu Liste
Hallo Dirk,
Verstehe ich das richtig, dass Cron einen eigenen Path benutzt? ja
Kann ich denn einfach im Script einen PATH setzen, der dann nicht den vom ausführenden User ersetzt? ja. Einfach zu Beginn des Scriptes ein export PATH=$PATH:/dein/neuer/pfad setzen.
[...]
Wenn User-Cron einen eigenen PATH hat, wo setze ich diesen dann, oder muss ich dass in jedem Script tun? Geht da dann auch ein PATH=$PATH, +neu2, +neu1 ...?
Du kannst diese Zeile aber auch direkt in der entsprechenden Crontab ergänzen.
Schönen Sonntag noch und danke für eure Hilfe. Dirk
Dir auch. Gruß Renate -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Sonntag, 3. Dezember 2006 12:29 schrieb Renate Neike:
Am Sun, 03 Dec 2006 12:18:46 +0100
schrieb Dirk <mails@funon.de>:
Renate Neike schrieb:
Am Sat, 25 Nov 2006 15:17:42 +0100
[...]
Cron hat seine ganz eigene Umgebung. Und die ist sehr eingeschränkt.
Kann ich denn einfach im Script einen PATH setzen, der dann nicht den vom ausführenden User ersetzt?
ja. Einfach zu Beginn des Scriptes ein export PATH=$PATH:/dein/neuer/pfad setzen.
[...]
Wenn User-Cron einen eigenen PATH hat, wo setze ich diesen dann, oder muss ich dass in jedem Script tun? Geht da dann auch ein PATH=$PATH, +neu2, +neu1 ...?
Du kannst diese Zeile aber auch direkt in der entsprechenden Crontab ergänzen. crond kennt normalerweise den Benutzer für den er arbeitet. In einigen Fällen
snip source ich einfach die Umgebung (.bashrc, .profie etc, je nach Shell) und die Umgebung des jeweiligen Benutzers ist im Script bekannt. -- Mit freundlichen Grüßen Matthias Müller PS: Bitte senden Sie als Antwort auf meine E-Mails reine Text-Nachrichten! Siehe auch: http://www.gnu.org/philosophy/no-word-attachments.de.html
Dirk wrote:
[...] kann mir jemand mal eine Suchhilfe zum Thema PATH für User geben? Ich blicke es einfach nicht, wo ich diese Einträge hinmachen muss, und was mit einem evtl. vorhandenen PATH aus echo $PATH dann passiert?
Du darfst PATH nicht ueberschreiben, sondern musst PATH erweitern. Beispiel: export PATH=/neues/verzeichnis:$PATH Hier wird ein neues Verzeichnis vor allen anderen bereits vorhandenen Verzeichnissen in PATH eingefuegt. Die Reihenfolge ist mitunter wichtig, da das erste Programm mit dem gegebenen Namen im Pfad ausgefuehrt wird. Du kannst genau so auch ein neues Verzeichnis am Ende des Pfads einfuegen.
Bisher war ich der Meinung, dass sowas in die .profile des Users gehört. Dies scheit aber nicht bei allen Programmen, bzw. shells zu funktionieren?
.profile wird nur von Login-Shells gelesen. Alle anderen interaktiven Shells lesen nur die jeweilige Shell-Konfiguration, z.B. .bashrc (fuer Bash). Bei SuSE Systemen solltest Du Aenderungen - sofern diese nicht systemweit, sondern nur fuer den jeweiligen Benutzer gemacht werden sollen - in die .bashrc (Bash) eintragen. Diese wird auch fuer Login-Shells gesourct. Bei anderen UNIX-Systemen kannst Du Dir dessen aber AFAIK nicht sicher sein. Entsprechendes gilt fuer andere Shells. Systemweite Einstellungen sollten entsprechend in /etc/profile.d/ abgelegt oder in /etc/profile.local bzw. /etc/bash.bashrc.local eingetragen werden. Veraendere *nicht* die Standarddateien /etc/profile und /etc/bash.bashrc, da diese ggf. durch ein Update o.ae. ueberschrieben werden koennen. Cheers, Th. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Wed, 22 Nov 2006 20:40:31 +0100 schrieb Dirk <mails@funon.de>:
Hi @ all, Hallo,
kann mir jemand mal eine Suchhilfe zum Thema PATH für User geben? Ich blicke es einfach nicht, wo ich diese Einträge hinmachen muss, und was mit einem evtl. vorhandenen PATH aus echo $PATH dann passiert? Bisher war ich der Meinung, dass sowas in die .profile des Users gehört.
Die .profile ist IMHO schon genau der richtige Ort und dann so geschrieben: export PATH=$PATH:/dein/neuer/pfad Gruß Renate -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Mittwoch, 22. November 2006 20:40 schrieb Dirk:
Hi @ all, kann mir jemand mal eine Suchhilfe zum Thema PATH für User geben? Ich blicke es einfach nicht, wo ich diese Einträge hinmachen muss, und was mit einem evtl. vorhandenen PATH aus echo $PATH dann passiert? Bisher war ich der Meinung, dass sowas in die .profile des Users gehört.
Das hängt von der verwendeten Shell ab. Desweiteren ob es eine Login oder Interaktive Shell ist. Bei der Bash: man bash, Sektion: INVOCATION, dort steht in welcher Reihenfolge welche Datei wann eingelesen wird. Systemweit für alle User kannst Du $PATH in /etc/profile eintragen (Standard), oder für den einzelnen User in ~/.bash_profile (z.b.)
Dies scheit aber nicht bei allen Programmen, bzw. shells zu funktionieren? Gibts auch noch Unterschiede ob ich SuSE, Red-Hat, Solaris oder Reliant benutze?
Ja. ;)
Noch nen schönen Abend Dirk
Ebenso Dirk
participants (6)
-
David Haller
-
Dirk
-
Dirk Abe
-
Matthias Müller
-
Renate Neike
-
Thomas Hertweck