[CIFS] Probleme mit Einhängen von Win-Freigabe über fstab

porn()pole

Commodore
Registriert
Mai 2002
Beiträge
5.062
Hello darlings,

was über Gigolo ohne Probleme klappt, muss doch auch über das Terminal bzw. die fstab gehen:

Code:
# Windows-Netzlaufwerk
//192.168.1.XX/F /media/F cifs auto users username=XY,passwd=XY,domain=WORKGROUP 0 0

Bei Neustart erscheint zwar ein transparentes Desktopsymbol der Freigabe, aber wenn man versucht, den Ordner zu öffnen, kommt folgende Meldung:

Der Datenträger "F" konnte nicht eingehängt werden.
[mntent]: Zeile 17 in /etc/fstab ist fehlerhaft
mount: /media/F konnte nicht in /etc/fstab oder /etc/mtab gefunden werden

Wo ist der Fehler?
 
Code:
//192.168.1.XX/F /media/F cifs auto,users,username=XY,passwd=XY,domain=WORKGROUP 0 0

Ungetestet, aber zwischen auto, users und dem Rest fehlen definitiv Kommata.


Und da fstab für alle lesbar ist, wäre es vielleicht gut das Login über die credentials-Option zumindest in eine nur root-lesbare Datei auszulagern.
 
Hier stand Mist.


auto,users < mit komma
 
Danke euch, aber hier das unbefriedigende Ergebnis:

mount: Falscher Dateisystemtyp, ungültige Optionen, der
Superblock von //192.168.1.33/F ist beschädigt, fehlende
Kodierungsseite oder ein anderer Fehler
(für diverse Dateisysteme (z.B. nfs, cifs) könnte
ein Hilfsprogramm wie /sbin/mount.<Typ> nötig sein)
Manchmal liefert das Systemprotokoll wertvolle Informationen,
versuchen Sie »dmesg | tail« oder so

EDIT:
Habe mal dmesg ausgeführt und tatsächlich folgenden Fehler gleich dreifach gefunden:
Code:
CIFS: Unknown mount option "passwd=XY"

Und zur credentials eine Frage:
in der ubuntuwiki wurde empfohlen, diese Datei versteckt im Home-Verzeichnis abzulegen. Ist das eine gute Idee? Bessere Vorschläge?
 
Zuletzt bearbeitet:
Also bei mir habe ich folgenden (funktionierenden) Eintrag im fstab:
Code:
//nas/Antraege /media/nas/Antraege cifs credentials=/etc/cifs.nas.credentials,nofail,uid=andreas,gid=andreas 0 0

Bis auf das Login mittels Credentials sehe ich da keinen gravierenden Unterschied.
Was gibt "smbclient -L 192.168.1.XX -U XY" (mit den richtigen Daten) bei dir aus? Kannst du die Shares dort sehen?

Wo man die Credentials speichert ist prinzipiell egal. Für den Bootvorgang kriegsentscheidendes würde ich einfach gefühlsmäßig nicht unter ~ ablegen... Aber das ist sicherlich Geschmackssache.
 
Ja, die Shares kann ich sehen! Was mich hier noch wundert ist, dass oben unter "Domain" was anderes steht wie die eigentliche Netzwerkdomain ... kann das sein?

Hier steht als "Domain" der Name des Rechners, auf dem die Freigabe erteilt wurde (Win10). In meiner credentials verweise ich aber auf die Netzwerkdomain!

Außerdem gibt er mir noch diese Fehlermeldung nach der Liste der Shares aus:
Connection to 192.168.1.XY failed (Error NT_STATUS_RESOURCE_NAME_NOT_FOUND)
NetBIOS over TCP disabled -- no workgroup available
 
Also bei mir sagt er "Domain=[WORKGROUP]", es ist ja auch keine Domäne eingerichtet. Was passiert, wenn du den domain-Eintrag einfach mal weglässt?
 
Nichts, kein Unterschied in der Ausgabe:

Domain=[blablabla-PC] OS=[Windows 10 Pro 10586] Server=[Windows 10 Pro 6.3]

Sharename Type Comment
--------- ---- -------
ADMIN$ Disk Remoteverwaltung
C$ Disk Standardfreigabe
F Disk
F$ Disk Standardfreigabe
IPC$ IPC Remote-IPC
Connection to 192.168.1.XY failed (Error NT_STATUS_RESOURCE_NAME_NOT_FOUND)
NetBIOS over TCP disabled -- no workgroup available
Ergänzung ()

Hello? Keine Ideen mehr?

Was kann ich noch prüfen?

Warum geht es problemlos über Gigolo?
 
Leider nein, keine konkrete Idee mehr. Ich habe auch kein Windows 10 zum Testen zur Verfügung. Welche Samba-Version bzw. welche Distribution benutzt du überhaupt?

Ich kenne Gigolo jetzt nicht, aber ich vermute mal, der macht etwas ähnliches wie KIO. Und da wird halt nicht das CIFS-Kernel-Modul benutzt, das Mounten geschieht unabhängig vom fstab-Eintrag... Gab es eventuell mit Windows 10 Neuerungen im Protokoll, die dein Gigolo beachtet, das Kernel-Modul jedoch nicht?
 
Ich verwende xubuntu 1404... Welche Samba-Version? Keine Ahnung, wie check ich die?

Gibt es evtl. die Möglichkeit, die Freigabe auf Win10 "kompatibler" zu gestalten? Ich habe keine tiefgreifenden Netzwerkkenntnisse.

EDIT:

Nevermind, hab es hinbekommen. Die Lösung ist in meinen Augen etwas unlogisch, da ich eigentlich davon ausging, dass die grafischen Helferlein wie Gigolo auch nur mit Wasser (sprich: mit im Hintergrund im Terminal laufenden, bekannten Tools) kochen.

Ich musste einfach nur das Paket "cifs-utils" nachinstallieren. Warum auch immer Gigolo ohne das Ding auskommt ... vielleicht kann es mir ja jemand hier plausibel erklären. Ist mir nämlich schon ein paar Mal aufgefallen, dass die grafischen Tools anscheinend nicht wirklich auf die terminalbasierten Programme zurückgreifen.
 
Zuletzt bearbeitet:
Ohne gigolo genauer zu kennen könnte ich mir vorstellen das es mit eigenen libs kommt, ähnlich wie wenn man Programme wie Google-Earth oder VLC als Linux-Programm in Umgehung des Paketmanagers in z.b. /opt installiert (z.b. über ein install skript). Anders als bei Paketen die der Paketmanager installiert sind diese dann nicht systemweit nutzbar weil sie nicht dort in der Verzeichnisstruktur gelandet sind wo sie vom System gesucht werden, soll heißen in /opt/blablablubb anstatt /usr/share. Gigolo könnte diese libs dann beispielsweise in deinem Homeverzeichnis installieren wo logischerweise auch erst mal nur gigolo zugreifen wird. Es kann auch sein das dann nur bestimmte Teile die in dem Paket - in deinem Fall cifs-utils - enthalten sind, weil *-utils Pakete sind meist bündel von verschiedenen libs sind.

Möglich wäre aber auch das gigolo die libs in abgeänderter Form mitbringt. Für das System schöner und effektiver ist da natürlich wenn die Konsistenz erhalten bleibt und libs immer an der Stelle zu finden sind wo das System sie auch sucht, bzw. immer die gleichen libs genutzt werden. Dann hättest du dein Problem nicht gehabt. Das können dir wohl aber nur die Entwickler sicher sagen warum das so ist.

Ist aber nur eine Vermutung.
 
So ähnlich habe ich es mir auch schon erklärt. Ich muss mir definitiv angewöhnen, immer die grundlegenden Pakete zu installieren und NICHT davon ausgehen, dass es "ja eigentlich funktionieren müsste"...
 
Kleine Nachfrage:

Das Mounten der Win-Freigabe im Netzwerk ging ja dann irgendwann über den korrekten Eintrag in der fstab - ohne Gigolo.
Jetzt hatte ich aber das Problem, dass ich zwar auf die Dateien zugreifen konnte, nicht aber in das Verzeichnis schreiben durfte.

Erst mit diesen zusätzlichen Optionen ging es:
Code:
rw,auto,nounix,dir_mode=0777,file_mode=0777,uid=1000,gid=1000

Kann mir jemand kurz und knapp die einzelnen Optionen hier erklären? Was genau passiert hier, sodass plötzlich alles wunderbar funktioniert?
 
Google geht bei dir nicht?

file und dir-mode sind die rechte bei linux bzgl. lesen/schreiben/ausführen.

777 = jeder user darf von dort lesen/schreiben und dinge ausführen

mit uid und gid wird der besitzer festgelegt des mounts festgelegt.
 
Sodele, nach der Neuinstallation von xenial xerus bekomme ich die verdammte Freigabe wieder nicht hin - Fehlermeldung:

mount: only root can mount //192.168.1.xx/XXX on /media/F

hier meine /etc/fstab:

Code:
//192.168.1.XX/XXX /media/F cifs auto,credentials=/home/XXX/.smbcredentials,uid=1000,gid=1000,rw,nounix,umask=0777,dir_mode=0777,file_mode=0777

Das SUID-Bit für /sbin/mount.cifs ist gesetzt. Was ist also das Problem?

cifs-utils habe ich nachinstalliert. Fehlt noch evtl. ein Paket?
Ergänzung ()

Noch eine Kuriosität, die ich mir nicht erklären kann:
Code:
sudo mount -t cifs -o uid=1000,username=XYZ,password="XYZ" //192.168.1.XX/F /media/F

funktioniert anstandslos! WHY?
 
Probier es mal mit der Option users, wie oben schon. Ansonsten, ist das mit dem SUID-Bit Standard oder hast du das gesetzt?
 
Verstehe ich das richtig, dass mit der Option "users" wirklich JEDER User auf dem System das Laufwerk bzw. die Windows-Freigabe automatisch gemountet hat? Denn das will ich eigentlich nicht.

"uid=1000" (also mein User) ist doch hier schon genehmigt, oder nicht?

Und ja, das SUID habe ich manuell gesetzt, wie im entsprechenden ubuntuwiki-Eintrag zum Thema mount geschrieben.
 
Aus "man 8 mount.cifs":
uid=arg
sets the uid that will own all files or directories on the mounted filesystem when the server does not provide ownership information. It may be specified as either a username or a numeric uid. When not specified, the default is uid 0. The mount.cifs helper must be at version 1.10 or higher to support specifying the uid in non-numeric form. See the section on FILE AND DIRECTORY OWNERSHIP AND PERMISSIONS below for more information.
uid setzt also den Eigentümer der Daten und keine Mount-Berechtigungen.

Wenn "users" nicht das gewünschte Verhalten bringt, könntest du mal "user" probieren. Dann kann nur der Benutzer das Dateisystem aushängen, der es eingehängt hat:
man 8 mount
user Allow an ordinary user to mount the filesystem. The name of the mounting user is written to the mtab file (or to the private libmount file in /run/mount on systems without a regular mtab) so that this same user can unmount the filesystem again. This option implies the options noexec, nosuid, and nodev (unless overridden by subsequent options, as in the option line user,exec,dev,suid).

nouser Forbid an ordinary user to mount the filesystem. This is the default; it does not imply any other options.

users Allow any user to mount and to unmount the filesystem, even when some other ordinary user mounted it. This option implies the options noexec, nosuid, and nodev (unless overridden by subsequent options, as in the option line users,exec,dev,suid).
 
Okay, sorry ... insg. mal wieder mein Fehler:

Ich hatte einen Tippfehler in den credentials ... :freak:

Was mich dennoch interessieren würde:
Die Optionen user und users sind von der Funktionsweise klar. Wie aber kann ich ganz bestimmte User für diese bestimmte Freigabe berechtigen und andere User eben nicht? Finde dazu nix in der man ...


Keiner ne Idee oder einen Hinweis? Ich finde wirklich nix zu dem Thema ...
 
Zuletzt bearbeitet:
Hast du mal versucht eine Gruppe zu erstellen, der Gruppe die gewünschte Rechte einzuräumen und dann User der Gruppe zuzuordnen? Dann sollten die gewählten User die Rechte erhalten, jeder der nicht in der Gruppe ist, hat keinen Zugriff.

Ausführlich (englisch):

https://wiki.archlinux.org/index.php/users_and_groups
 
Zurück
Oben