私はsmbmountコマンドを使用してsamba共有をマウントしました:
$ Sudo smbmount \\\\foo\\bar /mnt/bar -o user=tom
新しいファイルを作成すると、所有者、グループ、およびワールドの実行可能ビットが設定されたファイルが作成されます。たとえば.
$ touch hello.txt
$ ls -la hello.txt
-rwxr-xr-x 1 root root 0 Dec 2 12:28 hello.txt
NFSマウントされた共有上に作成された同じファイルは、実行可能ビットを設定せずに正しい権限をセットアップします。
なぜこうなった?どうすれば修正できますか?
NFSはUnixの世界で発明されたので、箱から出してすぐに従来のUnixの権限を理解します。 (最近のUNIXシステムのACLは別の問題ですが、NFSの最近の実装はそれらに対処する必要があります。)
Sambaは、IBM/Microsoft PCの世界で発明され、読み取り専用/読み取り/書き込み以外の権限を持たないシステムとファイルを交換します。現在、Windowsにネイティブです。デフォルトでは、SambaはUnix権限を送信しません。構成に応じて、すべてのファイルが実行可能とマークされるか(これは迷惑です)、またはすべてのファイル(ディレクトリを除く)は実行不可とマークされます(これは迷惑です)。
Samba/CIFSプロトコルには、Unixでの使用により適したさまざまな拡張機能があります。サーバー設定で nix extensions を有効にしてみてください:
[global]
unix extensions = yes
これは、タイトルが付けられた問題のように聞こえます: コピーされたファイルは、Samba/CIFSで実行ビットを獲得します 。
抜粋
CIFSマウントされたボリュームにrw-r -----でファイルをコピーした後、コピーはrwxr -----を取得します。したがって、実行ビットが増えています。
ページのさらに下で、map archive = no
/etc/samba/smb.conf
:
抜粋
[Global]
<snip>
map archive = no
<snip>
なぜこれは、Samba WebサイトのMS-DOSおよびUnixでのファイル権限と属性の下の次の説明から発生しているのかを見つけることができますセクション:
https://www.samba.org/samba/docs/using_samba/ch08.html
これは、MS-DOSファイルシステムのシステムビット、隠しビット、およびアーカイブビットのマッピングに関係しています。
MS-DOSファイルシステムは実行ビットを使用しないため、Unixファイルシステムの3つの実行ビットは、MS-DOSファイルシステムのシステム、非表示、およびアーカイブビットを表すために再利用されます。
したがって、Unixでls -l
を使用してファイルのアクセス許可を表示すると、Unixの3つの実行可能ビットがシステムビット、非表示ビット、アーカイブビットを表すことに注意しながら、MS-DOS(またはWindows)に適したファイルアクセス許可を表示しています。 MS-DOS用。
ただし、smb.conf
では、次の共有を使用してこのマッピングをオフにすることができます。
map archive = no
map system = no
map hidden = no
そして、ファイルの作成時にモードを強制します:
force create mode = 0660
あなたが試すかもしれません:mount -t cifs
Googleは使用のために「mount cifs」を実行します。理解するのは難しくありませんが、-oフラグを使用してオプションを設定する必要があります。
uid =、gid =、rw、noperm、dir_mask = 0775、file_mask = 0664
ユーザーとグループはIDであり、テキストエイリアスではなく数値です。これらのオプションにより、読み取り/書き込みアクセス権、アクセス許可がサーバーなしのマウント、特にfile_mask=0664
は、ファイルが実行可能でないことを確認します。さらに、samba共有をローカルディレクトリとして使用できます。
私はQNAP TS439を使用していますが、実行可能ファイルでこの問題が発生しました。
私は/etc/fstab
ファイル
//192.168.0.1/audio /media/audio cifs credentials=/home/cheese/.smbcredentials,uid=1000,file_mode=0664,iocharset=utf8 0 0