Bug 28295 - Unterstützung für Einbindung von USB-Massenspeicher an Thin Clients mit Linux-Terminalserver-Betrieb
Unterstützung für Einbindung von USB-Massenspeicher an Thin Clients mit Linux...
Status: CLOSED FIXED
Product: Z_Univention Corporate Client (UCC)
Classification: Unclassified
Component: Hardware and device support
unspecified
Other Linux
: P5 enhancement
: UCC 1.0
Assigned To: Felix Botner
Moritz Muehlenhoff
: interim-3
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2012-08-24 12:42 CEST by Moritz Muehlenhoff
Modified: 2013-03-26 09:14 CET (History)
1 user (show)

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional): Release Goal
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Moritz Muehlenhoff univentionstaff 2012-08-24 12:42:18 CEST
Die in TCS 3.1 verwendete Lösung für die Einbindung von USB-Massenspeicher am Thin Client in eine UCD-Terminalserver-Sitzung erfolgt über ltspfs und einige UCS-spezifische Protokolle für die Übertragung der Mount-Befehle.

Das ist wg. grösserer Änderungen an LTSP nicht mehr direkt übertragbar und sollte durch eine alternative Lösung ersetzt werden.

Eine mögliche Lösung: usbip, dessen Kernel-Treiber mittlerweile auch in den staging-Bereich der Linux-Kernels aufgenommen wurde und dort weiterentwickelt wird:
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=history;f=drivers/staging/usbip;hb=HEAD
Comment 1 Moritz Muehlenhoff univentionstaff 2012-11-08 09:57:29 CET
Eine anderer möglicher Ansatz wäre sshfs:

- Auf dem Thin Client müsste ein SSH-Server laufen
- Über eine udev-Regel würde ein eingesteckter Stick erkannt und gemountet
- Das Einbinden des Sticks am Thin Client müsste dies in der UCC-Sitzung registriert werden und dann über sshfs ein SFTP-Mount des Thin-Client-Mount-Points eingebunden werden
- Der Abzug des USB-Sticks am Thin-Client müsste die Verbindung beenden
- Es muss sichergestellt werden, das alle schreibenden Änderungen am Stick zeitnah auf die Hardware gesynct werden (da der Stick jederzeit plötzlich abgezogen werden kann)
Comment 2 Kevin Dominik Korte univentionstaff 2012-11-08 10:06:42 CET
Wir haben von kunden öfters die Anforderung auch USB festplatten mit anderen oder ganz ohne Partitionen mounten zu können. usbip wäre daher aus unserer Sicht die bessere Lösung
Comment 3 Moritz Muehlenhoff univentionstaff 2012-11-08 10:10:08 CET
Eine andere Lösung wäre ein lokales Mount-Skript (analog zu den udev-Regeln 
für RDP und Citrix), das den Stick einbindet und über ein CIFS-Share durch 
einen lokal gestarteten smbd freigibt. Das würde Windows- und Linux-Clients 
den unkomplizierten Zugriff auf die Daten erlauben.

Die Samba-Option "valid users" beschränkt den Zugriff auf den angegeben User, unabhängig von den Dateisystemberechtigungen.
Comment 4 Moritz Muehlenhoff univentionstaff 2012-11-19 12:38:14 CET
Für UCC 1.0 ist folgendes Verfahren geplant:

- Auf den Clients laufen udev-Regeln, die einen Mount der USB-Devices erkennen
- Über den Kommunikationskanal von univention-session wird dann auf dem 
Terminalserver ein Desktop-Icon erzeigt, das eine sftp://-URL auf den 
gemounteten Thin Client erhält
- KDE öffnet diese dann über einen KIO-Slave transparent in Dateimanagern wie 
Dolphin

Die Thin Clients werden nach Möglichkeit kerborisiert, so dass die 
Authentifizierung über ein Kerberos-Ticket erfolgt. Als Fallback kann ggf. das 
Passwort in kwallet gespeichert werden.
Comment 5 Moritz Muehlenhoff univentionstaff 2013-01-07 12:26:10 CET
Die udev-Regeln gibt es schon (univention-ucc-remote-mount)

Für UCC 1.0 müssen die Desktop-Icons nicht dynamisch auf dem Desktop erzeugt werden.
Comment 6 Felix Botner univentionstaff 2013-01-09 11:24:59 CET
Durch GSSAPIDelegateCredentials=yes als ssh Option werden die Credentials nun bei der UCC Remote Session nun auf den Server übermittelt.

Auf dem Application server gibt es nun ein KDE Autostart-Script (/usr/share/autostart/univention-ucc-kde-remote-device-bookmark.desktop), welches bei der KDE Anmeldung /usr/share/univention-ucc-application-server/univention-ucc-kde-remote-device-bookmark aufruft.

Dieses Script fügt einen KDE (File) Bookmark auf fish://CLIENT_IP/run/drives in die ~/.kde/share/apps/kfileplaces/bookmarks.xml ein, sofern es eine SSH Verbindung ist (UCC Remote).

Dieser Bookmark wird dann als CLIENT_NAME (USB Stick Icon) im dolphin und alle KDE FileDialogen angezeigt.

Das ist dann jetzt zwar kein Desktop-Icon, aber vielleicht kann man sich das erstmal anschauen.

Desktop-Icons wiedersprechen ja ein bisschen der KDE Philosophie, beispielsweise hat man LibreOffice offen und will eine Datei über remote öffnen, dann muss man das LibreOffice Fenster so verschieben um das Icon auf dem Desktop zu finden. Mit dem Bookmark hat man direkten Zugriff auf das Icon über den Filedialog.
Comment 7 Moritz Muehlenhoff univentionstaff 2013-01-29 12:31:19 CET
Binde ich einen Stick mit vfat ein und kopiere eine Datei hinauf, erhalte ich folgendes:

root@x201:~# ls -lha /run/drives/usbdisk-sdc1/
ls: Zugriff auf /run/drives/usbdisk-sdc1/,╔ò÷■aE3./┌J nicht möglich: Datei oder Verzeichnis nicht gefunden
ls: Zugriff auf /run/drives/usbdisk-sdc1/²╚¥iwb+.å▄½ nicht möglich: Eingabe-/Ausgabefehler
ls: Zugriff auf /run/drives/usbdisk-sdc1/║ú 6/│τ.jy│ nicht möglich: Datei oder Verzeichnis nicht gefunden
insgesamt 3,5G
drwxrwxrwx 2 root  root 4,0K Dez 22 16:24 .
drwx------ 3 jmm13 root   60 Dez 22 16:24 ..
d????????? ? ?     ?       ?            ? ²╚?¥iwb+.å▄½
-rwxrwxrwx 1 root  root 8,5K Dez 22 16:24 b╥⌠uyhφ╔.á■±
-rwxrwxrwx 1 root  root  53M Okt 18 17:55 ≤êτü?9è╓.%√^
-rwxrwxrwx 1 root  root 584M Dez 24  1931 ╚N÷╘+░3$.v▒ç
d????????? ? ?     ?       ?            ? ,╔ò÷■aE3./┌J
d????????? ? ?     ?       ?            ? ║ú 6/│τ?.jy│
-rwxrwxrwx 1 root  root 349M Jul  2 19:24 ?y░pneê╪.nû╣
-rwxrwxrwx 1 root  root 349M Jul  2 19:24 Θê°├π╦═ .ÅM?
-rwxrwxrwx 1 root  root 2,2G Jan 30  2012 ⁿ╘∙Ω?│bw.*@?

Erik hatte das Probleme ebenfalls. Ggf. ist der Stick defekt, ich teste das mit einem zweiten Stick weiter und zusätzlich nochmal mit ext3.
Comment 8 Moritz Muehlenhoff univentionstaff 2013-01-29 14:22:16 CET
(In reply to comment #7)
> Binde ich einen Stick mit vfat ein und kopiere eine Datei hinauf, erhalte ich
> folgendes:
> 
> root@x201:~# ls -lha /run/drives/usbdisk-sdc1/
> ls: Zugriff auf /run/drives/usbdisk-sdc1/,╔ò÷■aE3./┌J nicht möglich: Datei oder
> Verzeichnis nicht gefunden
> ls: Zugriff auf /run/drives/usbdisk-sdc1/²╚¥iwb+.å▄½ nicht möglich:
> Eingabe-/Ausgabefehler
> ls: Zugriff auf /run/drives/usbdisk-sdc1/║ú 6/│τ.jy│ nicht möglich: Datei oder
> Verzeichnis nicht gefunden
> insgesamt 3,5G
> drwxrwxrwx 2 root  root 4,0K Dez 22 16:24 .
> drwx------ 3 jmm13 root   60 Dez 22 16:24 ..
> d????????? ? ?     ?       ?            ? ²╚?¥iwb+.å▄½
> -rwxrwxrwx 1 root  root 8,5K Dez 22 16:24 b╥⌠uyhφ╔.á■±
> -rwxrwxrwx 1 root  root  53M Okt 18 17:55 ≤êτü?9è╓.%√^
> -rwxrwxrwx 1 root  root 584M Dez 24  1931 ╚N÷╘+░3$.v▒ç
> d????????? ? ?     ?       ?            ? ,╔ò÷■aE3./┌J
> d????????? ? ?     ?       ?            ? ║ú 6/│τ?.jy│
> -rwxrwxrwx 1 root  root 349M Jul  2 19:24 ?y░pneê╪.nû╣
> -rwxrwxrwx 1 root  root 349M Jul  2 19:24 Θê°├π╦═ .ÅM?
> -rwxrwxrwx 1 root  root 2,2G Jan 30  2012 ⁿ╘∙Ω?│bw.*@?
> 
> Erik hatte das Probleme ebenfalls. Ggf. ist der Stick defekt, ich teste das mit
> einem zweiten Stick weiter und zusätzlich nochmal mit ext3.

Der Stick war tatsächlich defekt, mit zwei anderen geht es problemlos.
Comment 9 Moritz Muehlenhoff univentionstaff 2013-01-29 14:28:34 CET
Das funktioniert soweit gut: Der einbundene Stick ist im Dolphin als eigenes Device eingebunden. Beim ersten Zugriff auf den Stick muss die Hostkey bestätigt werden. Das ist erstmal ok so und wird entsprechend dokumentiert.

Auch aus Applikationen heraus, die in KDE integriert sind - wie LibreOffice - ist es dann verfügbar (Libreoffice weigert sich allerdings auf "entfernte Laufwerke" zu speichern, das ist vermutlich eine Konfigurationsoption).
Aus Firefox heraus direkt zu speichern funktioniert nicht, da die GTK-Dialoge die Fish-URL nicht einbinden.
Comment 10 Moritz Muehlenhoff univentionstaff 2013-03-26 09:14:31 CET
UCC 1.0 has been released: 
http://forum.univention.de/viewtopic.php?f=26&t=2417
http://forum.univention.de/viewtopic.php?f=54&t=2418

If this error occurs again, please use "Clone This Bug".