複数のデータドライブをインストールし、noexec
パラメータを使用しました。これは私には必要ないデータなので考えましたexec
。今、いくつかの権限の問題が発生し、この原因を排除し、オプションをよりよく理解したいと思います。
exec
/etc/fstab
パラメータは、マウントされたシステムのすべてのディレクトリとファイルに実行権限を付与するのと同じ効果がありますか?
.exe
Samba共有または他のネットワークプロトコルを介してアクセスされるWindows実行可能ファイル()にはどのような影響がありますか?
マウントされたドライブはまたはaufs
とマージされ、mhddfs
中央のマウントポイントを介してアクセスされます/mnt/virtual
。その後、ネットワーク(現在はサンバ)を介してアクセスされます。いくつかのローカルアクセスもあるでしょう( xbmc
)。ファイルへの直接リンクを提供するのか、Sambaリンクを提供するのかわかりません。
この状況で最良の方法は何ですか?
答え1
マニュアルページを見る
マニュアルページを見ると、mount.cifs
ここにリストされている共有をインストールするために使用されるという/etc/fstab
メモがありますnoexec
。
このコマンドは、setuid がインストールされていない場合、root でのみ使用できます。この場合、noeexecおよびnosuidのインストールフラグが有効になります。 setuidプログラムとしてインストールされている場合、プログラムはマウントプログラムで指定された規則に従い、ユーザーがマウントする前にマウントポイントにchdir()を実行できる必要があるという追加の制限があります。 。
一部のSambaクライアントツール(smbclient(8)など)は、smb.confのクライアント設定パラメータに従います。これらのクライアントツールとは異なり、mount.cifs は smb.conf を完全に無視します。
これを考慮すると、インストールの試行にexec / noexecオプションが含まれている場合は実行できると予想されます。また、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の実行可能ファイルにのみ適用されるのかを指定しません。
実行/実行しない
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のファイルアクセスを制限しないことを示しているようです。