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(/.*)?"