• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Zugriffsrechte & symbolische Links

nabla

Newbie
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

Ultimate Guru
nabla schrieb:
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.
 
A

Anonymous

Gast
nabla schrieb:
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:
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
 
OP
N

nabla

Newbie
robi schrieb:
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:
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 schrieb:
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
 
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

Ultimate Guru
Huflatisch schrieb:
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"
 
OP
N

nabla

Newbie
admine schrieb:
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?
 
A

Anonymous

Gast
admine schrieb:
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:
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

Guru
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 {} \;
 
Oben