LinuxサーバーでSambaを実行していて、Macクライアントからファイルにアクセスしています。 Macでは、すべてのファイルが実行可能権限セットで表示されることを除いて、Samba経由でファイルにアクセスするのに問題はありません。rwx------
。サーバーでは、ファイルは実行可能ではありません:rw-rw----
。
クライアントによって表示されるアクセス許可は、サーバーまたはクライアントに設定されていますか?どうすればよいですか:
rw-------
クライアント上、または権限は設定されていますサーバー上そしてACLに100%依存しています。
問題の解決を試みるには、2つのオプションがあります。
SMBサーバーのsmb.conf
ファイルを編集し、次のパラメーターを[global]
セクションに追加します。
[global]
nt acl support = yes
acl map full control = no
上記の2つのパラメーターにより、SMBサーバーはWindowsおよびUnixACLのマッピング/照合を試みます。
smb.conf
のマンページから:
nt aclサポート(S)
This boolean parameter controls whether smbd(8) will attempt to map UNIX permissions into Windows NT access control lists. The UNIX permissions considered are the traditional UNIX owner and group permissions, as well as POSIX ACLs set on any files or directories.
aclマップフルコントロール(S)
This boolean parameter controls whether smbd(8) maps a POSIX ACE entry of "rwx" (read/write/execute), the maximum allowed POSIX permission set, into a Windows ACL of "FULL CONTROL". If this parameter is set to true any POSIX ACE entry of "rwx" will be returned in a Windows ACL as "FULL CONTROL", is this parameter is set to false any POSIX ACE entry of "rwx" will be returned as the specific Windows ACL bits representing read, write and execute.
簡単に言うと、RWX(読み取り、書き込み、実行)パラメーターは、これらの同等のSMBパラメーター:
writeable = no
はRと同等です(読み取り専用)writeable = yes
はRW(読み取りおよび書き込み)と同等ですacl allow execute always = true
またはacl allow execute always = yes
はX(実行)と同等ですすべての共有にファイル/フォルダーのアクセス許可を設定するには、サーバーのsmb.conf
ファイルを編集してから、次のグローバル設定を追加する必要があります。
[global]
acl allow execute always = false
guest ok = no
writeable = yes
available = yes
browseable = yes
printable = no
locking = yes
...これにより、デフォルトですべての共有フォルダーにファイルの実行の禁止(acl allow execute always = false
)、ゲストアクセスの禁止(guest ok = no
)、ファイルおよびフォルダーへの読み取りおよび編集/(再)書き込みアクセスの許可が強制されます(writeable = yes
)、すべての共有をリモート(クライアント)ユーザーが使用できるようにし(available = yes
)、使用可能な共有を表示し(browseable = yes
)、共有を印刷として使用することを禁止しますスプールディレクトリ(printable = no
)、およびクライアントがそのような要求をSMBサーバー(locking = yes
)に送信する場合は、共有のロックを強制します。
smb.conf
のマンページから:
aclは常に実行を許可します(S)
This boolean parameter controls the behaviour of smbd(8) when receiving a protocol request of "open for execution" from a Windows client. With Samba 3.6 and older, the execution right in the ACL was not checked, so a client could execute a file even if it did not have execute rights on the file. In Samba 4.0, this has been fixed, so that by default, i.e. when this parameter is set to "False", "open for execution" is now denied when execution permissions are not present. If this parameter is set to "True", Samba does not check execute permissions on "open for execution", thus re-establishing the behaviour of Samba 3.6. This can be useful to smoothen upgrades from older Samba versions to 4.0 and newer. This setting is not meant to be used as a permanent setting, but as a temporary relief: It is recommended to fix the permissions in the ACLs and reset this parameter to the default after a certain transition period.
注:acl allow execute always = false
が機能しない場合は、acl allow execute always = no
を試してください。
ゲストOK(S)
If this parameter is yes for a service, then no password is required to connect to the service. Privileges will be those of the guest account. This parameter nullifies the benefits of setting restrict anonymous = 2 See the section below on security for more information about this option.
書き込み可能(S)
Inverted synonym for read only.
読み取り専用(S)
An inverted synonym is writeable. If this parameter is yes, then users of a service may not create or modify files in the service's directory. Note that a printable service (printable = yes) will ALWAYS allow writing to the directory (user privileges permitting), but only via spooling operations.
利用可能(S)
This parameter lets you "turn off" a service. If available = no, then ALL attempts to connect to the service will fail. Such failures are logged.
閲覧可能(S)
This controls whether this share is seen in the list of available shares in a net view and in the browse list.
印刷可能(S)
If this parameter is yes, then clients may open, write to and submit spool files on the directory specified for the service. Note that a printable service will ALWAYS allow writing to the service path (user privileges permitting) via the spooling of print data. The read only parameter controls only non-printing access to the resource.
ロック(S)
This controls whether or not locking will be performed by the server in response to lock requests from the client. If locking = no, all lock and unlock requests will appear to succeed and all lock queries will report that the file in question is available for locking. If locking = yes, real locking will be performed by the server. This option may be useful for read-only filesystems which may not need locking (such as CDROM drives), although setting this parameter of no is not really recommended even in this case. Be careful about disabling locking either globally or in a specific service, as lack of locking may result in data corruption. You should never need to set this parameter.