Samba権限が拒否されました

Samba権限が拒否されました

Linuxホスト(Sambaサーバー)とLinux(クライアント)とWindows(クライアント)の間にSamba共有を展開する必要があります。サーバー上のこのフォルダーは、LinuxとWindowsクライアントコンピューター間で文書を共有します。 Sambaサーバーで2人のテストユーザーを作成しました。これらをveniceとjohnと呼びます。 SambaサーバーでSambaのファイルコンテキストを設定し、ROとRWブールを有効にし、johnとveniceの権限を設定しました。

> getfacl: Removing leading '/' from absolute path names
> # file: samba/docs/
> # owner: venice
> # group: venice user::rwx user:venice:rwx user:john:rwx group::r-x mask::rwx other::r-x default:user::rwx default:user:venice:rwx
> default:user:john:rwx default:group::r-x default:mask::rwx
> default:other::r-x

Samba設定ファイルで次の設定を作成しました。

[smbdocs]
        comment = Documents share
        path = /samba/docs
        browseable = yes
        read only = yes
        write list = venice john
        guest ok = no
        printable = no
        hosts allow = 10.8.8.51

Sambaインストールを使用している場合

mount.cifs //10.8.8.50/smbdocs -o username=venice,password=pass /samba/docs/ 

システムレベルの権限とSambaレベルで許可しても、veniceユーザーとjohnユーザーを使用してファイルを作成することはできません。

今ヴェネツィアのuidとgidを使ってマウントすると

mount.cifs //10.8.8.50/smbdocs -o username=venice,password=pass,uid=1001,gid=1001 /samba/docs/ 

veniceユーザーを使用してファイルを生成できますが、Johnはまだファイルを作成または編集できません。

どんな提案でも

ホストオペレーティングシステムバージョンRHEL 7.4

答え1

RHEL 7にはデフォルトでSELinuxが有効になっています〜するファイルシステムへのSambaのアクセスを制限します。たとえば、カスタムパスにSamba共有を作成する場合は、/samba/docsそのSELinuxラベルをパスに適用する必要があります。

Sambaや他のサービスがアクセスできるディレクトリが必要な場合は、SELinuxコンテキストタイプタグを使用しpublic_content_rw_tてSELinuxブール値を設定してsmbd_anon_writeファイルの所有権を完全に制御するコンテキストで、Sambaがファイルとディレクトリへの書き込みアクセスを許可する必要があります。public_content_rw_t

setsebool -P smbd_anon_write=1
semanage fcontext -a -t public_content_rw_t "/samba/docs(/.*)?"
restorecon -Rv /samba/docs

/samba/docs他のサービス(httpdまたは)を介してftpdアクセスする予定がない場合は、samba_share_t代わりにコンテキストを使用できます。これにより、ブール設定は不要です。

semanage fcontext -a -t samba_share_t "/samba/docs(/.*)?"
restorecon -Rv /samba/docs

このsemanage fcontext -a...コマンドは、新しいラベルを定義する正規表現をSELinux構成に永続的に追加し、restorecon新しいラベルを物理ファイルシステムに適用します。 SELinuxコンテキストラベルを使用して変更することもできますが、これを行うたびに(バックアップの復元後など)、chcon変更は失われます。restorecon最初にタグ情報をSELinux設定に保存すると、バックアップ方法がSELinuxに関連していなくても、デフォルトのSELinux設定もバックアップされている限り、/etcタグ情報を復元できます。

関連情報