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

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

coolhot

Benutzer
Registriert
01. März 2009
Beiträge
926
Reaktionspunkte
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:
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
 
Danke damit konnte ich es bereinigen.
 
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?
 
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.
 
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
 
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.
 
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
 
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?
 
Und in deiner /root/.profile ???

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

Itari
 
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?
 
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
 
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?
 
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
 
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.
 
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
 
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?
 
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
 
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