samba

職場で昨年暮れに買ったLinuxサーバのセットアップをしている人間から「Windowsからネットワークドライブとして接続できない。」と言われたので、アカウントを作ってもらって少々調べてみた。
/var/log/samba/hoge.logには「’/home/hoge’ does not exist or permission denied when connecting to [hoge] Error was Permission denied」というエラーが出ている。
/etc/samba/smb.confを見てもきちんと定義してあるし、自分のホームディレクトリなので、パーミッションがおかしいとか存在しないということも有り得ない。
WindwosXPのマイネットワークから見るとサーバ名は見えるが、アクセスしようとすると「名前が重複しています。」と言われて接続できない。
確かにhostnameでホスト名を見ると未設定のままなので「localhost.localdomain」となっている。
最初はこれが原因だと考えてとりあえずhostnameコマンドで適当な(他と重複しない)ホスト名を設定して、
#/etc/rc.d/init.d/smb restart
でsambaを再起動。
これで大丈夫と思いサーバにアクセスすると共有名とホームディレクトリが見えるようになったが、どちらもアクセスしようとすると、アクセスする権限が無いと言われてアクセス出来ない。
サーバのログに出ているエラーをキーワードにして探したところ、どうもSELinuxが原因らしいということが判り、/etc/selinux/configファイルを見るとSELinuxが有効になっていた。
SELinuxを無効にするのが簡単だがセキュリティ上不安があるので、SELinuxを有効にしたままsambaを使えるようにするには
#/usr/sbin/setsebool -P samba_enable_home_dirs 1 (homeディレクトリのみ開放)
#/usr/sbin/setsebool -P samba_export_all_rw on (sambaで開放したいディレクトリ全てを開放)
を実行する必要があった(2行目を実行すれば1行目は実行不要)。
“-P”オプションを付けているのは再起動後も設定が有効になるようにするためで、試験的にアクセスを許可する等一時的に設定する場合は”-P”オプションは不要。
これでWindowsPCからsambaでアクセス出来るようになった。
SELinuxに関してはもっと沢山のbool値があり、
#/usr/sbin/getsebool -a
でbool値の名前と現在の状態を調べることが出来るので、おいおい調べていこう。

でもまだまだいろんなことがありそうだなぁ(笑)。

←クリックしてくれると嬉しいです。
PR

コメントを残す