Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

Zugriffsrechte & symbolische Links

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
nabla
Newbie
Newbie
Beiträge: 3
Registriert: 28. Dez 2004, 04:17

Zugriffsrechte & symbolische Links

Beitrag von nabla »

Hi,

man kann anscheinend den symbolischen Links keine Zugriffsrechte zuweisen (steht ja auch so in den man pages).
Heißt das, dass ich keine solche Links bei meiner Systemkonfiguration verwenden sollte? Wäre doch blöd.

Aufgefallen ist mir das gerade, weil ich meiner Schwester das mit den Zufriffsrechten erklären wollte und zeigen wollte, dass sie als user z.B. keine Programme in /usr/bin verändern kann. Ich gehe also in das Verzeichnis, drücke auf <DEL> und plötzlich ist die Datei weg :shock: Toller Vorführeffekt.

\nabla
admine
Administrator
Administrator
Beiträge: 8865
Registriert: 15. Feb 2004, 21:13
Kontaktdaten:

Re: Zugriffsrechte & symbolische Links

Beitrag von admine »

nabla hat geschrieben:Hi,

man kann anscheinend den symbolischen Links keine Zugriffsrechte zuweisen (steht ja auch so in den man pages).
Heißt das, dass ich keine solche Links bei meiner Systemkonfiguration verwenden sollte? Wäre doch blöd.
Warum sollst die nicht verwenden ?
Klar doch.
Die wirklichen Rechte werden am Ziel des Links gesetzt.
..:: unser Linux-Club-Wiki ::..
-------------------------
..:: Deutsche Mugge ::..
-------------------------
Benutzeravatar
robi
Moderator
Moderator
Beiträge: 3174
Registriert: 25. Aug 2004, 02:13

Re: Zugriffsrechte & symbolische Links

Beitrag von robi »

nabla hat geschrieben:Hi,
... weil ich meiner Schwester das mit den Zufriffsrechten erklären wollte und zeigen wollte, dass sie als user z.B. keine Programme in /usr/bin verändern kann. Ich gehe also in das Verzeichnis, drücke auf <DEL> und plötzlich ist die Datei weg :shock:......
wenn dein /usr/bin untypischer Weise selbst "drwxrwxrwx" als Zugriffsrechte führt, dann kannst du natürlich symbolische Links auch als user löschen, selbst wenn sie von root angelegt sind. Nach meinem Verständniss machen symbolischen Links in Konfiguratios- oder Binary Verzeichnissen nur Sinn wenn es theoretisch überhaupt möglich währe, Datei und Link auf unterschiedlichen Dateisystemen zu plazieren, warum das nicht so gemacht wird kann ich sowieso nicht verstehen.

Code: Alles auswählen

lrwxrwxrwx  1 root root 11 2004-10-24 14:58 S02coldplug -> ../coldplug
lrwxrwxrwx  1 root root 10 2004-10-24 14:58 S05network -> ../network
lrwxrwxrwx  1 root root  9 2004-10-24 14:58 S06syslog -> ../syslog
lrwxrwxrwx  1 root root  9 2004-10-24 14:58 S08resmgr -> ../resmgr
lrwxrwxrwx  1 root root 15 2004-10-24 14:58 S08splash_early -> ../splash_early
lrwxrwxrwx  1 root root 12 2004-11-15 21:48 S12alsasound -> ../alsasound
lrwxrwxrwx  1 root root  8 2004-10-24 14:58 S12fbset -> ../fbset
lrwxrwxrwx  1 root root 13 2004-10-24 14:58 S12powersaved -> ../powersaved
lrwxrwxrwx  1 root root  8 2004-10-24 14:58 S12xntpd -> ../xntpd
lrwxrwxrwx  1 root root  7 2004-10-24 14:58 S13cups -> ../cups
lrwxrwxrwx  1 root root 11 2004-10-26 16:50 S13joystick -> ../joystick
aber vielleicht kann mir das ja mal jemand erklären.
und dann sollten Symbolische Links natürlich immer mit den Zugriffsrechten des Verzeichnisses abgesichert sein.

robi
nabla
Newbie
Newbie
Beiträge: 3
Registriert: 28. Dez 2004, 04:17

Re: Zugriffsrechte & symbolische Links

Beitrag von nabla »

robi hat geschrieben:wenn dein /usr/bin untypischer Weise selbst "drwxrwxrwx" als Zugriffsrechte führt, dann kannst du natürlich symbolische Links auch als user löschen, selbst wenn sie von root angelegt sind.
Da ist mir gerade etwas sehr seltsames aufgefallen, IMO ein Bug im Konqueror, der mich veranlasst hat, diesen Thread zu beginnen.
Folgendes stammt aus einem shell Fenster:

Code: Alles auswählen

sebschub@Wanze:/usr> ls -l
...
drwxr-xr-x    3 root root 45056 2005-03-06 15:16 bin
...
sebschub@Wanze:/usr/bin> ls -l oggenc
lrwxrwxrwx  1 root root 34 2005-01-16 12:41 oggenc -> oggenc-1.1-impulse_trigger_profile
sebschub@Wanze:/usr/bin> rm oggenc
rm: Entfernen von „oggenc“ nicht möglich: Keine Berechtigung
OK. Nun gehe ich aber ohne an dem User etwas zu ändern mit dem Konqueror in dieses Verzeichnis (so habe ich das auch letztes Mal gemacht) und siehe da, ich kann den Link löschen. :shock: So, dann aber mal <F5> gedrückt und der Link ist wieder da. Es sah also nur so aus, als ob gelöscht worden wäre.
robi hat geschrieben: Nach meinem Verständniss machen symbolischen Links in Konfiguratios- oder Binary Verzeichnissen nur Sinn wenn es theoretisch überhaupt möglich währe, Datei und Link auf unterschiedlichen Dateisystemen zu plazieren, warum das nicht so gemacht wird kann ich sowieso nicht verstehen.
Sollte man also ansonsten eher hard links nehmen? Macht das irgendeinen praktischen Unterschied?

Danke
\n
Huflatisch
Hacker
Hacker
Beiträge: 543
Registriert: 5. Apr 2004, 22:40

Beitrag von Huflatisch »

Hey

ein Hardlink ist die Datei. Ein symbolischer nur ein "Link" auf die Datei. Das heist beim löschen eines Hardlinks ist die Datei weg, und die Hardlinks dies dann noch gibt gehen ins leere.

By Huflatisch
admine
Administrator
Administrator
Beiträge: 8865
Registriert: 15. Feb 2004, 21:13
Kontaktdaten:

Beitrag von admine »

Huflatisch hat geschrieben:Hey

ein Hardlink ist die Datei. Ein symbolischer nur ein "Link" auf die Datei. Das heist beim löschen eines Hardlinks ist die Datei weg, und die Hardlinks dies dann noch gibt gehen ins leere.

By Huflatisch
hm ... nö.

Hardlinks - das File gibt es solange, solange es noch einen Hardlink darauf gibt. Ein Hardlink ist einfach ein zweiter (dritter, vierter, etc.) Name für dieselbe Datei. Funktioniert nur innerhalb desselben Dateisystems.
Softlink - verweisen auf ein File. Ist das Ziel gelöscht zeigt der Link ins "Leere"
..:: unser Linux-Club-Wiki ::..
-------------------------
..:: Deutsche Mugge ::..
-------------------------
Huflatisch
Hacker
Hacker
Beiträge: 543
Registriert: 5. Apr 2004, 22:40

Beitrag von Huflatisch »

Hey

Ich war mir bis dato sicher das das so ist :oops:

dann dreh ich meine Aussage um 180% :wink:


By Huflatisch
Zuletzt geändert von Huflatisch am 11. Mär 2005, 11:37, insgesamt 1-mal geändert.
nabla
Newbie
Newbie
Beiträge: 3
Registriert: 28. Dez 2004, 04:17

Beitrag von nabla »

admine hat geschrieben:Hardlinks - das File gibt es solange, solange es noch einen Hardlink darauf gibt. Ein Hardlink ist einfach ein zweiter (dritter, vierter, etc.) Name für dieselbe Datei. Funktioniert nur innerhalb desselben Dateisystems.
Softlink - verweisen auf ein File. Ist das Ziel gelöscht zeigt der Link ins "Leere"
Das heißt dann, dass verschiedene Hardlinks und die Datei, die "als erstes da war" ununterscheidbar sind?
admine
Administrator
Administrator
Beiträge: 8865
Registriert: 15. Feb 2004, 21:13
Kontaktdaten:

Beitrag von admine »

ja ;)
..:: unser Linux-Club-Wiki ::..
-------------------------
..:: Deutsche Mugge ::..
-------------------------
Benutzeravatar
robi
Moderator
Moderator
Beiträge: 3174
Registriert: 25. Aug 2004, 02:13

Re: Zugriffsrechte & symbolische Links

Beitrag von robi »

admine hat geschrieben: Warum sollst die nicht verwenden ?
Klar doch.
Die wirklichen Rechte werden am Ziel des Links gesetzt.
für lesen schreiben und ausführen mag das stimmen aber nicht fürs löschen des symbolischen Links siehe hier

Code: Alles auswählen

rechner:# id
uid=0(root) gid=0(root) groups=0(root),1(bin)
rechner:# mkdir testdir
rechner:# chmod 777 testdir
rechner:# cd testdir
rechner:# echo 123 > datei
rechner:# chmod 700 datei
rechner:# ln -s datei link
rechner:# ls -l
total 4
drwxrwxrwx    2 root     root           96 Mar 11 15:21 .
drwxr-xr-x    5 user     user         3072 Mar 11 15:20 ..
-rwx------    1 root     root            4 Mar 11 15:20 datei
lrwxrwxrwx    1 root     root            5 Mar 11 15:21 link -> datei
rechner:# su user
rechner # id
uid=8036(user) gid=3003(user)
rechner:# ls -l
total 1
-rwx------    1 root     root            4 Mar 11 15:20 datei
lrwxrwxrwx    1 root     root            5 Mar 11 15:21 link -> datei
rechner: # rm link
rechner: # ls
datei
rechner: # 

lesen und schreiben kann ich "link" nicht aber wohl löschen.

robi
stka
Moderator
Moderator
Beiträge: 3313
Registriert: 1. Jun 2004, 13:56
Wohnort: 51°58'34.91"N 7°38'37.47"E
Kontaktdaten:

Beitrag von stka »

Also ein hardlink kann auf Dateien zeigen die in der selben Partition liegen und ist nur eine weiterer Name kann man mit "ls -i <datei>" testen (-i zeigt inode). Vergleiche "ls -i <datei>" mit "ls -i hardlink".
Ein softlink kann auf Dateinen und Verzeichnisse zeigen und über Partitionsgrenzen hinweg. Der Softlink ist eine eigen Datei ( vergleiche "ls -i <datei>" mit "ls -i <softlink>") die nur auf den Verzeichniseintrag der Original Datei verweist.
Löscht man eine hardlink wird nur der Name aus der I-Node Table gelöscht NICHT aber die Datei. Die Datei wird erst dann gelöscht wenn der letzte Name aus der I-Node Table gelöscht wird. Wird eine Datei gelöscht auf die ein softlink zeigt, zeigt der softlink anschließend ins leere. Legt man an der selben Stelle der Datei eine neue Datei mit dem ursprünglichen Name neu an, funktioniert der softlink auch wieder. Unabhängig von der I-Node der neuen Datei. Da ein softlink nur eine Zeiger auf einen Eintrag im Verzeichnisbaum ist, haben die Rechte keinen Bezug zu der Datei auf die der softlink zeigt. Deshalb werden bei einem softlink alle Rechte gesetzt, da sonst ja eventuell Rechte fehlen würden. Die Rechte für die Datei auf die der Softlink zeigt werden immer über das Original bestimmt.
Ob man nun einen Link ob soft oder hard löschen kann, liegt einzig und allein an den Rechten die man in dem Verzeichnis hat in dem sich der Link befindet.
Will man nun eine Datei die 50 Hardlinks hat endgültig löschen geht das z.B. so

find / -inum <i-node der datei> -exec rm {} \;
Antworten