SSブログ

MacでHomeBrewのSambaは使えました(ちょっと面倒)。 [MacOSX]

散々やったんだけど、ダメだったSamba。でも、できちゃったんだよね。解決すると思ってなかった。

え?OSXはWindowsのディレクトリ見られるじゃん、だって? でも、WindowsからMac見えないじゃん。それにWindows7には細かいところいじらないとMacからは見えないんだよね。MSもAppleもばーかばーかってかんじ。ってなわけで受け渡しが楽になるように、Mac側でSambaを使ってみることにしたってわけ。まぁそこが運の尽きw。

ずっとやっていたわけじゃないけど、暇な時ちょこちょこやってて、思い立ってから一週間近くかかったのかな。エラーとかいくつか出てたので、やれることはあったんだけど、面倒くさくてやってなかった。というか、確実に動くかどうか分からなかったから、間にLinuxのSambaかFreeNASを立てておいた方がいいかなと、半分諦めていた。

ググって解決しようとしたんだけど、自分のブログが上位に出てくる始末。あぁまたかよ~という既視感。そんなマイナーなことばっかしてるのね。日本語サイトだけ出す、みたいなリンクが出てくるパターン。基本的にメジャー志向なんだけど、知らないうちにマニアックな方向へ走ってしまう私。どうかしてるわ。

一応、経緯をリンクしておく。間違ったこと言ってそうだけど。過去は振り返らないので改めて見ない。何がしか動作させるための前提が書いてあるかもしれないから、解決しなかったらこちらへどうぞ。

 http://miff.blog.so-net.ne.jp/2013-06-16-1
 http://miff.blog.so-net.ne.jp/2013-06-17-2

さて、自分のMacOSXでSambaが使えた状態を書き留めておきます。というか、コマンドの履歴から消えてて忘れていることがありそうだけど、それはそれで。試行錯誤でやったので、これだけでは動かない可能性もあります。最後の方にデバッグ方法で問題解決のためのメッセージを得られるので、そういう感じでやってみたらどうでしょうかね。ちなみにOSはLionです。Mountain Lionはスキップだな、このままだと…。


 
もしかしたらいらんことしている可能性があるので、自己責任で。

全然自分でできなかったので、ここを見たけど、解決済みの事以外はやっても全然無駄でした。
 http://blog.rubbingalcoholic.com/post/39412902216/fix-smb-windows-sharing-permissions-issue-in-os-x-10-7
できるとか言っておいて、そのままやったら出来ないのはむかつくよね。しかも、検証なしにこれやんないと出来ないとか言ってほしくない。まぁ状況は違うんだろうし、おいらもそういう勘違いをして書いていることも多いだろうな。でも、全然、設定が効いてこなかった。こんな仕事したら怒られるよw。
brew install samba
mkdir /usr/local/Cellar/samba/3.6.8/private

ってのは間違っていない。はじめから作ってくれないとかチェックがすげー手抜きw。でも、/usr/local/Cellar/samba/3.6.8/etc/smb.conf の設定はぶっちゃけなくてもいい。自分が好きなように設定するだけで、Ubuntuと同等に普通に出来るよ。CIFSがWindows7からつながってから、色のついた部分などを削っていっても全然大丈夫でした。散々、sbin/smbd を再起動したから、大丈夫だと思うんですけど。

ここにはrlimitがうんぬんで無視してもいいよって書いてあった。

 http://d.hatena.ne.jp/labunix/20121012

でも、条件が違うし、デーモン実行時、毎回ワーニングかなんか出てくるので、ある程度は消しておこうと思ってはいた。でもやってなかった。ここいらはシステムに関わることなのでいじらないほうがいいと思う。ヒヤヒヤしながらやって、最悪TimeMachineでリカバリすればいいやって思ってたくらいだし。
sudo sysctl -w kern.maxfilesperproc=16384
ulimit -n16384

で、エラーは取れる。いきなりulimit -n しても上限で引っかかるので先にsysctlをしないとダメだ。それとulimitはそのシェルでしか有効じゃないので、256あたりに放っといたら戻る。sysctlはどうか知らんが、10240に戻らなかったら手動で戻すしかないな~。もう一つsetrlimitってのがあったらしいんだけど、面倒くさくてやらずにいたまま、使えるようになったから無視。触らぬ神に祟り無し、で。やりたい人はおんなじ感じで、16404に設定してあげればいいんじゃないかな。

これは完全に必要であるかは検証してない。調べればすぐだけど面倒。ただ、ulimitで変えたい場合は、sysctlで上限を上げてあげないとどうしようもないってだけを言いたかった。他にも役立つかもしれないのでメモ的に残しておく。



一番の問題はディレクトリの位置だったかもしれないなと思っている。

 /Users/username/Desktop/Sambadir/

みたいなお手軽な位置に共有ディレクトリを設定したのだけど、それだとどうにもPermission Deniedでアクセス出来ないみたいだ。/TEKITOUNAdir/とかディレクトリを作って、そのディレクトリをchmodでnobodyに設定。
cd /
mkdir TEKITOUNAdir
cd TEKITOUNAdir
sudo chown nobody .
sudo /usr/local/Cellar/samba/3.6.8/sbin/smbd -D
sudo /usr/local/Cellar/samba/3.6.8/sbin/nmbd -D

あとchmod a+w . とかしたかも。まぁどんな状態でも書き込みできるように設定して、a+rとかもしたかも。smbdもnmbdも管理者権限でしか動かない。いろいろな所でエラーになってしまうので、sbinディレクトリに入っている意味が分かった。でも、セキュリティの観点からして、あまりroot権限でデーモンでポート待ち受けするプロセスとか使いたくないんですけど…。

3.6.8ディレクトリには、sambaに必要な物が全部入ってるよ。こういうのはこういうのでいいね。システムに依存しない作り方ってのは、それはそれで良い設計だ。システムとの切り離しが容易な疎なモジュールってのは案外前提にして考えないとむずい。GNUのツールで作ってりゃある程度汎用性は出るもんらしいが、Linuxのプログラミングはやったことがないんでよく分からん。

あと、smbpasswd -a でユーザー作った気がする。そこらへんのユーザーもWindowsと一緒にせんといかんかもしれない。とりあえず、入る時に聞かれるユーザーはsmbpasswdで作らないとダメだろう。smb.confでsecurity = share にすればいい気もするけど、どこかでdeprecatedって書いてあった気がするので、面倒でもパスワードをかけておいたほうがいい。と言いつつ、Ubuntuはノーガードw。


ここいらで最終的なsmb.conf を書いておくね。場所は
/usr/local/Cellar/samba/3.6.8/sbin/smbd -b | grep ": /"
で一覧が見られるように、/usr/local/Cellar/samba/3.6.8/etc/smb.conf デスよ、念の為。
[global]
  workgroup = WORKGROUP
  security = user

[shares]
  path =/TEKITOUNAdir/
  public = yes
  writable = yes
  guest only = yes

まぁ全然特殊なことはしていないってことで。散々、色々な状況を作って試したけど、ディレクトリの設定がきっちりできていれば大体アクセスできるようになる。多分、普通にデスクトップとかにアクセスできないようにしているのは、Appleが制限しているんじゃないかな。ファイアーウォールは動いてないけど、普通に使う所は勝手なプロセスに使えないようにしているのかも知れないな。まぁMacOSXはちょっと気持ち悪いってことで。にしても、Ubuntuの設定ぐらいにサクッと出来ればいいんだけど。ただ他のOSの常識が使えないってのは勘弁してくれって感じ。Ubuntuはきちんとやってる所はやってるからなぁ。




あと、デバッグ方法とか書いとくか。終わったことはすぐに忘れるし。
sudo /usr/local/Cellar/samba/3.6.8/sbin/smbd -i
sudo /usr/local/Cellar/samba/3.6.8/sbin/smbd -d3

のどちらかで押し殺されているメッセージがザラザラ出てくる。

作業するディレクトリは、/usr/local/Cellar/samba/3.6.8/ あたりでやると面倒がない。あ、あとログファイルを見るやつね。smbd -iか-d3でいいんだけど、tail -f /usr/local/Cellar/samba/3.6.8/var/log.smbd で見てみたらどないですか。

smbd -Dで動かすと、後々終わらせるのが面倒なので、smbd -iで動かして使わなくなったら、Ctrl+cで終わらせるのが面倒がないと思う。こんな状態で穴がないとはとても思えないので、ポートは使い終わったら閉じておきましょう。逆にポートすら開いてなかったら、DoS攻撃ぐらいしかしようがないし。


今回はNT_STATUS_ACCESS_DENIEDで死んだ…。すごく試行錯誤したわ~。結局、ディレクトリを扱えない問題だけだよね、たぶん。ここなんか読んでも全然解決しませんよ♡
 http://www.samba.gr.jp/project/translation/Samba3-HOWTO-3/diagnosis.html
公式サイトが案外役に立たない件についてw。



俺妹、あやせが通い妻やってくれて、告白なんてまずされそうにないシチュでも断るか。ある意味とんでもないヘタレだな。そんなに妹がかわいいのかよ。あやせたんを断るなんてバカじゃないの?とか本気で怒ってみた。まぁシスコンアニメだから仕方ないのかもしれないけどな。

タグ:homebrew
コメント(0) 
共通テーマ:パソコン・インターネット

コメント 0