Fstab exec noexec パラメータが Samba 共有に与える影響

Fstab exec noexec パラメータが Samba 共有に与える影響

複数のデータドライブをインストールし、noexecパラメータを使用しました。これは私には必要ないデータなので考えましたexec。今、いくつかの権限の問題が発生し、この原因を排除し、オプションをよりよく理解したいと思います。

exec/etc/fstabパラメータは、マウントされたシステムのすべてのディレクトリとファイルに実行権限を付与するのと同じ効果がありますか?

.exeSamba共有または他のネットワークプロトコルを介してアクセスされるWindows実行可能ファイル()にはどのような影響がありますか?

マウントされたドライブはまたはaufsとマージされ、mhddfs中央のマウントポイントを介してアクセスされます/mnt/virtual。その後、ネットワーク(現在はサンバ)を介してアクセスされます。いくつかのローカルアクセスもあるでしょう( xbmc)。ファイルへの直接リンクを提供するのか、Sambaリンクを提供するのかわかりません。

この状況で最良の方法は何ですか?

ベストアンサー1

マニュアルページを見る

マニュアルページを見ると、mount.cifsここにリストされている共有をインストールするために使用されるという/etc/fstabメモがありますnoexec

抜粋 - mount.cifs のマニュアルページ

このコマンドは、setuid がインストールされていない場合、root でのみ使用できます。この場合、noeexecおよびnosuidのインストールフラグが有効になります。 setuidプログラムとしてインストールされている場合、プログラムはマウントプログラムで指定された規則に従い、ユーザーがマウントする前にマウントポイントにchdir()を実行できる必要があるという追加の制限があります。 。

一部のSambaクライアントツール(smbclient(8)など)は、smb.confのクライアント設定パラメータに従います。これらのクライアントツールとは異なり、mount.cifs は smb.conf を完全に無視します。

これを考慮すると、インストールの試行にexec / noexecオプションが含まれている場合は実行できると予想されます。また、mount.cifsこのオプションの使用方法については、使用法を参照してください。

抜粋 - mount.cifsの使い方
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

fstabマニュアルページを見ると、exec / noexecの意図された用途が説明されていますが、すべての実行可能ファイルに適用されるのか、Unixの実行可能ファイルにのみ適用されるのかを指定しません。

fstab のマニュアルページから

実行/実行しない

execを使用すると、そのパーティションでバイナリを実行できますが、noexecはそうではありません。 noexecは、バイナリ(例:/ var)を含まないパーティション、またはシステムで実行したくない、またはシステムで実行できないバイナリ(Windowsパーティションなど)に役立ちます。

exec/noexecはすべてを実行可能にしますか?

いいえ、exec / noexec属性は、許可ビットに基づいて実行可能としてマークされるように許可される項目を制御するだけであり、権限に直接影響しません。

Windows用のバイナリはどうですか?

ただし、exec / noexec設定はWindows実行可能ファイルを制御せず、これらの共有に常駐できるUnix実行可能ファイルのみを制御します。

/etc/fstabまた、CIFS / Samba共有をマウントする場合、およびこの状況でWindows OSが混在している場合、これらの操作がどのように実行されるのかわかりません。 WindowsはLinuxを介さずにこの共有を直接マウントまたはマウントできます。

試験を受ける

Unixの例

mount.cifsこれにより、コマンドラインから直接テストできます。 CIFS / Samba共有に次のファイルがあるとします。

$ cat cmd.bash 
#!/bin/bash

echo "hi"

$ chmod +x cmd.bash

それでは、次のようにインストールしてスクリプトを実行してみましょうcmd.bash

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

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

このオプションを省略するとnoexec:

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

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

ここで考えられる唯一のシナリオは、Virtualboxのようなものを使用しており、Windows VMが使用できるディレクトリ内にCIFS / Samba共有がマウントされている場合です。

.exeこれをテストしたとき、このインストール設定でファイルを正常に実行できました。

メモ:Virtualboxの共有メカニズムを使用して\\vboxsrvシステムのローカルホームディレクトリをマウントします/home/saml。次に、このコマンドを実行してCIFS / Samba共有を/home/saml

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

結論として

上記の操作は、exec / noexecがWindowsのファイルアクセスを制限しないことを示しているようです。

おすすめ記事