ただいま絶賛LPIC Level2の勉強中!

ということでSambaのお勉強してるんですが、WindowsからSambaサーバ(VM)に繋ごうとしたときにクソハマったのでそのお話。

 

どういうハマりかっていうと

  1. Sambaユーザでログインしないと利用できないリソースを作りたい

  2. Windowsのユーザ名・パスワードがSambaのユーザ名・パスワードと異なる

っていう状態の時にSambaサーバにブラウジングすると…

  1. 認証プロンプトすら出ずにネットワークエラーのログインプロンプトが出て、ログインできない。
    →Windowsのクレデンシャルと異なるわけだから認証プロンプトは出てほしい。

  2. map to guestの値を[Bad User]にするとSambaサーバにアクセスできてpublicなフォルダに関しては閲覧できるが、ユーザ制限をかけているフォルダにアクセスすると認証プロンプトが出るものの、正確なクレデンシャルと入力してもログインできない。

という現象に陥ってしまった。

 

で、色々調べて…

windows7の認証方式がSambaに対応していない?
→Sambaのバージョン3.6.3で問題ないはず…。

※参考URL:http://www.atmarkit.co.jp/fwin2k/win2ktips/1401win7nas/win7nas.html

 

SELinux?
→そもそもSELinuxインストールしていないっす…。

 

と色々巡って、結果コレが原因↓↓

http://www.atmarkit.co.jp/ait/articles/0410/29/news103_3.html

 

つまり、こういう挙動になってました。

・Sambaサーバにアクセスしようとすると、Windowsが勝手に現在ログインしているユーザ名、パスワードでログインしようとする
→IPC$がある場合は「ネットワークエラー」が出て認証プロンプトが出ない。IPC$がない場合は認証プロンプトが出る。
→認証プロンプトが出た場合には私の環境では何故かusername mapの設定が効かなかったので、Sambaのユーザ名、パスワードでログインする。
→ログイン成功!!

・IPC$が存在しない状態でWindowsプロンプトを使って以下のコマンドでログインするとusername mapが効いた。

 

ちなみに、IPC$を削除してからログインしないと、

「同じユーザーによる、サーバーまたは共有リソースへの複数のユーザー名での複数の接続は許可されません。サーバーまたは共有リソースへの以前の接続をすべて切断してから、再試行してください。」

っていうエラーが出ちゃうのでIPC$を一回一回削除する必要があります。

 

IPC$を削除する場合は

とWindowsのプロンプト上でコマンドを打てばOK。

※参考URL:http://blog.livedoor.jp/shoeberry/archives/50525691.html

 

で、今回私がハマったところの原因としてはこんな感じ↓

1→Sambaをいじる過程でIPC$ファイルが作成されちゃって、以降、「ネットワークエラー」のプロンプトしか出ない状態になった。

2→ ログイン出来ているように見えるけど認証失敗していることによるGuestログインをしているだけなので、結局、認証を必要とする共有フォルダにはアクセスできない。

 

ちょっと色々と腑に落ちないところはありますが、とりあえずSambaのユーザとパスワードでログインは出来たし、コマンド使えばusername mapの設定通りに動きました。

結局、色々と面倒なのでWindowsのパスワードとSambaのパスワードはなるべく同一のものにした方が良さそうっす。