sambaで共有しようとしていつも躓いている。smb.conf自体の設定をいくら変
えてもWindowsからのアクセスが拒否されて、パスワードを求められた。これ
までは、時間かけてSELinuxが原因だとわかっても、SELinux自体を削除する
か無効にして対処してきた。だが今回は、SELinux の設定を変更することで
sambaの共有も実現することができた。
/var/www/htmlをhttpdでもアクセス可能とし、なおかつsambaでも共有するの
が目的である。smb.confはguest で書き込み可能な設定にし、[www]という名
前で共有する。
以下のエラーに悩まされた。
$ tail /var/log/audit/audit.log type=AVC msg=audit(1194332857.553:1867): avc: denied { search } for pid=4183 comm="smbd" name="www" dev=dm-0 ino=5636212 scontext=user_u:system_r:smbd_t:s0 tcontext=system_u:object_r:httpd_sys_content_t:s0 tclass=dir $ ausearch -m AVC | tail ---- time->Tue Nov 6 16:07:37 2007 type=SYSCALL msg=audit(1194332857.553:1868): arch=40000003 syscall=12 success=no exit=-13 a0=92e74b0 a1=ffffffff a2=b9f738 a3=bfa4eb90 items=0 ppid=4154 pid=4183 auid=500 uid=99 gid=0 euid=99 suid=0 fsuid=99 egid=99 sgid=0 fsgid=99 tty=(none) comm="smbd" exe="/usr/sbin/smbd" subj=user_u:system_r:smbd_t:s0 key=(null) type=AVC msg=audit(1194332857.553:1868): avc: denied { search } for pid=4183 comm="smbd" name="www" dev=dm-0 ino=5636212 scontext=user_u:system_r:smbd_t:s0 tcontext=system_u:object_r:httpd_sys_content_t:s0 tclass=dir $ cat /var/log/samba/hostname.log [2007/11/06 16:07:31, 0] smbd/service.c:make_connection_snum(911) '/var/www/html' does not exist or permission denied when connecting to [html] Error was 許可がありません
後述のサイトを参考にSELinuxの設定をいくら変更してもアクセスが拒否され
た。試行錯誤を繰り返すなかで、共有ポイントの名前を変更して試したとこ
ろ、それでもaudiot.logの name="www" が変わらないことに気付いた。それ
までは、ディレクトリの設定を/var/www/htmlにしか行っていなかったのだ
が、もしかしたら親ディレクトリの/var/wwwにもアクセス許可を与えなくて
は駄目なのでは?と気付いて試してみたところ、やっとアクセス可能になっ
た。ここまで作業開始から5時間...。駄目過ぎる。
最終的にアクセス可能になるまでの手順は以下のとおり。使用したOSは
CentOS5である。
$ chmod 0777 /var/www/html $ chown -R nobody:nobody /var/www/html $ /usr/sbin/setsebool -P allow_smbd_anon_write=1 $ /usr/sbin/getsebool -a | grep smbd allow_smbd_anon_write --> on smbd_disable_trans --> off $ chcon -t public_content_rw_t /var/www/html -R $ chcon -t public_content_rw_t /var/www $ ls -aZ /var/www drwxr-xr-x root root system_u:object_r:public_content_rw_t . drwxr-xr-x root root system_u:object_r:var_t .. drwxr-xr-x root root system_u:object_r:httpd_sys_script_exec_t cgi-bin drwxrwxrwx nobody nobody system_u:object_r:public_content_rw_t html
- 参考
-
- samba - はじめての自宅サーバー構築 ~ Fedora/CentOS ~
- [samba-jp:19139] Re: ホームディレクトリを作成できない
- man samba_selinux
- 第31回 「samba によるアクセス制御」
-
ここで、smb.confの基本的な設定はわかる。
リファレンスは smb.conf
man smb.conf でもわかる。
- 新SELinux入門 第5回 タイプを変更してトラブルに対処する:ITpro
-
ここの情報により、複数アプリからのアクセスを許可する方法がわかっ た。chconとpublic_content_rw_tがキモ。
- Sambaサーバの設定