Tag Archives: Samba

SambaとSELinuxではまる。の章

0
Filed under Cent, Linux, Samba
Tagged as ,

ローカルエリア上のPCにCentOS5といういわゆるLinux環境があって、
そこにパソコンから接続できるようにSambaをいれようとしたんですが、

Jul 30 04:35:33 hattara smbd[7963]: [2010/07/30 04:35:33, 0] smbd/service.c:make_connection_snum(1013)

Jul 30 04:35:33 hattara smbd[7963]: ‘/home’ does not exist or permission denied when connecting to [haragon.local] Error was 許可がありません

こんな感じのエラーがズラズラとでてくるわけですよ。
こちらをグーグル先生にお問い合わせして調べたところ、
SELinuxというセキュリティ機能が問題なんじゃないかというのがでてきたわけです。

特定ユーザ(Sambaでログインするユーザ)の領域だけを許可するときは、

/usr/sbin/setsebool -P samba_enable_home_dirs 1

を使うようですよ。
たとえば、testというUnixユーザを作ってあって、
そのユーザの領域が/home/testだったら、そこをSamba共有するなら
このコマンドでいいんではなかろうか。
※使ってないので、わからんけど。

で、今回私がやりたいのは、/homeというシステム領域部分を
がっぽりと ぼっこりと共有していきたいので、

/usr/sbin/setsebool -P samba_export_all_rw on

上記のようなコマンドが必要なようだ。
というのが、書いてあったが、ダメだった。。

どうせLAN内で利用するサーバだし勉強用のやつなんで、
とりあえず今回はSELinuxとオサラバすることで、回避しようと思う。

※ちなみに本当にSELinuxが動いてるか確認する場合は

/usr/sbin/getenforce

このコマンドの結果でわかります。


Enforcing なら有効
Permissive なら無効

一時的にSELinuxを無効(オフ)する方法

/usr/sbin/setenforce 0

一時的にSELinuxを有効(オン)する方法

/usr/sbin/setenforce 1

上記の方法でSELinuxの状態を変更することはできるわけだけども、
これは永続的な対策にはならないのです。
サーバを再起動すると、また設定ファイルを読み込んで状態は戻ります。
そこで、永続的に設定を適用したい場合は、以下のようにします。

永続的にSELinuxを無効(オフ)する方法

vi /etc/selinux/config

SELINUX=enforcing
          ↓
SELINUX=disabled

永続的にSELinuxを有効(オン)する方法

vi /etc/selinux/config

SELINUX=disabled
          ↓
SELINUX=enforcing

これでとりあえず大丈夫。
SELinuxを停止したあとは、問題なくSambaにつながりましたとさ。

よかったよかった。
気が向いたら、今度SELinux起動したままどうにかなるか試そうかな。

SambaでUnixユーザ認証のファイルサーバを。

0
Filed under Samba
Tagged as ,

Samba(今回はyumで入れた3.0.28-0.el4.9)を利用して、
各Unixアカウントのファイルサーバを作ろうと思ったわけですが、
かるくはまったので、メモしとく。

作りたい要件としては、
 ・Unixユーザ(/etc/passwd)のデータを利用する。
 ・IPでアクセス制限を行う。(自分のPCからのみ自分の領域に入れる)
 ・接続したら、自分のUnixユーザでファイル作成等ができる。
というあたりを考えてました。

で、最初にためして、ダメだったのが、以下のような書き方。

[test]
path = /home/test
guest account = test
writeable = Yes
guest ok = Yes
hosts allow = 192.168.0.200
hosts deny = ALL
security = SHARE

192.168.0.200からのみアクセスできて、
ゲストアカウントで入らせるけど、
ゲストアカウントは、testユーザですよ。
みたいにしたかったわけですが、
これでは、書き込みができませんでした。

なぜかというとglobal側で設定している(もしくはdefaultのnobody)で
処理を行おうとしてしまう為。

そこで、以下のような方法に切り替えました。

[test]
path = /home/test
force user = test
writeable = Yes
read only = No
guest ok = Yes
hosts allow = 192.168.0.200
hosts deny = ALL
security = SHARE

これでうまく成功したわけです。
簡単に説明しておくと、

[test]

これはWindowsのExplorerとかでアクセスしたときに表示される
TOPのフォルダ名になります。

path = /home/test

これは、SambaでアクセスできるTopディレクトリの指定になります。

force user = test

これは、この設定の領域にアクセスする際には、絶対testユーザでアクセスされる
という指定になります。

writeable = Yes
read only = No

この辺は、書き込み権限についてです。
書き込みを許可して、読み込みのみではない。と指定してます。

guest ok = Yes
hosts allow = 192.168.0.200
hosts deny = ALL
security = SHARE

あとは、接続元の制限・アカウントの制限になります。
ゲストユーザで接続でき、パスワードなしでいけます。
かつ、IP制限がかかってます。

という感じで、やりたいことを実装できたのでした。

おしまい。