cifs共有読み取りに失敗しました、権限が拒否されました - cifs sambaディレクトリ権限が拒否されました

cifs共有読み取りに失敗しました、権限が拒否されました - cifs sambaディレクトリ権限が拒否されました

cifsを介してクライアント間でデータを共有するためにSambaサーバーを設定しようとしています。テストとして、同じシステムにSamba共有をマウントし、ディレクトリの内容にアクセスしようとしました。インストールコマンドは次のとおりです。

mount -t cifs -o username=sthomaso,workgroup=WORKGROUP //server/scratch /mnt/server/scratch

...パスワードを入力すると正常に動作します。可能であってもcd /mnt/server/scratchディレクトリの内容を一覧表示しようとするとlsエラーが発生しますls: reading directory .: Permission denied

サーバーで私のものは次/etc/samba/smb.confのとおりです。

[global]
    security = user
    workgroup = WORKGROUP

[homes]
    writeable = yes

[scratch]
    path = /var/scratch
    valid users = @feausers
    writeable = yes

次のコマンドを使用して、「sthomaso」ユーザーをtdbsamに追加します。

pdbedit -a -u sthomaso

ユーザー「sthomaso」は「feausers」グループに属し、「groups sthomaso」コマンドを使用して検証されます。

/bin/ls -lF /var | grep scratch示す:

drwxrwx--T. 2 root feausers 4096 Jun 14 14:40 scratch/

/var/log/samba/log.smbd正常な接続確認が含まれています。

<snip> smbd/service.c:1070(make_connection_snum)
<snip> connect to service scratch initially as user sthomaso (uid=500, gid=501) (pid 99999)

共有を正常にマウントしたようです。しかし、ディレクトリが読み取れず、ファイルにアクセスできないのはなぜですか?

答え1

参考までに、私はRed Hatから助けを受けました。問題はSELinuxが権限を制限していることです。 SELinuxが提供する制御機能は不要なので、/etc/selinux/configを編集して再起動して無効にします。

答え2

この質問に対するより適切な答えは文書の上部にあります/etc/samba/smb.conf.example

Use the samba_export_all_ro or samba_export_all_rw Boolean to share system directories.  To share such directories and only allow read-only permissions:
setsebool -P samba_export_all_ro on
To share such directories and allow read and write permissions:  
setsebool -P samba_export_all_rw on

また、auditdによって生成されたsetroubleshootログを見ると、1〜100の相対信頼性で問題を潜在的に解決する方法に関するいくつかの提案があります。

これらのログと推奨事項については、以下を実行してください。sealert -a /var/log/audit/audit.log

つまり、この問題を解決するには、次のコマンドを実行します。setsebool -P samba_export_all_rw on

その後、サービスを再起動します。

編集する:

また、次のコマンドを使用して適切なselinuxコンテキストをsamba共有に適用する必要があります。

semanage fcontext -a -t samba_share_t "/PATH_TO_SHARE(/.*)?"

関連情報