LAN内でSambaで認証なしファイル共有するための秘伝のsmb.conf

Ubuntu 12.04で動作を確認しました。

要求事項としては、

– LAN内でのみ使う
– セキュリティはゆるゆるでOK (自宅内を想定)
– Windows 7、Macからマウントできて、読み書き可能

あたりです。Sambaはたいていどこかで躓くと思います、私も何十時間も費やしてきました。以下の設定で今のところは安定しているので、備忘録として残しておきます。内容は、

– Linuxの設定 (Sambaを動かすマシン)
– Windows 7からのアクセス方法
– Macからのアクセス方法

です。

ただ、頑張ってLinuxのSambaと格闘するよりは、素直にQNAPとかのNAS買ったほうが良いと思います、私が最近購入したのはTS-131というものです。あっさり繋がりました。ただ機能が豊富すぎて全容が把握できていませんが。。。

– Linuxの設定

以下はUbuntuで動いた例ですが、他のディストリでも同じだと思います。

$ sudo apt-get install samba
# ↓smb.confを編集。具体的な中身は下に書いてあります
$ sudo vi /etc/samba/smb.conf

/etc/samba/smb.conf
[global]
	dos charset = CP932
	unix charset = UTF8
	display charset = UTF8
	server string = %h server
	map to guest = Bad User
	obey pam restrictions = Yes
	pam password change = Yes
	passwd program = /usr/bin/passwd %u
	passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
	unix password sync = Yes
	syslog = 0
	log file = /var/log/samba/log.%m
	max log size = 1000
	load printers = No
	disable spoolss = Yes
	dns proxy = No
	panic action = /usr/share/samba/panic-action %d
	idmap config * : backend = tdb
	printing = bsd
	print command = lpr -r -P'%p' %s
	lpq command = lpq -P'%p'
	lprm command = lprm -P'%p' %j

[share]
	comment = this is a samba storage.
        # ↓ path はディレクトリを作ってから chmod -R 666 しておくこと!
        # ↓の例であれば、cd /; mkdir storage; chmod -R 666 /storage
	path = /storage
	force user = root
	read only = No
	guest only = Yes
	guest ok = Yes
	vfs objects = recycle
	recycle:maxsize = 0
	recycle:touch = no
	recycle:versions = yes
	recycle:keeptree = yes
	recycle:repository = .recycle

nmbdとsmbdを再起動
$ sudo /etc/init.d/nmbd restart
$ sudo /etc/init.d/smbd restart

↑これでLinuxの設定は終わりです。

– Windows 7からのアクセス方法

左下のウィンドウズボタンを押す

「コンピュータ」をクリック

上の方にある「ネットワークドライブの割り当て」をクリック

「ドライブ」はなんでも良い、フォルダを「\\192.168.1.144\share」(\は円文字)を選択(↓画像の参照。もちろんIPアドレスはそのsambaのIPアドレスを指定すること。このときの「\share」は、smb.confの[share]を参照している意味のようで、たとえばsmb.confで[hoge]などとして設定を書いたら、\hoge を参照する必要がある)。「ログオン時に再接続する」にチェックを入れる、「別の資格情報を使用して接続する」には*チェックを入れない*。そして「完了」ボタンを押す
2015年11月09日月曜日、認証なしのsambaにwindows7から接続する場合の設定

するとマウントされて、sambaのディレクトリが見えるはず。通常のディレクトリやファイルと同じように扱える。

– Macからのアクセス方法

finderを開いて、メニューの「移動」→「サーバーへ接続」、「smb://192.168.1.144/share」と打ち込む

マウントされる

以上です。時が経過してクライアントやSambaのバージョン等変わるとまた異なってくるかもですが、少なくとも2015年11月9日の時点では動いています。

【Permission denied (publickey,gssapi-keyex,gssapi-with-mic)】WindowsのCygwinでsshでのGit cloneが上手く出来ないとき【fatal: The remote end hung up unexpectedly】

Windows7, Cygwinで↓のように怒られる。yoshiというのは、/home/hoge/.ssh/configで使っているHostである。

$ git clone ssh://yoshi/root/my_repos/sqlite_test.git
Cloning into 'sqlite_test'...
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
fatal: The remote end hung up unexpectedly

どうやら、Cygwinだとconfigで書いたHostが↑のような書き方(ssh://yoshi/root/my_repos/sqlite_test.git)だと参照されないようである。なので全部書いてみた(ssh://root@192.168.0.200/root/my_repos/sqlite_test.git)のがこちら↓。

$ git clone ssh://root@192.168.0.200/root/my_repos/sqlite_test.git
Cloning into 'sqlite_test'...
remote: Counting objects: 13, done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 13 (delta 6), reused 0 (delta 0)
Receiving objects: 100% (13/13), 654.45 KiB, done.
Resolving deltas: 100% (6/6), done.

きちんと行けました。なんか聞くところによると、C:\Users\hoge\.ssh\にconfigを書けば良いとか何とか…(試していないので不明だが)

Windows7で、各プロセスのCPU使用率のログを取得

ゲームをしていたら、定期的にラグるので気になっていた。何か変なプロセスが走っているに違いない。しかしWindowsでのログ取り方法が分からない。Linuxならコマンドラインでたくさんありそうなのに。いろいろと調べてみたら、PSToolsというものを発見。これでできるそうだ。

↓ここ
http://technet.microsoft.com/en-us/sysinternals/bb896649.aspx

さっそくダウンロードして解凍し、そのフォルダに移動して、

C:\MyProgramFiles\PSTools>pslist.exe -s 3600 -r 3 > "F:\AutoRun.inf\plist.log"
とすると、3600秒の間、つまり1時間、3秒周期でプロセスログを取り、それをplist.logに書き込む。このコマンドは、Ctrl+Cでとめることが出来る。上のコマンドを入力してから、ゲームをして、ラグったらゲームを止めてログを見てみた。

正常な状態(iw4spは、CoDWM2である。ちなみに何故か↑のコマンドを走らせているとsteamに繋がらなかった。何故だろう)↓
3:48:26 2012/10/04 Process information for ****-PC:

Name                Pid CPU Thd  Hnd   Priv        CPU Time    Elapsed Time 
Idle                  0  76   4    0      0    19:38:34.894    12:31:27.298
iw4sp              2340  24  25  389 1464376     0:00:34.772     0:00:28.744
~以下略~

ラグっているとき↓
3:49:58 2012/10/04 Process information for ****-PC:

Name                Pid CPU Thd  Hnd   Priv        CPU Time    Elapsed Time 
Idle                  0  55   4    0      0    19:42:33.685    12:32:59.392
System                4  25 205 2453    160     0:17:13.740    12:32:59.392
iw4sp              2340  20  23  386 1548876     0:02:26.235     0:02:00.839
~以下略~

どうやら、Pidが4の、Systemってのが出しゃばっているようである…しかし具体的にどんな処理が邪魔をしているのか定かではない…。うーん困ったものだ。さらに調査が必要だ。Pid=4のSystemプロセスねぇ…。

———-追記ここから———-
@2012-10-18
↓に書いたやり方でラグが治りました。しかしながら個人のOS状況によりまちまちだと思いますので、たぶん検索でここに来た人がこれ↓をやってみても効果がある確率は高くないと思います。

私のWindowsPCは、ローカルのサーバーがわりに使っているので、もしかしてネットワーク機器を定期的に監視しているのではないかと思って、それっぽいのを探してみて、切ってみたら良くなりました。

「コンピュータ」を右クリック

「管理」をクリック

左の方のウィンドウの、一番下、「サービスとアプリケーション」の▲をクリック

「サービス」をクリック

真ん中にいろいろと出てくるので、「Windows Media Player Network Sharing Service」を探して、「スタートアップの種類」のカラムで、「自動」というところをダブルクリック

ウィンドウが出てくるので、真ん中の「スタートアップの種類」のリストを、「無効」にセットしてOKを押す
———-追記ここまで———-

Windowsでゲームの最中に定期的にラグる・遅くなるときは

久々に Call of Duty Modern Warfare 2 を Windows 7 64bit でやっていたら、普段は普通に動くのに、定期的に重くなって、ラグる。なんでかなと思って色々と調べたら、どうやら、自分の Windows 7 の設定では、自宅サーバーの Samba に自動的に繋ぐように設定しているのだが、肝心の 自宅サーバーの電源を切っていた。

Windows 7 が定期的にその Samba にアクセスを試みるときに、ラグっているようである。自宅サーバーの電源を入れて、Samba につなげるようにしたらラグるのが解消された。

こういう、重くなる、ラグる、などの原因はさまざまだと思うが、一つの解決策として上記のことを書いておく。

CPUを入れ替えたら、Windows7の起動画面中に再起動を繰り返す件の解決

P8B75-M, Win7 の環境で CPU を G530 -> i5-3570K に入れ変えた所、表題のような状態に陥ってしまいたいへん困った。

Windowsが起動できなくなった、「Startup Repair Offline」のメッセージが出て起動
http://pc-seven.jp/faq/index.cgi?no=190&continue=on


結論としては↑で、SATA Mode が IDE になっていたからであった。G530 のときは当然、ACHI で設定したのである(そちらの方が高速だから)。CPU入れ替えに伴い、BIOS が初期化したのが原因だったのだろう。ACHI に設定したら無事起動した。