PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : truecrypt, SUID-Problem



Cerox
23.04.07, 20:12
Hallo zusammen,

ich verwende hier SuSe 10.2 mit TrueCrypt 4.3 auf einem Rechner.

Es existiert ein Benutzer "sebastian", Gruppenzugehörigkeit: "sebastian", welcher einen verschlüsselten Container mounten soll. Als root funktioniert es problemlos; auch als User kann ich den Container mounten, nur leider habe ich dann keinen Schreibzugriff.

Um dies zu ändern, muss ich als root den Parameter --mount-options für TrueCrypt mit angeben.

Nun soll aber wie schon erwähnt der Benutzer sebastian den Container selbstständig mit Schreibzugriff mounten können. Daher dachte ich mir: ärger ich mich mal nicht lange damit rum und setze das SUID Bit auf folgendes Script:


#!/bin/bash
truecrypt /data1/documents /mnt/crypt --mount-options uid=sebastian

Eigentümer: root (was auch sonst)
Gruppe: sebastian (damit ich es ausführen kann)
Rechte: 4750

Wenn ich das Script nun als "sebastian" ausführe, kommt folgende Fehlermeldung:


--mount-options can be specified only by an administrator (see options -r, -u)

Genau die gleiche Fehlermeldung erscheint, wenn ich den Befehl im Script als User ausführe, d.h. irgendwie schlägt das SUID Bit nicht an.

Es taucht aber in einem ls -l auf:


-rwsr-x--- 1 root sebastian 79 2007-04-23 21:04 truecrypt_mount

Die Rechte stimmen also.

Kann sich jemand vorstellen was ich da falsch mache?

-hanky-
23.04.07, 21:45
Einfache Erklärung: Das SUID-Bit ist bei (Bash-)Skripten wirkungslos. Warum das so ist müsstest du jetzt ergooglen, ich hab die Quelle gerade nicht zur Hand.

Lösung ist ein SUID-Wrapper wie z.B. der unter [1] oder eine Alternativlösung.

-hanky-

[1] http://isptools.sourceforge.net/suid-wrap.html

Cerox
23.04.07, 22:53
Hi,

danke für die Antwort; darauf wäre ich jetzt erstmal nicht gekommen^^

Ich habe nun mal den su-wrapper installiert und die /etc/su-wrapper.conf wie folgt eingerichtet:


* * * truecrypt_mount root sebastian /usr/local/truecrypt_mount
* * * truecrypt_umount root sebastian /usr/local/truecrypt_umount

Damit kann ich anscheinend die Skripte ausführen als User sebastian; es fragt dann nämlich nach der Passphrase für den Container wenn ich "su-wrapper truecrypt_mount" ausführe.

Naja, dazu sagt er dann folgendes:
Failed to assign loopback device for file-hosted volume

Eine komfortable Alternative fällt mir nicht ein.

Mein Wunsch ist eine Verknüpfung auf dem Desktop zum Skript; wenn ich draufklicke soll sich eine Shell öffnen und die Passphrase zum Container verlangen.

Ohne die Mountoptions (d.h. ich habe keinen Schreibzugriff) habe ich das so gelöst:

xterm -e "truecrypt /data1/documents /mnt/crypt"
Das hat auch geklappt. Nun möchte ich die --mount-options hinzufügen, wozu ich Root-Rechte bräuchte.

Ich habe aber auch keine Lust erst nach dem Root-Passwort zu verlangen und dann nach der Passphrase für den Container. Daher auch die Idee mit dem SUID-Bit. Geht das vielleicht mit anderen Shells?

edit:
Ok, ich habe es jetzt anders gelöst.

Ich habe mir per sudo den Zugriff auf die beiden Skripte erlaubt.