ファイルサーバの作り方4

あーもー、あーもーw 仕事という名のあくまがわずかな現実逃避と言う名の幸せを奪っていくよぅ!w
えーっと、特殊能力は固有結界『ヒキコモリ』で。沙耶です。


嫁さんの誕生日だというのにプレゼントも買いにいけませんでした。そんな昨日w

さて、とりあえず共有PCは見えるようになったけど、中に入れませんね!w
原因は単純。
サーバが自分をlocalhost.localdomainって名乗ってるからだ。
コレを直すついでにほかのこまごまとしたとこも直そう。

再び
# cd /etc/samba

本来sambaのconfファイルなんて実はすっごくちいさい。妙にデカいように見えるけど、#と;(セミコロン)で始まっている行は全部コメントアウトされているだけである。
#はコメントが書かれているが、;は設定項目をコメントアウトしている行だ。

そこで。
# mv smb.conf smb.conf.org
まずオリジナルのファイルをリネームしておこう。
んで、コメントをがっつり取り除いた現在のsmb.confの内容はこんだけ。


/etc/samba/smb.conf

[global]
workgroup = workgroup
server string = Samba Server
printcap name = /etc/printcap
load printers = yes
cups options = raw
log file = /var/log/samba/%m.log
max log size = 50
security = user
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
dns proxy = no
idmap uid = 16777216-33554431
idmap gid = 16777216-33554431
template shell = /bin/false
winbind use default domain = no
[homes]
comment = Home Directories
browseable = no
writable = yes
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes
[Share]
comment = Shared Server Folder.
path = /share
public = yes
only guest = yes
writable = yes
printable = no




これとにたよーなファイルを作るには以下のコマンドをたたけばいい。超手抜きだがw
# cat smb.conf.org | sed -e “s/^[#;].*//” -e “/^$/d” > smb.conf
なんも考えずコメントをばっさり切り捨ててくれる。sed/awkを使えるようになったほうがいいってのはこういうことに応用が利くからなんだけど、いまはどうだっていいw

さて、この設定ファイルにもいらないものがたくさんある。
プリンタの共有設定はプリントサーバにするんじゃないんだからいらないしね。まあ、ざらっと見てもらえばわかるとおり、そんなにムツカシイことは書いてない。
サーバに入らずにクライアントにつながっちゃったのは、このサーバがlocalhost.localdomainを名乗ったからだ。原因は二つ。

sambaにこの名前を名乗りなさい、と教えていないことと、サーバ自身に名前をつけてあげてないからだ。

まずsambaから片付けよう。共有できればそれでいいから、FQDNがlocalhost.localdomainを名乗ってたって知ったことじゃない、とりあえずはw

というわけで再びエディタの登場だ。
# vi smb.conf

追加するのは以下の項目。ついでにコードページも書き換えよう。
[globals]セクションに
netbios name = samba-srv

別にどんな名前でもかまわないけど、長すぎたら駄目。Windowsでコンピューター名に使える長さだ。8文字だか16文字だか忘れたけど。

dos charset = CP932
unix charset = EUCJP-MS
display charset = EUCJP-MS

これも[globals]セクションに加えておく。場所はどこでもいい。[globals]から[homes]の間ならどこでもいい。
dos charsetが2系のcodepageだ。unix/display charsetはUTF-8であわせちゃったほうがいいかも。
まあ実際に動かしてから考えることにする。

guesk okでノンパスのguestでセキュリティすっかすかに輪をかけてもかまわないのだけど、ユーザーの概念を忘れてしまうとひどいし、いまだにrootで操作してるってのがキモチワルくてしょうがない。

samba3.0系なのに2.0系くさいconfファイルに仕上がってる現実からは目を逸らそう。いいの、secrets.tdb使うから3.0なのっ。
さあ、書き換えたらsambaの再起動だ。ってちょっとまて。その前に書き換えたものが正しいか確認しよう。確認せずに再起動すると”エラーだばーか”って言われてサーバが落ちる。
そしてコレが仕事だったりするとえらい目にあう。
おうちサーバなんで気にすることはないんだが、confファイルのチェッカが付いているんだから、チェックしたほうがなんとなくかっこいい。
# testparm
こんだけ。なんとなく意味はわかるだろww とまったように見えるが英語をよく読め? Enterを押せって言われてるんだから押せ?

書き換えたあとのファイルにこれをかけると、読み込んだあとで読み込んだ設定ファイルの内容を表示してくれる。タイプミスとかで設定が読み込めなかった行はすっとばされているので、設定ファイルとにらめっこすれば何がすっとばされたかわかる。
まあ普通に考えるならサンプルconfでtestparmの出力をいったんsmb.confに落とし込み、それからいじるのがお勧め。
あとでコピペってdiffするだけだし。

confが全部きちんと反映されているかな? 本当は一番最初にやると非常に手間が省けるのだけど、あえて手作業をしてもらった。こっからは手抜き方法だ。

# testparm > smb.conf.new
# mv smb.conf.new smb.conf

はい、smb.confがきれいに整形されましたっとw ぶっちゃけ最初の糞長いのもsedなんか使わなくたってこれできれいになるんだけど、汎用性がないのでね。最初に覚えちゃうと応用効かなくなるから注意。

さ、それじゃsambaサーバを再起動だ。Windows見たいにPCを再起動します、なんていわれたりしない。
それは9x系カーネルだけだが、NT系もPC名の変更は再起動しないと反映しないよね。
# /etc/rc.d/init.d/smb restart
この辺がUNIXの便利なところ。

さあ、もう一度Windowsからマイネットワークを覗いてみよう。今度は(localhost)なんてなってないと思う。
(samba-srv)みたいに自分で設定したnetbios nameが表示されているかな?
ダブルクリックするとユーザー名とパスワードを要求されればokだ。

あ、慌ててguestとかadministratorとかrootとかで入ろうとしても無駄。

なぜなら、そのユーザーをsambaが知らないから。だって、教えてないものw
これを教えてあげなきゃいけない。
誰が、どんなパスワードでログインできるかをサーバ側に教えてあげよう。
すごく簡単だ。smbpasswdをちょwwwwwwやめてwwwww石投げないでwwwwwww

とことん3系を2系っぽく使おうとするとどこからとも無く石が飛んでくるので気をつけよう。

smbpasswdというのはVer2系で使われてたsambaのユーザー管理ツールなんだけど、3系列からはこれが新しいユーザーDBを利用したものに切り替わっている。もちろん、互換性のためにsmbpasswdも残っているから、2系マンセーなひとも安心。多い日も安心。

まず、UNIXユーザーを作ろう。そもそもずっとrootで作業するのは気持ち悪いので、普通は一般ユーザーを作成し、そのユーザーで作業する。で、必要なときだけrootになるってのがUNIXの作法だ。
というわけで、一般ユーザーを作成する。

# useradd -d /home/saya -m -k /etc/skel -s /bin/bash -G wheel saya

せっかくだからフルパラメータで書いてみた。-gは指定してないけど、RH系はユーザーごとの固有グループを発行するのがデフォルトなんだよね。大規模なシステムだと余計なお世話、というかグループパーミッションのコントロールがしにくいのでド却下なのだが、おうちサーバなのでなんでもいいのだ。
パラメータの意味はmanでも読め。

sayaってユーザー(saya)をホームディレクトリを/home/saya(-d /home/saya)、初期のディレクトリ内容は/etc/skelの中身をコピー(-k /etc/skel)、ディレクトリが無かったら作成(-m)、補助グループはwheel(-G wheel)、ログインシェルを/bin/bash(-s /bin/bash)で作成しなさい、ってコマンドです…が、ほとんどデフォルトでこの内容なので、実質-G wheel sayaで事足りる。

次にこのアカウントのUNIXパスワードを決める。アカウント作成時にも決めれるけど、やっぱここは手打ちで。
# passwd saya
Changing password for user saya.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
これでUNIXアカウントが作成された。

次に、sambaにログインできるアカウントを作ってあげる。
sambaへのログインが可能なのは、UNIXアカウントを持っているユーザーだけなのだ。guestアカウントもまた、UNIXのアカウントのどれかに割り当てる必要があるので、結局ユーザーアカウントの理解は必須。

さて、sambaのログインアカウントの作成はpdbeditというコマンドを使う。
やたら多機能なんで、全機能を追っかけてたら日が暮れるドコロではないので、必要最小限に絞り込む。
というかユーザーつーくーるーだーけー。あとはman見ろ。

# pdbedit -a -u saya

ここでもパスワードを要求されるが、ここでのパスワードは”マイネットワークからログインするときのパスワード”。さっきのUNIXアカウントはUNIXにログインするときのアカウント。それぞれが別個に作成され、別個に管理されていることに注目。

パスワードを入れればなにやらけったいなメッセージがずらずらと出る。なんか悪いことでもやったかと思うほどだが、気にしてはいけない。というか、UserSIDとかはActiveDirectory用のSIDだし。ワークグループしか使わないんだから関係ない。無視。

わかってて無視するぶんには問題ないです。
#わからないから無視しちゃえ、とIPAの脆弱性警告を無視したツワモノが社内にいるとかいないとか。IPAが半ギレしてるメールを転送してきて無視してイイよね! 成りすましカモ!ってどこの世界にPGP鍵まで付いた成りすましメールがあるというのだばかものwwwww

さあ、これでユーザーもできた。サーバも見える。
アクセスしてみよう! もちろん、さっき作ったsamba用のアカウントとパスワードで!

アカウントの名前と同じフォルダと、Shareって名前のフォルダが見えていればひとまず完成。
さあ、好きなだけ違法ファイルをブチこむがイイ!!! なに、この窓の外に見える赤色回転灯?

0 thoughts on “ファイルサーバの作り方4

  1. >ESCを連打すればそのうち必ず編集モードになっているから、そこから落ち着いて何が起こったのかわからないなら:q!って叩いてはじめからやり直せばいいだけだ
    これがもっとも重要な気がする私。表示が急に化け始めても、これを覚えておけば安心。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です