[Gelöst]: Ändern der PATH-Variablen

Status
Für weitere Antworten geschlossen.

coolhot

Benutzer
Mitglied seit
01. Mrz 2009
Beiträge
926
Punkte für Reaktionen
0
Punkte
0
Wenn ich auf meiner DS auf der Kommandozeile "set" aufrufe zeigt es u.a. den Inhalt der PATH-Variable an. Ich habe festgestellt darin sind viele Doppelte enthalten. Hier mal der Inhalt (zur besseren Lesbarkeit untereinander und sortiert):

/bin
/bin
/bin
/opt/bin
/sbin
/sbin
/sbin
/usr/bin
/usr/bin
/usr/bin
/usr/local/bin
/usr/local/bin
/usr/local/sbin
/usr/local/sbin
/usr/sbin
/usr/sbin
/usr/sbin
/usr/syno/bin
/usr/syno/bin
/usr/syno/bin
/usr/syno/sbin
/usr/syno/sbin


Gefunden habe ich in /etc/rc

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/bin:/usr/syno/sbin:/usr/local/bin:/usr/local/sbin

und in /etc/profile

PATH="$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/syno/bin:/usr/syno/sbin:/usr/local/bin:/usr/local/sbin:/opt/bin:"

Wenn ich das richtig verstehe gilt der in /etc/rc angegebene ab Systemstart systemweit und wird durch den in /etc/profile für die Login-Shell erweitert.

Kann ich den gesamten gewünschten Inhalt eintragen unter /etc/rc und dann die Zeile PATH= aus /etc/profile entfernen?

Gibt es noch andere Stellen wo die PATH-Variable befüllt wird?
 
Zuletzt bearbeitet:

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.016
Punkte für Reaktionen
272
Punkte
393
Hallo,
die Pfadangabe in /etc/rc gilt nur solange rc ausgeführt wird. Wenn Du dich einloggst läd die shell /etc/profile und soweit vorhanden eine .profile aus dem user-home-Verzeichnis. Im Falle root /root/.profile .
Alles was Du global für alle ändern möchtest, ändere in /etc/profile . Individuelle Änderungen pro user in der entsprechenden .profile des users.

Gruß Götz
 

coolhot

Benutzer
Mitglied seit
01. Mrz 2009
Beiträge
926
Punkte für Reaktionen
0
Punkte
0
Danke damit konnte ich es bereinigen.
 

SidKennedy

Benutzer
Mitglied seit
08. Nov 2011
Beiträge
17
Punkte für Reaktionen
0
Punkte
0
Ich habe gerade ein ähnliches Problem. Und zwar werden beim Befehl ls -lasi keine Farben mehr in der Ergebnisliste angezeigt. Ich habe jetzt rausgefunden, dass man dazu die Umgebungsvariable LS_OPTIONS auf --color=tty setzen muss. Durch diesen thread habe ich rausgefunden, dass dies in der Datei /etc/profile geschehen muss. Mein Problem ist nun, dass ich keine Zugriffsrechte auf die Datei habe. Ich habe mich als User admin per Putty eingeloggt. Klar ist auch, dass /etc/profile root gehört und alle anderen nur lesen dürfen. Wie bekomme ich jetzt aber root-Rechte?
 

DKeppi

Benutzer
Mitglied seit
01. Apr 2011
Beiträge
3.208
Punkte für Reaktionen
63
Punkte
114

SidKennedy

Benutzer
Mitglied seit
08. Nov 2011
Beiträge
17
Punkte für Reaktionen
0
Punkte
0
Danke dir DKeppi. Das Einloggen ging und das Ändern der Datei auch. Folgendes habe ich eingetragen:

LS_OPTIONS=--color=auto
export LS_OPTIONS

Doch leider zeigt das keine Wirkung. Der Befehl ls erzeugt immernoch einfarbige Ergebnislisten. Eine Idee, wie ich das anpassen kann? Rufe ich auf der Konsole "ls -lasi --color=auto" auf, so kommt das gewünschte Ergebnis.
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Wenn du den ls 2x hast (einmal per Firmware und einmal per IPKG), kann es sein, dass du durch die richtige Reihenfolge in der PATH-Variablen festlegen musst, welcher verwendet wird. Alternativ kannst dir auch Kommando-Kürzel selbst anlegen per 'alias' ... gib mal ein und du wirst das schon sehen.

Itari
 

SidKennedy

Benutzer
Mitglied seit
08. Nov 2011
Beiträge
17
Punkte für Reaktionen
0
Punkte
0
Wenn du den ls 2x hast (einmal per Firmware und einmal per IPKG), kann es sein, dass du durch die richtige Reihenfolge in der PATH-Variablen festlegen musst, welcher verwendet wird.
Itari
wie mach ich das denn? das klingt nämlich so, als würde das passen. mir ist nachdem ich ipkg installiert habe auf gefallen, dass die farben verschwunden sind.
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
wie mach ich das denn? das klingt nämlich so, als würde das passen. mir ist nachdem ich ipkg installiert habe auf gefallen, dass die farben verschwunden sind.

Die Pfade der PATH-Variablen werden von links nach rechts verwendet. Also ein Pfad, der weiter links steht, schlägt den, der weiter rechts steht. Am besten in der .profile ändern, in dem du da die PATH-Varibale anders anordnest.

Itari
 

SidKennedy

Benutzer
Mitglied seit
08. Nov 2011
Beiträge
17
Punkte für Reaktionen
0
Punkte
0
in meiner /etc/profile steht folgendes in der ersten zeile:

PATH="$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/syno/bin:/usr/syno/sbin:/usr/local/bin:/usr/local/sbin"

woher weiß ich nun wie ich was umsortieren muss?
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Und in deiner /root/.profile ???

Mach auch mal einen 'echo $PATH' und schreib ihn hier rein.

Itari
 

SidKennedy

Benutzer
Mitglied seit
08. Nov 2011
Beiträge
17
Punkte für Reaktionen
0
Punkte
0
also in der /root/.profile steht dasselbe im PATH drin wie bei /etc/profile. bei echo $PATH kommt allerdings folgendes:

/opt/bin:/opt/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/syno/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/syno/bin:/usr/syno/sbin:/usr/local/bin:/usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/syno/bin:/usr/syno/sbin:/usr/local/bin:/usr/local/sbin

habe auch gesehen, dass im verzeichnis /opt/bin ein befehl ls liegt, der auf coreutils-ls linkt. das scheint von ipkg zu kommen, da dieser befehl dort auch liegt. wie kann ich da jetzt was ändern? woher kommt der rattenschwanz im PATH?
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Dann mach doch das Folgende in der /root/.profile:

PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/syno/bin:/usr/syno/sbin:/usr/local/bin:/usr/local/sbin:/opt/bin:/opt/sbin

Damit hast die PATH-Variable gekürzt und die Reihenfolge definiert. Sollte irgendwann mal etwas nicht aufgerufen werden können, weil der Teilpfad nicht per $PATH inkludiert worden ist, dann könnern wir das immer noch nachtragen. Dran denken, eine Kopie/Ausdruck zu machen, denn meist wird beim Firmware-Update alles wieder zurückgesetzt.

Itari
 

SidKennedy

Benutzer
Mitglied seit
08. Nov 2011
Beiträge
17
Punkte für Reaktionen
0
Punkte
0
Danke itari. Jetzt funktioniert es für den root. Wenn ich mich jedoch als admin einlogge, dann ist es immernoch einfarbig. Kannst du mir noch sagen, wo ich diese Änderung vornehmen muss, damit es global ist? Ich habe es schon versucht in der /etc/profile damit ergibt aber echo $PATH bei admin aber auch immernoch das hier:

/opt/bin:/opt/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/syno/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/syno/bin:/usr/syno/sbin:/usr/local/bin:/usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/syno/bin:/usr/syno/sbin:/usr/local/bin:/usr/local/sbin

Welches ist die globale Datei?
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Welches ist die globale Datei?

Normalerweise ist das /etc/profile ... aber es kann sein, dass danach noch weitere Startup-Dateien durchlaufen werden, so dass eine Änderung in /etc/profile nicht wirklich etwas bringt. Probiere einfach mal aus ...

Ich hatte das Problem mit dem User 'admin' noch nie, da ich mich noch nie als 'admin' angemeldet hab ... wüsste auch nicht, wofür ...

Itari
 

SidKennedy

Benutzer
Mitglied seit
08. Nov 2011
Beiträge
17
Punkte für Reaktionen
0
Punkte
0
naja prinzipiell kann sich ja jeder user meiner station auch per ssh einloggen. bzw. sollte er dies tun können. gut ich schau mal weiter.
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
naja prinzipiell kann sich ja jeder user meiner station auch per ssh einloggen. bzw. sollte er dies tun können

Wenn das so ist, dann hat ja jeder User auch ein HOME-Verzeichnis (so wie 'root' halt /root). Kann man in der /etc/passwd anschauen. Und dann könnte man die .profile-Dateien für jeden User auch anpassen/einrichten ... aber ich würde vorher die /etc/profile ausprobieren und auch einen Blick in die /opt/etc/profile werfen ...

Itari
 

SidKennedy

Benutzer
Mitglied seit
08. Nov 2011
Beiträge
17
Punkte für Reaktionen
0
Punkte
0
also ich möchte nicht extra für jeden user der hinzukommt erst seine eigene .profile-datei anpassen. wie gesagt, mit /etc/profile habe ich es gemacht - kein erfolg, obwohl da in der ersten zeile noch als kommentar steht:
#/etc/profile: system-wide .profile file for ash.
da sollte man doch denken, dass es die richtige stelle ist. aber wie gesagt, bei anderen nutzern als root klappt's nicht - es klappt auch nur bei root, da ich /root/.profile angepasst habe. eine /opt/etc/profile gibt es bei mir nicht. hast du noch eine idee?
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
da sollte man doch denken, dass es die richtige stelle ist?

Wenn ein System 'sauber' abministriert wird (hängt ausschließlich vom Admin ab *gg*), dann wäre die /etc/profile auch die richtige Stelle. Die Leut, die das IPKG bereitstellen, haben das Problem, ihre Sub-Systeme so zu integrieren, dass sie wenig Nebeneffekte haben, gleichzeitig aber auch auf Systemen laufen soll, welches nicht wirklich 'administriert' werden und da suchen sie schon nach Stellen, wo man den Pfad anpassen kann, ohne dass gleich beim nächsten Firmware-Update alles wieder neu aufgesetzt werden muss ... soll ja robust sein. Deswegen ändern/anpassen sie die PATH-Variable irgendwo so, dass die beiden /opt-Pfade dann auch dabei sind ... Ich hab dir Stellen genannt, wo man auf dies Einfluss nehmen kann, da es aber unzählige IPKG-Implementationen gibt, kann das ein oder andere schon einmal abweichen oder anders sein ... da bleibt einem dann nichts anderes übrig, als Lösungen zu verwenden, die nicht unbedingt 'schick' sind, aber halt funktionieren.

Itari
 

SidKennedy

Benutzer
Mitglied seit
08. Nov 2011
Beiträge
17
Punkte für Reaktionen
0
Punkte
0
ok Itari - ich danke dir trotzdem vielmals für deine Hinweise.

greetz
Sid
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat