yaroespage::weblog

自作パソコンとその他もろもろの、ヨモヤマバナシです。

--.--.-- --:-- | スポンサー広告 | トラックバック(-) | コメント(-)
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--.--.-- --:-- | スポンサー広告 | トラックバック(-) | コメント(-)
FC2 managemented

 前回は玄人志向の「玄箱」を買ってきてLinuxを入れ替えたというハナシでした。

 ということで、現状はタダのLinuxボックスです。

 NASとして使うならファイル共有をさせなければいけません。

 我が家でNASとして生きていくためには、Windowsの相手ができなければならないわけでして・・・って、もったいつけなくても分かりますよね。
 Sambaの再登場です。

 前回からドエライ長い更新間隔があるのですが、物語的な時間間隔はほぼゼロです。
 そのつもりで読んでください。
 (遅筆でスミマセン・・・)。

 さて、sambaをインストールしましょう。

 今回の作業については玄箱 Debianサーバ構築メモが大変参考になりました。
 この場にてお礼申し上げます。

 Debian GNU/Linuxにはdselectという非常に便利なツールが入っています。 Windows XPにおける「プログラムの追加と削除」みたいなもんで、Debianで使うパッケージのインストール・アンインストールを一元的に管理できます。

 ただこれも諸刃の剣なんです。
 dselectはコンソールで動作するアプリケーション(コマンドと呼んだほうが雰囲気を理解してもらいやすいカナ?)ですから、あの文字だけの世界で動作するアプリケーションなんです。

 そんな状態で、Debian GNU/Linuxの膨大なパッケージがすべて表示されちゃうんですよ。

 想像してみてください。
 スクロールしても、スクロールしても、スクロールしてもまだスクロールすんです。

 地獄です。

 なので、ちょっとしたアプリケーションの追加は、apt-getを使うワケです。

 でも、非常に残念ながらSambaはちょっとしたアプリケーションではありません。
 第03話でもちょこっと書きましたが、SambaにはSWATがセットです。
 また、いろんなドキュメント(説明文)も付いてきます。
 それに、インストールしたらこれだけは必ず設定しておかなければいけないという項目がいくつかあります。

 そういったことも、dselectでインストールすれば、パッケージ同士の依存関係を教えてくれたり、初期設定をフォローしてくれたりするので、面倒くさくてもdselectを使ったほうがよいシーンもあるんです。

 そうじゃなきゃ、諸刃の剣じゃなくて只の剣ですからね(笑)。

 ということで(面倒くさいシーンはカットしま~す)、めでたくsambaがインストールされました。
 さっそく、動作するか確認してみましょう。

 Windows側からSWATに接続してみます。
 玄箱のIPアドレスはDebian化キットの初期設定ままの192.168.0.100で運用していますので、Internet Explorerを起動してhttp://192.168.0.100:901へ接続します。

 おお! 表示されました!

 しかし、英語です。

 なんか間違えたんでしょうか?

 Debian自体は日本語環境になっていましたから、てっきりSamba/SWATも日本語版パッケージが入ると思ったんですが・・・。

 まあ、SWATが英語でも、日本語のファイルが共有できることには変わりありませんから、深く悩まないことにします。

 まずは、基本設定の確認です。

 dselectでインストールした直後に必要最小限の設定をさせられましたので、ワークグループ名や暗号化パスワードに関する設定はキチンとなっているはずですが、念のためにチェックしておきます。

 Windows NT4.0/2000/XPが1台でも参加しているなら、「暗号化パスワードを使う」にしておかないと悲しい目にあいます。

 コードページはFedra CoreじゃないのでEUCでOKです。

 Fedora Coreは、第03話でも触れたように、Unicode(UTF-8)です。

 次は、共有の設定です。

 玄箱の共有フォルダとしては、/mnt/shareと/mnt/share-macのふたつが、最初から作成されています。
 どちらを共有フォルダに設定してもいいんでしょうが、後者を使おうとするとナゼだか強いプレッシャーを感じます(笑)。

 ということで、ここはげんをかつぐ意味を込めて/mnt/shareの方を利用することにしました。

 コンピュータの世界って科学的に説明しづらい不思議なことがよく起こりませんか?
 故障したと思ってサービスマンを呼ぶと直るとか、置く場所を変えただけで使えなくなるとか、オレンジ色の置物を置くとバグがなくなるとか。
 (最後のはウソです)。

 ということで、使わない/mnt/share-macは消してしまっても良いのでしょうが、同様の理由で、消さずに残しています。

 あと、Guest接続を認めるかについてですが、基本的に家庭内LANですので、他人が共有フォルダにアクセスしてくることはないわけで、Guestは許可しないにしました。

 Windows側でも、Guestアカウントは停止しています。
 いちおうWindowsが共有に使うポート番号への接続は、ブロードバンドルータでフィルタリングしていますが、念には念を、です。
 なので、SambaでもGuestは使いません。
 これが我が家のセキュリティポリシーです。
 (コレが原因でハマったのですが、それについては後述)。

 次は、Sambaのユーザを設定します。

 先に挙げた理由で、Linuxの一般ユーザとして我が家の3台のWindows PCのユーザ名と同じユーザ名のユーザを作成し、それをそのままSambaユーザに設定します。

 パスワードもまったく同じにします。
 こうすることで、共有フォルダにアクセスしようとしたときにWindowsが勝手に送りつけるユーザ名とパスワードでそのまま共有フォルダにアクセスできますし、アクセスログとかの管理も(見るかどうかは別にして)ユーザごとにできますし、コレで正解でしょう。

 ということで、SWATでやることはひととおり終了です。

 さて、Windowsから玄箱の共有フォルダを開いてみましょう。。

 マイネットワークを開いていくと、でてきました。
 KURO-BOX server (Samba 2.2.3a-14.1 for Debian) (Kuro-box)

 長い~!

 まあ、接続できてますので気を良くしてネットワークドライブにします。

 ドライブレターはShareの'S'です。

 で、マイコンピュータを開くと、でました。
 'KURO-BOX server (Samba 2.2.3a-14.1 for Debian) (Kuro-box)' の share

 長い~!

 まあ、普段はS:¥でアクセスできますから説明書きが長かろうと短かろうとどうでもいいんですが。

 さあさあ、フォルダを作ってファイルの転送です。

 ガンガンいきましょう!

 80GBのHDDです。
 2GBをシステム用、256MBをスワップ用としてとられましたけど、残りの70数MBは全部共有ですから、ガンガン転送しましょう。

 Windowsのファイルコピーの状況表示はあと128分とか169分とか言ってますが、好きにしなさい!

 この間に、妻PCから共有アクセステストです。

 同じく、マイネットワークに長い名前が表示されています。

 ダブルクリックすると、問題なく共有フォルダが開きましたので、俺PCと同様に、ネットワークドライブ設定で「Sドライブ」にておきます。

 しめしめ、です。

 で、まんまとSドライブになった共有フォルダの中にある先ほど俺PCで作ったフォルダを開くと、俺PCから転送されたファイルが表示されました。

 ファイルをダブルクリックするとちゃんと開きます。

 いい感じです。

 ということで、そのファイルを閉じ、せっかくだから妻PCからも共有フォルダにいくつかのファイルを放り込もうとしたところ・・・。

 !!

 できません!

 俺PCで作ったフォルダには妻PCからファイルをコピーできません!

 アクセス拒否されちゃいます~。

 俺PCで作ったフォルダの外(つまり共有フォルダ直下)になら妻PCからファイルをコピーできるんですよ。

 でも、俺PCで作ったフォルダの中にはコピーできないんです。

 困りました。

 共有できない共有フォルダって、いったい何の価値があるの!?

 ということで、どうなる俺!
 以下次号!

初出:2004/12/14
加筆・訂正:2004/12/16

スポンサーサイト
FC2 managemented

 <お詫び>
 第05話の初出では、今回のトラブルについて「他のユーザが作ったフォルダにアクセスできない」と記述していましたが、「他のユーザの作ったフォルダの中にファイルをコピーできない」が正解でした。
 ということで、第05話の終わりの部分を書き直しましたので、まずは第05話のここらへんから読み直していただければ幸いに存じます。

 前回はLinuxを入れ替えた「玄箱」にSambaを導入してWindowsとのファイル共通環境を整えたハズなのに、アクセスエラーが出たんだよぅド○えも~ん、てなハナシでした。

 とはいえ、うちにはホイホイと便利な道具を出してくれるネコ型ロボットはいませんから、自分のことは自分で解決しないといけません。

 ということで、冷静沈着に症状を整理してみましたところ、だいたい以下のようにまとめることができました。

  • デフォルトの共有フォルダ(Linux側から見て/mnt/share)は、どのWindows PCからでも読み書きできる。
  • そこには、Windows PCからフォルダを作ることができ、そのフォルダの中にファイルを転送することもできる。
  • その新しいフォルダに別のWindows PCからアクセスしてみると、ちゃんとフォルダを開くことができて、その中に保存されたファイルを読み出すことができるが、ファイルを転送(作成)したり削除したりしようとするとアクセスエラーが発生する。
  • 念のために逆のパターンを試しても、やっぱり他人の作ったフォルダを開くことはできても、ファイルの転送(作成)はできない。(読み取り専用になってる)。
  • 「それでは」と、Linuxにログインしてrootで新しいフォルダを作成してみたら、なんと全てのWindows PCからファイルの転送(作成)や削除できないフォルダができちゃった。

 愕然。

 でも、整理したおかげでだいたい分かってきましたよ。
 アクセス権限(パーミッション)の設定がウマくできてないんですね。

 ls -lsaしてみましょう。

 すると、俺PCで作成したフォルダは、

 drwxrwxr-x henry henry (サイズ) (作成日時) (フォルダ名)

 キティ鯖で作成したフォルダは、

 drwxrwxr-x kitty kitty (サイズ) (作成日時) (フォルダ名)

 玄箱のLinuxにログインして作成したフォルダは、

 drwxrwxr-x root root (サイズ) (作成日時) (フォルダ名)

 ・・・となってました。
 (henryは俺PCのユーザ名、kittyはキティ鯖のユーザ名でございます)。

 drwxrwxr-xというのがアクセス権です。
 この一見意味不明の文字列は4つの部分に切り分けることができます。
 最初のdはディレクトリ、つまりWindowsで言うところフォルダであるという意味です。
 残りの9文字は、所有者(作成者)のアクセス権3文字、グループのアクセス権3文字、その他大勢のアクセス権3文字となっています。
 rwxはReadable、Writable、eXecutableを意味しており、アクセスするユーザが読めるか、書けるか、実行できるかを意味しています。

 今回のようにdrwxrwxr-xとなっている場合は、まずディレクトリ(d)であって、所有者自身は読み書きソロバン、じゃなくて読み書き実行が可能(drx)で、所有者と同じグループも読み書き実行が可能(drx)で、よそ様は読みと実行だけ(r-x)という意味になります。

 また、この魔法の9文字の部分をビットで表すと111111101となりますが、これを8進数で表すと775になります。
 掲示板などのCGIを自分で設置したことがある人にとっては、パーミッションを775だの664だに変更するってのをやったことがあるハズです。
 そうです、アレってコレなんです。

 さて、ここで注目すべきは、ユーザ名が2ずつ表示されていることです。

 実はコレ、一見ふたつずつに見えるだけで、左のはユーザ名(UID)で、右のはグループ名(GID)なんです。
 要するに、ユーザ名とグループ名が同じ名称で登録されちゃってるよってことですね。

 玄箱側のユーザを作成するのにadduserコマンドを使ったんですが、コイツって新しいユーザを登録するときに、同時に(勝手に)新しいグループも作成しちゃうみたいで、そのときのグループ名をユーザ名と同じにしちゃうみたいなんです。

 そのせいで、私の意思に関係なく、henryはhenryグループ、kittyはkittyグループに所属させられたわけです。

 rootは最初から存在している特権ユーザ名で、最初からrootグループです。

 一方、Sambaには、Windows側からLinux側のHDDにファイルやフォルダが作成されたときに、どのような(Linux的な)パーミッションにするかを指定する項目があります。
 ファイルやフォルダに関するパーミッションの考え方が、LinuxとWindows NT系列とで結構違いますので、下手にすり合わせるより、Windowsから新規作成された場合のパーミッションを最初っから一意に決めておけばいいじゃんという考え方なんでしょう。

 ということで、玄箱にSambaをインストールした後でSWATを起動した時に、新規作成されるファイルは664(rw-rw-r--)、新規作成されるフォルダは775(rwxrwxr-x)というふうにしておいたんです。

 話をまとめますと、Windows側からSamba経由で作成されるフォルダのパーミッションは、所有者か所有者と同じグループのメンバでないとアクセスできない設定にしているくせに、Sambaユーザ(= Linuxユーザ)は全員が別々のグループに所属している(つまりよそ者同士とみなされる)ため、お互いが作成したフォルダの中が読み取り専用になり、ファイルを転送(作成)することができなかったのでした。

 ファイルのパーミッションは、よそ者には読み取り専用(r--)ですから、開くことはできます。
 なので、共有フォルダの直下に保存したテキストファイルはみんなが開けたんです。
 なまじ開けるために、このグループ設定のミスに気付くのが遅れたわけですね。

 ということで、

KURO-BOX:$ su -password:
KURO-BOX:#

 rootに変身!
 パスワードを入力し、プロンプトが“#”に変われば変身完了です。

KURO-BOX:# vi /etc/group

 グループ情報の設定ファイル/tec/groupを開いて不必要に増えたGIDを削除し、代わりに'users'というGIDを追加。

KURO-BOX:# vipw

 パスワードファイルを開いて、それぞれのユーザの属するGIDの部分を'users'のGIDに変更。

KURO-BOX:# chown -R henry:users /etc/share/*

 既に転送が完了したファイルやフォルダの所有者情報を、ユーザID→henry、グループID→usersに再設定。

 ・・・てな感じに作業。

 確認のために、ls- lsaしてみると、

 drwxrwxr-x henry users (サイズ) (作成日時) (フォルダ名)

 になりました。

 これで、少なくとも我が家のPCのユーザであるかぎり、誰かが作成(転送)したフォルダやファイルを誰もががアクセスできるようになりました。

 おめでとう、俺!
 ありがとう、私!

 パチ、パチ、パチ。

 ああ、楽しかった。

初出:2004/12/16

FC2 managemented

 前回は、Linuxを入れ替えた「玄箱」にsambaをインストールしてNASを再構築したよ、というハナシでした。

 でも、玄箱ってもともとNAS組み立てキットとして販売されているワケですから、なんのことはない、ふりだしに戻っただけです。

 ミもフタもないですが、事実です。

 では、なぜ、わざわざLinuxを入れ替えたのか。

 その理由は、別に購入したAVeL LinkPlayerにあります。

 AVeL LinkPlayerとは、アイ・オー・データから発売されている、いわゆるネットワークプレーヤーでして、LANで接続されたPC等に記録されている動画や音楽、画像を再生/表示でき、それ単体でもDVD/CDプレーヤとして動作し、さらにDVD-RやCD-Rなどに記録されたMPEG、DivX、WMVなどの圧縮映像、MP3、WMA、OGGなどの圧縮音楽を再生でき、それどころか本体のUSB2.0ポートにUSB HDDやUSBメモリなどの機器を繋ぐとそこからも同様の映像や音楽を再生したり、デジカメで撮った写真をテレビで観たりできるというスグレモノ製品です。

 WMVが再生できるようになったのは上記でリンクしている新型機「AVLP2/DVDシリーズ」からです。
 実は、前から欲しかった製品なんでいろいろ調べたりしてたんですが、MWV対応を期に購入に踏み切ったのでした。

 ただし、LAN上にあるPCならどのPCのHDDからでも再生/表示できるわけではなく、サーバ・ソフトウェアが動作しているPCで正しく設定されたフォルダ以下のファイルのみが公開される仕様となっています。

 サーバ・ソフトウェアなしでそれができたら、それは「便利」ではなく「セキュリティホール」と呼ぶべきです。

 さて、AVeL LinkPlayerにも専用のサーバ・ソフトウェア「AVeL Link Server」があり、本体添付のCD-ROMに収録されています。

 でも、いかんせんWindows専用なので、玄箱では利用できません。

 しかし、世の中、捨てたもんじゃありません。
 MediaWizというハードウェア向けに開発されたwizdというLinuxで動作するサーバ・ソフトウェア(フリーヽ(´ー`)ノ)がAVeL LinkPlayerで利用できるのです。

 実際は逆で、wizdで使えるからAVeL LinkPlayerを買ったんです。
 つまり、玄箱とAVeL LinkPlayerは、購入時期こそ若干ズレているものの、私の中ではセット商品という位置づけにあります。

 さて、wizdのインストールは、さすがにapt-getというワケにはいきません。
 とはいえ、ここまでLinuxに慣れた私にはお茶の子さいさいですけど。ふふん!

 な~んちゃって。サザンビーチさんとこのページを目を皿のようにして見ながら設定したんですけどね。

 まずは、PC側で必要なファイルをダウンロードし、玄箱内の共有フォルダに転送します。

 おっと、dselectで、gcc、glibcそしてmakeをインストールしておかなきゃ。
 (ソースをコンパイルしますからね)。

 準備ができたら作業開始です。

KURO-BOX:$ su -            ← ルートになって
password:KURO-BOX:# cd /usr/local   ← インストールフォルダに移動
KURO-BOX:# tar zxvf /mnt/share/wizd_0_12.tar.gz  ← 解凍
-- 進行状況がゾロゾロ表示されますが省略 --
KURO-BOX:# mv wizd_0_12 wizd ← ディレクトリ名を変更して
KURO-BOX:# cd wizd           ← wizdディレクトリへ移動し、
KURO-BOX:# make cleanKURO-BOX:# make           ← コンパイル
-- 進行状況がドバドバ表示されますが省略 --

 次に、wizd.confを自分の環境に合わせて書き換えます。

KURO-BOX:# vi wizd.conf

 viは以前も登場しましたが、そのときはほとんど説明せずにいましたので、ここでちょこっと説明しておきましょう。

 viというのは、Linux初心者がぶつかる最初の関門であり、ドシンと立ちはだかる壁であって、Linuxユーザを淘汰するためにあるとしか思えないくらい操作体系がユニークなテキストエディタです。

 玄箱のような入出力機器を持たないハードウェアの場合、他のPCで動作するターミナル・エミュレータなどを使って操作しますので、そういう地味な環境ではviのような地味なエディタのほうが確実に使えるから覚えておくと損はないのだということで、Linux入門系の文章には必ずといっていいほど出てくる、使い勝手のステキなテキストエディタです。

 実際、慣れたら苦にならなくなってしまいました。
 染まってしまったのかもしれません。

 修正するのは2箇所です。

 まずは公開フォルダの設定。
 とりあえず、玄箱の公開フォルダにWindows側でDisclosedというフォルダを作成し、そこに音楽/映像系のファイルを保存することにしましたので、そこを起点に公開するように書き換えました。

document_root  /mnt/share/Disclosed

 ちなみに、AVeL LinkPlayerで公開しないファイルは、Disclosedと同じ階層に作成したUndisclosedフォルダの中に保存することにしました。
 共有フォルダのくせにUndisclosedってのも変ですが、ということで(苦笑)。

 次はスキンフォルダの設定です。
 AVeL LinkPlayerからwizdへアクセスしたときに教示される画面の設定ファイルを保存するフォルダです。
 wizdのインストールフォルダにあわせて変更しておきます。

skin_root      /usr/local/wizd/skin

 wizd.confを上書き保存して終了したら、次は、wizdを自動起動できるように設定します。

KURO-BOX:# cd /etc/init.d/
KURO-BOX:# vi wizd

 ちなみに、こっちのwizdはテキストファイルで、

#!/bin/sh
/usr/local/wizd/wizd
exit 0

 と打ち込んで保存、終了します。
 Windowsのバッチファイルみたいなもん(「シェル・スクリプト」と呼ばれます)ですね。

 Linuxでシェル・スクリプトを実行するには、シェル・スクリプトのファイルのパーミッションを「実行可能」にしておかないと実行できません。

KURO-BOX:# chmod 755 wizd

 以上で完了です。

 動作するか確認してみましょう。

KURO-BOX:# ./wizd
wizd 0.12f start.config '/usr/local/wizd/wizd.conf' open.
(省略)

 ./wizdの ./ は“カレントディレクトリの”という意味です。
 Linuxでは普通、Windowsと違ってカレントディレクトリにパスは通っていません。
 そのため、WindowsのコマンドプロンプトやMS-DOSの感覚で実行ファイル名だけ打ってエラーを食らわされることもしばしばです。

 特に、パスが通っているディレクトリとカレントディレクトリに同名の実行ファイルがある場合に、./ を打ち忘れた場合には、パスの通っている方の実行ファイルが実行されてしまいますので注意しましょう。

 AVeL LinkPlayerの電源を入れて、動作確認をします。

 「サーバーの追加」でAVeL LinkPlayerに玄箱のIPアドレスを登録して・・・と、

 じゃじゃーん、出ました。

 リモコンがAVeL LinkPlayerとMediaWizでは結構違うのでどうなることか思っていましたが、違和感もほとんど感じられない操作ができてます。

 おっと、コレだけではwizdは自動起動しませせん。
 玄箱を再起動してもwizdが自動起動されるようにするには、/etx/rc2.dの中に先ほど作ったシェル・スクリプト(/etc/init.d/wizd)へのシンボリックリンクをS99wizdという名前で登録します。

KURO-BOX:# cd /etc/rc.d/rc2.d
KURO-BOX:# ln -s ../init.d/wizd S99wizd

 念のために、玄箱を再起動して確認・・・・・・ばっちし!

 玄箱のメディア・サーバー化は大成功でした。

初出:2004/12/20
加筆:2005/09/11

FC2 managemented
| ホーム |
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。