Frage zu: /bin -> (/)usr/bin
Frage zu: /bin -> (/)usr/bin
Für mich ist das kein Problem, bei mir schauen die Symlinks aus wie sie sein sollen:
bin -> usr/bin, lib -> usr/lib, lib64 -> usr/lib64, sbin -> usr/sbin
Es gab und gibt aber viele Nutzer die früher oder später Probleme bekommen weil in ihren Systemen die Linkziele einen führenden slash haben: /bin -> /usr/bin
Ich habe danach gegoogelt und auch die wenigen Debian Bug reports zu usrmerge durchgesehen um zu verstehen wie es dazu kam dass diese Symlinks fälschlicherweise so definiert wurden, ohne Erfolg.
Kann das jemand hier aufklären?
bin -> usr/bin, lib -> usr/lib, lib64 -> usr/lib64, sbin -> usr/sbin
Es gab und gibt aber viele Nutzer die früher oder später Probleme bekommen weil in ihren Systemen die Linkziele einen führenden slash haben: /bin -> /usr/bin
Ich habe danach gegoogelt und auch die wenigen Debian Bug reports zu usrmerge durchgesehen um zu verstehen wie es dazu kam dass diese Symlinks fälschlicherweise so definiert wurden, ohne Erfolg.
Kann das jemand hier aufklären?
gruß
michaa7
-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)
michaa7
-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)
Re: Frage zu: /bin -> (/)usr/bin
Die Links sind nicht fehlerhaft sondern völlig korrekt.michaa7 hat geschrieben:18.09.2024 12:03:42...wie es dazu kam dass diese Symlinks fälschlicherweise so definiert wurden,
Re: Frage zu: /bin -> (/)usr/bin
Das kann man auch anders sehen. Sobald 1 solches Dateisystem per NFS woanders importiert wird, führt der führende Slash dazu, dass auf dem dortigen NFS Client das falsche /usr/bin verlinkt ist. Daher macht man keine Links mit absoluten Pfaden, um die Logik bei NFS Clients zu erhalten.
Beispiel:
Du importierst das / des NFS Server nach /mnt
Dann sollte /mnt/bin nach /mnt/usr/bin führen, durch den führenden Slash gehts aber lokal nach /usr/bin
Daher sind die Links mMn ohne führenden Slash richtig
Beispiel:
Du importierst das / des NFS Server nach /mnt
Dann sollte /mnt/bin nach /mnt/usr/bin führen, durch den führenden Slash gehts aber lokal nach /usr/bin
Daher sind die Links mMn ohne führenden Slash richtig
Re: Frage zu: /bin -> (/)usr/bin
Nein, sie sind nicht korrekt.
Wenn ich das root-Verzeichnis eines anderen Systems nach /mnt mounte und auf /mnt/bin zugreife, dann erwarte ich, dass ich auf die Inhalte von /mnt/usr/bin (das nach /mnt gemountete System) zugreife, nicht auf /usr/bin (das Host-System).
Re: Frage zu: /bin -> (/)usr/bin
Und genau das passiert doch, wenn usr (ohne führenden Slash) auf usr/bin (ohne führenden Slash) verlinkt ist.hikaru hat geschrieben:18.09.2024 12:25:09Wenn ich das root-Verzeichnis eines anderen Systems nach /mnt mounte und auf /mnt/bin zugreife, dann erwarte ich, dass ich auf die Inhalte von /mnt/usr/bin (das nach /mnt gemountete System) zugreife, nicht auf /usr/bin (das Host-System).
- towo
- Beiträge: 4545
- Registriert: 27.02.2007 19:49:44
- Lizenz eigener Beiträge: GNU Free Documentation License
Re: Frage zu: /bin -> (/)usr/bin
Es gibt aber systeme, da wurde /bin => /usr/bin verlinkt und genau das war die Frage, einfach mal den Eingangspost genauer lesen.
Re: Frage zu: /bin -> (/)usr/bin
Es wird aber "/bin" verlinkt, nicht "bin" ... <- da bin ich nicht so sicher, das ist aber auch nicht die Frage. Es geht um den führenden slash des Zielpfades (wobei ich mit den Bezeichnungen auf Kriegsfuß stehe)
Es ist aber offenbar auch ein Frage der Perspective: Viele Seiten im Netz beschreiben die hier bestehenden Probleme aus Sicht des unprivilegierten Nutzers aus dessen home Verzeichnis heraus. Entsprechende Abfragen auf der Kommandozeile müssen dann "ls -ld /bin" lauten:
Startet man die Abfrage aus "/" kann es auch so aussehen:
In der "man ln" wird auch erwähnt das symlinks den Pfad immer *relative* zum Elternverzeichnis des Links auflösen. Das ist für mich zumindest ein Hinweis darauf, dass dieser Link keinen absoluten Pfad für das Ziel (?) nutzen sollte.
Die eigentliche Frage für mich ist jedoch warum einige Systeme dies richtig ohne führenden slash machen, andere mit slash .... und dann in Probleme laufen wie derzeit sid(uction) Nutzer mit dem Paket base-files was mit der falschen Verlinkung nicht aktualisierbar ist.
Zudem sind in "/" alle Links ohne führenden "/" verlinkt, so auch vmlinuz und initrd.img
Es ist aber offenbar auch ein Frage der Perspective: Viele Seiten im Netz beschreiben die hier bestehenden Probleme aus Sicht des unprivilegierten Nutzers aus dessen home Verzeichnis heraus. Entsprechende Abfragen auf der Kommandozeile müssen dann "ls -ld /bin" lauten:
Code: Alles auswählen
~$ ls -ld /bin
lrwxrwxrwx 1 root root 7 22. Jul 2021 /bin -> usr/bin
Code: Alles auswählen
/$ ls -ld bin
lrwxrwxrwx 1 root root 7 22. Jul 2021 bin -> usr/bin
In der "man ln" wird auch erwähnt das symlinks den Pfad immer *relative* zum Elternverzeichnis des Links auflösen. Das ist für mich zumindest ein Hinweis darauf, dass dieser Link keinen absoluten Pfad für das Ziel (?) nutzen sollte.
Die eigentliche Frage für mich ist jedoch warum einige Systeme dies richtig ohne führenden slash machen, andere mit slash .... und dann in Probleme laufen wie derzeit sid(uction) Nutzer mit dem Paket base-files was mit der falschen Verlinkung nicht aktualisierbar ist.
Zudem sind in "/" alle Links ohne führenden "/" verlinkt, so auch vmlinuz und initrd.img
gruß
michaa7
-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)
michaa7
-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)
Re: Frage zu: /bin -> (/)usr/bin
Hast du dir das nicht schon selbst beantwortet? Man kann auf ein und dieselbe Datei relativ oder absolut verlinken und dann ist das entweder richtig oder falsch:michaa7 hat geschrieben:18.09.2024 13:20:34Die eigentliche Frage für mich ist jedoch warum einige Systeme dies richtig ohne führenden slash machen, andere mit slash .... und dann in Probleme laufen wie derzeit sid(uction) Nutzer mit dem Paket base-files was mit der falschen Verlinkung nicht aktualisierbar ist.
Code: Alles auswählen
$ pwd
/home/tobo
$ touch f
$ ln -s ~/f l1 ##absoluter Pfad
$ ln -s f l2 ##relativer Pfad
$ ll -d f l?
-rw------- 1 tobo tobo 0 2024-09-18 15:22 f
lrwxrwxrwx 1 tobo tobo 12 2024-09-18 15:22 l1 -> /home/tobo/f
lrwxrwxrwx 1 tobo tobo 1 2024-09-18 15:23 l2 -> f
$
- cosinus
- Beiträge: 4202
- Registriert: 08.02.2016 13:44:11
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: Bremen
Re: Frage zu: /bin -> (/)usr/bin
Richtig ist ohne führenden Slash.
Re: Frage zu: /bin -> (/)usr/bin
Nein. (Und nochmals, das ist eine reine Frage aus Neugier. Niemand sollte deshalb irgendwelchen Aufwand betreiben)
Dass es *ohne* slash richtig ist ... ist klar ... aber eben nicht die Frage.
Das sind ja Links, die kein Mensch manuell einrichtet. Das muß ja von einem Paket eingerichtet worden sein. Da es aber bei "usrmerge" dazu keinen Bug gibt, andererseits sowohl hier als auch im siduction forum dazu Anfragen aufgetaucht waren wollte ich verstehen warum es in einem System mit, im anderen ohne führenden slash eingefügt wurde.
gruß
michaa7
-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)
michaa7
-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)
- cosinus
- Beiträge: 4202
- Registriert: 08.02.2016 13:44:11
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: Bremen
Re: Frage zu: /bin -> (/)usr/bin
In welchen anderen Systemen ist das denn mit führendem Slash?michaa7 hat geschrieben:18.09.2024 15:53:41wollte ich verstehen warum es in einem System mit, im anderen ohne führenden slash eingefügt wurde.
- cosinus
- Beiträge: 4202
- Registriert: 08.02.2016 13:44:11
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: Bremen
Re: Frage zu: /bin -> (/)usr/bin
Hm. Also ich habs nicht. Aber das könnte daran liegen, dass ich ursprünglich ein echtes Debian hatte und das zu einem siduction umbaute.
Ich schau mir nachher mal meinen PC zu Hause an.
Ich schau mir nachher mal meinen PC zu Hause an.