Wie wirkt sich der Fstab exec noexec-Parameter auf Samba-Freigaben aus?

Wie wirkt sich der Fstab exec noexec-Parameter auf Samba-Freigaben aus?

Ich habe mehrere Datenlaufwerke gemountet und noexecParameter verwendet. Ich dachte, da es nur Daten sind, würde ich sie nicht brauchen exec. Jetzt habe ich einige Berechtigungsprobleme und würde dies gerne als Ursache ausschließen und die Option besser verstehen.

Hat execder Parameter in /etc/fstabdieselbe Wirkung wie die Erteilung von Ausführungsberechtigungen für alle Verzeichnisse und Dateien im gemounteten System?

Welche Auswirkungen hat es auf ausführbare Windows-Dateien ( .exe), auf die über Samba-Freigaben oder andere Netzwerkprotokolle zugegriffen wird?

Gemountete Laufwerke werden mit aufsoder gepoolt mhddfsund über einen zentralen Mount-Punkt in aufgerufen /mnt/virtual. Der Zugriff erfolgt dann über das Netzwerk (aktuell Samba). Es wird auch lokalen Zugriff geben ( xbmc). Ich bin nicht sicher, ob ich einen direkten Link oder einen Samba-Link zu den Dateien bereitstellen soll?

Was ist in diesem Fall die beste Vorgehensweise?

Antwort1

Durchsehen der Manpages

Wenn Sie sich die Manpage ansehen, mount.cifsdie zum Mounten aller aufgelisteten Freigaben verwendet wird, /etc/fstabfinden Sie dort einen Hinweis, der erwähnt noexec.

Auszug – Manpage von mount.cifs

Dieser Befehl darf nur von root verwendet werden, es sei denn, es ist als Setuid installiert. In diesem Fall sind die Mount-Flags noeexec und nosuid aktiviert. Wenn das Programm als Setuid-Programm installiert wird, befolgt es die Konventionen, die vom Mount-Programm für Benutzer-Mounts festgelegt wurden, mit der zusätzlichen Einschränkung, dass Benutzer vor dem Mounten in der Lage sein müssen, chdir() in den Mountpoint zu verwenden, um dort mounten zu können.

Einige Samba-Client-Tools wie smbclient(8) berücksichtigen clientseitige Konfigurationsparameter, die in smb.conf vorhanden sind. Im Gegensatz zu diesen Client-Tools ignoriert mount.cifs smb.conf vollständig.

Angesichts dessen würde ich erwarten, dass die Option exec/noexec berücksichtigt wird, wenn sie bei Mount-Versuchen enthalten ist. Ein Blick auf die mount.cifsVerwendung zeigt außerdem, wie diese Option verwendet würde.

Auszug - mount.cifs-Verwendung
Less commonly used options:
    credentials=<filename>,guest,perm,noperm,setuids,nosetuids,rw,ro,
    sep=<char>,iocharset=<codepage>,suid,nosuid,exec,noexec,serverino,
    mapchars,nomapchars,nolock,servernetbiosname=<SRV_RFC1001NAME>
    directio,nounix,cifsacl,sec=<authentication mechanism>,sign,fsc

Ein Blick auf die fstabManpage erklärt den beabsichtigten Zweck von exec/noexec, gibt aber nicht an, ob dies für alle ausführbaren Dateien oder nur für Unix-Dateien gilt.

Auszug aus der Manpage von fstab

exec / noexec

Mit exec können Sie Binärdateien ausführen, die sich auf dieser Partition befinden, während dies mit noexec nicht möglich ist. noexec kann für eine Partition nützlich sein, die keine Binärdateien enthält, wie z. B. /var, oder die Binärdateien enthält, die Sie nicht auf Ihrem System ausführen möchten oder die auf Ihrem System nicht einmal ausgeführt werden können, wie dies beispielsweise bei einer Windows-Partition der Fall sein könnte.

Macht exec/noexec alles ausführbar?

Nein, das exec/noexec-Attribut schränkt lediglich die Zulassung von Dingen ein, die über ihre Berechtigungsbits als ausführbar gekennzeichnet sind, es wirkt sich nicht direkt auf die Berechtigungen aus.

Was ist mit den Windows-Binärdateien?

Die Einstellung „exec/noexec“ hat jedoch keine Kontrolle über ausführbare Windows-Dateien, sondern nur über ausführbare Unix-Dateien, die sich ebenfalls auf diesen Freigaben befinden können.

Außerdem bin ich mir nicht einmal sicher, wie diese ins Spiel kommen würden, wenn Sie eine CIFS/Samba-Freigabe über mounten /etc/fstab, wann würde in diesem Szenario überhaupt ein Windows-Betriebssystem ins Spiel kommen. Windows könnte diese Freigabe direkt selbst mounten und müsste sich nicht einmal die Mühe machen, über Linux zu gehen.

Ausprobieren

Beispiel aus Unix

mount.cifsSie können dies direkt über die Befehlszeile testen . Angenommen, wir hätten eine Datei auf der CIFS/Samba-Freigabe wie folgt:

$ cat cmd.bash 
#!/bin/bash

echo "hi"

$ chmod +x cmd.bash

Jetzt mounten wir es wie folgt und versuchen, das Skript auszuführen cmd.bash:

$ mount.cifs //server/cifsshare /path/to/cifsmnt -o user=joeuser,noexec

$ cd /path/to/cifsmnt
$ ./cmd.bash
bash: ./cmd.bash: Permission denied

Wenn wir diese Option weglassen noexec,:

$ mount.cifs //server/cifsshare /path/to/cifsmnt -o user=joeuser

$ cd /path/to/cifsmnt
$ ./cmd.bash
hi
Von Windows

Das einzige Szenario, das ich mir hier vorstellen kann, wäre, wenn ich etwas wie Virtualbox verwenden und eine CIFS/Samba-Freigabe in einem Verzeichnis mounten würde, das dann von einer Windows-VM verwendet werden könnte.

Als ich dies ausprobiert habe, konnte ich .exemit diesem Mount-Setup erfolgreich Dateien ausführen.

NOTIZ:Ich habe den \\vboxsrvFreigabemechanismus in Virtualbox verwendet, um mein Home-Verzeichnis zu mounten, das sich lokal auf meinem System befindet. /home/samlAnschließend habe ich diesen Befehl ausgeführt und eine CIFS/Samba-Freigabe als Verzeichnis darin gemountet /home/saml.

$ mkdir /home/saml/cifsmnt
$ mount //server/cifsshare cifsmount -o user=joeuser,noexec

Schlussfolgerungen

Das oben genannte Vorgehen würde darauf schließen lassen, dass exec/noexec keinen Einfluss auf den Zugriff von Windows auf die Dateien hat.

verwandte Informationen