Univention Bugzilla – Bug 28295
Unterstützung für Einbindung von USB-Massenspeicher an Thin Clients mit Linux-Terminalserver-Betrieb
Last modified: 2013-03-26 09:14:31 CET
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
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)
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
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.
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.
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.
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.
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.
(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.
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.
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".