Re: Harte Links und Zugriffsrechte

From: Harold Gutch <logix(at)foobar.franken.de>
Date: Fri, 30 Jul 2004 17:28:49 +0200

On Fri, Jul 30, 2004 at 04:35:11PM +0200, Dominik Brettnacher wrote:
> Hallo zusammen,
>
> ich nutze -chat, weil es nicht direkt mit FreeBSD zu tun hat.

Och, wuerde ich nicht ganz so sehen - s. meine Antwort, ganz
unten.

> Angenommen, ich habe folgendes:
>
> 1. zwei Nicht-Root Benutzer a und b. Jeder Benutzer kann auf das
> Homeverzeichnis des anderen Lesen, aber nicht schreiben (also etwa
> rwxr-xr-x).
>
> 2. Im Homeverzeichnis von a liegt eine Datei "datei_von_a", mit Rechten
> rwx------.
>
> 3. b erstellt nun einen harten Link von ~a/datei_von_a nach
> ~b/datei_von_b. Das funktioniert, weil b auf das Homeverzeichnis von a
> zugreifen darf.
>
> Nun liegt in ~b eine Datei, die a gehört. a kann die Datei lesen, aber
> nicht löschen (weil der Schreibzugriff auf das Verzeichnis fehlt). b kann
> die Datei löschen, aber nicht lesen (weil der Lesezugriff auf die Datei
> fehlt).

Ja, du sprichst damit eine bekannte Geschichte an.

> Ich weiß nicht, wie es den restlichen Mailinglistenteilnehmern geht, aber
> was mich an dieser Sache überrascht, ist dass man Hardlinks von Dateien
> erzeugen darf, von denen man nicht der Eigentümer ist. Ich halte das
> deshalb für merkwürdig, weil man so Systeme mit Quota unbrauchbar machen
> könnte.

Ich wuerde das jetzt nicht als "unbrauchbar" bezeichnen. Die
Benutzer muessen "nur" richtig damit umgehen koennen - da sehe
ich allerdings schon die Problematik, dass das die meisten
Benutzer wohl nicht koennen.

Gravierender als dein oben dargestelltes Szenario ist eher
folgendes: Du hast irgendwo ein suid-root Binary mit einem
Sicherheitsproblem. Ein User erzeugt einen Hardlink darauf.
Beispielsweise koennte man sich da ein FreeBSD mit der
Standardinstallation vorstellen, das also /home auf der /usr
Partition liegen hat. Der User kann dann von saemtlichen
suid-root Binaries auf /usr "Kopien" in seinem Homeverzeichnis
erstellen - quasi "provisorisch". Nun wird ein
Sicherheitsproblem mit einem dieser Binaries bekannt. Als
gewissenhafter Admin loeschst du erstmal das boese Binary und
updatest es dann - portupgrade macht das z.B. vermutlich (will
sagen: ich habe das jetzt nicht ueberprueft) genau so, also
indem es zuerst den Port mit "mv" wegbewegt, den neuen Port
installiert, und dann das alte loescht. Leider gibt es da aber
noch diesen anderen Directoryeintrag im Homeverzeichnis des
Users... Idealerweise loescht man das boese Binary also nicht,
sondern ueberschreibt es (cp newbin oldbin), oder ueberschreibt
zumindest zuerst den Inhalt mit einem "true > oldbin".

> Also, wie gesagt: mich wundert das sehr. Ich bin sicher nicht der einzige,
> der sich darüber wundert. Weiß vielleicht irgendjemand auf der Liste,
> warum das so ist?

Den Grund dafuer kann ich dir nicht sagen, allerdings ist fuer
dich vielleicht der Thread "Call for review: restricted
hardlinks." auf freebsd-security, vom Maerz 2004 interessant -
damit werden 2 sysctls eingefuehrt, mit denen du genau das
erreichen kannst.

Ich sehe auch gerade, dass FreeBSD-CURRENT das ganze schon hat.
Fuer ein aelteres 5.x bzw. fuer ein -STABLE muesstest du wohl den
Patch der in dem Thread erwaehnt wurde backporten.

... und damit hab' ich dann wohl doch wieder die Kurve zu FreeBSD
hingekriegt ;-).

bye,
  Harold

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-chat" in the body of the message
Received on Fri 30 Jul 2004 - 17:29:53 CEST

search this site