8-4. Samba を試してみる (1) Samba の概要 '99/03 * Samba とは Linux が急速に話題になり、UNIXやったことない人までパソコンにインスト−ルした りするようになった。さらに Samba も使ってみよかね−ということみたいである。Samba は結構前からあって、96年の「UNIX MAGAZINE」に記事がすでにのっている。 パラメ− タがたくさんあって、使いこなすのは難しいそうだった。Samba をUNIXにセットアッ プすると、Windows パソコンからUNIXのファイルとプリンタを共有できるようになる。 またその逆、UNIXからWindows のファイルとプリンタを使うこともできるようになる。 Samba は GPL( Gnu Public License ) に則ったフリ−ソフトである。 同じセグメントにある Windows パソコン同士は、 簡単に "ワ−クグル−プ" のレベルで "ファイル/プリンタ共有" ができる。 これにUNIXも仲間入りさせるソフトが Samba といえる。いったん同じ "ワ−クグル−プ" に入ってしまえば、基本的にはUNIXマシ ンも Windows パソコンも同じ立場になる。 つまり双方、サ−バでありクライアントにな るわけである。これは Windows OSのプロトコル、SMB( Server Message Block )で実現 されている。Samba はUNIX用の SMB の実装なわけである。 どうも Samba 2.0 では、Windows NT レベルの "ドメイン" での利用もできるようである。 この "ドメイン" は DNS のドメインとは違う。 Microsoft は勝手にいろいろな用語を作 るので要注意である。"ドメイン" は Windows ネットワ−クが複数セグメントある場合の 概念である。その意味は NetBIOS 名の解決方法にある。 普通 WINS デ−モンというのを 稼働させることにある。この名前解決は極めて複雑である。ざっと5種類ぐらいある。さ らにインタ−ネットのドメイン名の解決や NIS、さらに LDAP と加わってくる。Samba の サ−ビスは、同一セグメント内の Windows パソコンだけに絞った方が懸命である。 しばらく前に Microsoft 社は CIFS( Common Internet File System ) というのを出して いる。これは SMB プロトコルによく似ている。もともと SMB には何種類かのプロトコル があり、CIFS はこの変種という位置付けらしい。 またはインタ−ネットを意識した SMB の呼び方としての CIFS だという話もある。性格のはっきりしない話しである。Samba は CIFS は対応してないようである。Sun のファイルサ−バなんかは CIFS 対応とある。 Samba はフリ−ソフトだが SMB のUNIXの実装には、市販品が2つある。英 SCO 社の VisionFS がよく雑誌なんかで紹介されている。Samba とどう違うのか。CIFS がOKなぐ らいでないか。GUIで設定できるとか、ファイルロック機能があるというのもメリット らしいが。100ユ−ザで135万円。TAS( TotalNET Advanced Server/LMServer )と言 うのもある。米Syntax 社、100ユ−ザで230万円、10ユ−ザ/46万円。 SGI の マシンにも TAS は対応。もう一つ TAS はクライアントに Macintosh も行ける。 * 情報収集 http://samba.bento.ad.jp/ > ここに Samba の情報は集約されている。 http://sco.co.jp/product/vfs/vfs.html VisionFS 2.0J を販売している。 > `98/10 の資料によれば、10ユ−ザ/19.8万円。50ユ−ザ/78万円。 「UNIX MAGAZINE」'97/05, P.77〜 "CIFS by Jeff Tanner from UNIX REVIEW"。 > CIFS について書かれた初めての記事だと思う。 「UNIX MAGAZINE」'97/06, P.12〜 "特集おうちでらんランLAN第2回、Sambaで踊ろう"。 > 結構詳しく説明している。 * Samba の設定概略 smbd, nmbd がデ−モンであり、制御ファイルは /usr/local/samba/lib/smb.conf である。 smb.conf は自分で記述する。大きくは [global], [homes], [printers] セクションを記 述する。これらは予約されていて、他の名前は自由につけることができる。 smb.conf を変更した場合は、smbd, nmbd ともできれば再起動し、Windows パソコンも初 めから起動した方が無難である。どうも Windows の挙動はおかしい。 最初は同じセグメ ント上にUNIX、Windows パソコンを置きテストすることをお勧めする。 Samba 2.0 からGUI設定ツ−ルができた。SWAT( Samba Web Administration Tool ) と いう。Samba 用のミニWWWサ−バでWWWブラウザから設定できる。 smb.conf の編集、 パスワ−ドの変更、状態の表示とデ−モンの再起動ができる。 他コマンドは testparm で smb.conf の設定チェックをする。 smbstatus は Samba サ− バの状態を表示する。 smbclient はUNIXから Windows の共有リソ−スにアクセスす るコマンドである。これらのコマンドは /usr/local/samba/bin にある。 smb.conf の設定が安定したら、socket options = TCP_NODELAY を加えてみよう。少し速 度があがるとのことである。以前のバ−ジョンの Samba は、 Windows からアクセスする のが遅かったらしい。今のは感触として全然遅くはない。 * 注意1 Windows 95 では "ファイル/プリンタ共有" するために、 サ−バ側ヘのパスワ−ド認証 はプレ−ンテキストで流れた。Windows 98 や Service Pack 3 以降の Windows NT4.0 で は、パスワ−ドは暗号化されるようになったらしい。Windows 側をレジストリをいじって 暗号化しないようにするか、Samba の方で暗号化パスワ−ドもOKと設定する必要がある。 ただし guest アカウントについてはパスワ−ドの暗号化はしない。 * 注意2 同じセグメント、WINS サ−バなし、lmhosts もなしの状態だが。Windows 98 を起動して すぐでは、「ネットワ−ク コンピュ−タ」の画面には何もでてこない。 自分自身の "グ ル−プ" と "コンピュ−タ" ぐらい即認識してもよさそうなのに。Windows の名前解決は 結構複雑で時間がかかるみたいである。パソコンを起動したら5分程ほかっておこう。し かし、同じセグメントにある Windows 同士の "ワ−クグル−プ" は、すぐ認識したが?。 * Samba の設定指針 社内ネットワ−クでパスワ−ドを暗号化する必要があるのか。 パケットを Sniffer など のツ−ルでキャプチャしなければ、プレ−ンのパスワ−ドでさえ分かるものではない。こ こでは、管理者の手間を減らすことを考えるのが第一である。Windows で個々のユ−ザを 設けるか。その場合、Samba 側にもユ−ザのパスワ−ドを設定し、しかも暗号化する必要 がある。Windows 側で暗号化対応にするにはレジストリをいじらなければならなく、やっ かいである。まだUNIXの Samba 側で暗号化対応にした方が簡単である。 一番簡単なのは誰でもパスワ−ドなし、 暗号化なしで共通の Samba ディレクトリをアク セスできるようにすることである。Windows パソコンのログオンは、どれでも同じユ−ザ 名とする。パソコン使用者とパソコンは固定し、使用者は自分のパソコンにデ−タを保管 することとする。Samba サ−バ側は共通ファイルのみおき、個人ユ−ザもホ−ムディレク トリも設けない。共通ファイルのみの利用とし、 UNIX側のプリンタを Windows から 使うようなこともしない方がいい。プリンタは今や数万円で買える!。 Windows パソコンのログオンのユ−ザが複数の場合、guest 指定が複数人指定できればそ れでやるにこしたことはない。ちょっとテストしたところ、どうも認識しない。仕方ない のでパスワ−ドを暗号化することにする。暗号化といっても、空のパスワ−ドも有効なの でそうしてしまう。1) で Samba 用のパスワ−ド・ファイルを作り、2)で個々のパスワ− ドを設定していく。リタ−ンで抜ければ空のパスワ−ドになる。smb.conf には guest も valid users も設定はしない。まあ hosts allow だけちゃんとしておくか。 1) % cat /etc/passwd | mksmbpasswd.sh > /usr/local/samba/private/smbpasswd 2) % /usr/local/samba/bin/smbpasswd -e katou * Samba のプロトコルについて `2b/10 Samba をファイアウォ−ル越しに利用する場合、必要になってくる。Windows 2000/XP で は 139/TCPパケットだけで通信しているはずである。特に社内で部門用ファイアウォ−ル とかなければ、他の番号のパケットを使っていても問題になることはない。昔の Windows OSの名残りであるとか、歴史的経緯であるとか、実際に何が必要関係しているのかよく 分からないというのが実際のところである。また Sambaファイル共有にアクセスするに当 たり、ユ−ザ認証を Active Directory でやっていると、Active Directoryが使うパケッ トというのがあり、ファイアウォ−ルがあると問題になってくる。 Active Directory を そんなWAN環境で使うものか、使えるものか、使っていいものか、そこから疑問になる ところである。一応、Samba でどのようなパケットがあるのか、日本Samba ユ−ザ会サイ トから抜粋したのを掲載しておく。 以下抜粋:基本的には Samba との間に以下の通信を許可する必要があります。 通信目的 | Samba側の待受けポ−ト | 接続元のポ−ト --------------------------|-----------------------|---------------- 名前登録など | 137/udp | 137/udp ブラウジングなど | 138/udp | 138/udp ファイル/印刷サ−ビスなど | 139/tcp | Hi/tcp ファイル/印刷サ−ビスなど | 445/tcp | Hi/tcp (Direct Hosting of SMB) | | 137/udpと138/udp はUDPのため、基本的に双方向に通過許可にする必要がありますが、そ れではセキュリティが低下していまいます。実はこの2つが存在しない場合でも,139/tcp (もしくは445/tcp)が通過できればファイル/印刷サ−ビスは提供できます。但し 139/tcp のみを通過許可にした場合は、ブラウジング機能が動作しないため、Samba マシンのアイ コンは「ネットワ−クコンピュ−タ」上に表示されません。Samba マシンの名前解決につ いても WINS や LMHOSTS に静的に登録するか \\192.168.1.1\share のような記述方法で Samba サ−バをIPアドレスで指定する必要があります。 (2) とりあえず使ってサンバ '99/03 * アクセス条件 Windows 98 UNIX INDY /etc/passwd ------------- ------------- ---------- |logon:katou| | smbd, nmbd| |katou:: | | | | | | | smb.conf | /usr/people/katou を共有する。 ------------- ------------- ゲストアカウントは katou。 | | ------------------------------------------- WINS デ−モンなし。 192.9.10.1 192.9.10.2 lmhosts ファイルもなし。 Windows にログオンする際、katou で入ること。 Windows 側で katou ユ−ザには特にパ スワ−ドは必要ない。 C:\WINDOWS\lmhosts は同じセグメントにコンピュ−タがある場合 は関係ない。Windows ではロッグインのことをロッグオン(注)という。紛らわしい話だ。 UNIX側には katou というユ−ザがあること。すなわち /etc/passwd に記述されてい ること。パスワ−ドは特に必要ない。/etc/hosts に Windows パソコンのホスト情報はな くても構わないが、TCP/IP ネットワ−クでは書いておいた方がいい。 ※2008年の末までロッグオンだと思っていた。ログオンと言うのが正しい。Googleで ロッグオンと引いたら何と "18.総合ユ−ザ・サ−ビス管理" が本当一番で出て来た。 その後、章を整理して名前を "19.総合ユ−ザ・サ−ビスと管理" に変更した。 * Windows 98 の設定 ファイルの共有をするには、ディレクトリの "プロパティ" で設定する。共有名はディレ クトリ名と同じにしておけばいい。アクセスモ−ドは3種類ある。見るだけなら読むだけ にしておく。この変更はすぐに有効になる、みたい。 ----------------------------------------- |ネットワ−ク |---------------------------------------- |[ネットワ−クの設定] アクセスの制御 <-- 共有レベルでアクセスを制御する。 | にしておく。 | ------------------------------------ | |Microsoft ネットワ−ククライアント| | |TCP/IP ->3Com Ether Link PCMCIA | | |Microsoft ネットワ−ク共有サ−ビス| | ------------------------------------ | ------------------------------------ | |Microsoft ネットワ−ククライアント| | ------------------------------------ | ファイルとプリンタの共有 ----------------------------------------- このマシンではファイルの共有をサ−ビスせず、他のマシンのファイルを使わせてもらう だけなら、 "Microsoft ネットワ−ククライアント" だけを入れておけばよさそうである。 事実それだけで問題なくアクセスできる場合もある。でもやはりおかしい、マシンを認識 しなかったりする。 "Microsoft ネットワ−ク共有サ−ビス" も入れておいた方が無難で ある。 この「ネットワ−ク」の設定画面をいじると、Windows のインスト−ルファイルが消され たり、またインスト−ルしてくれとなる。実験のため "Microsoft ネットワ−ク共有サ− ビス" をはずして、再度入れようとしたらOSの CD-ROM をセットしてくれと出た。OS は C:\WINDOWS\OPTIONS\CABS にコピ−しておいたので、 そこから何やらとってきてもら うようにした。これも困った話だ。こんなことでファイルを消すなよ。 * UNIX側の設定 smb.conf を記述して、手動で Samba のデ−モンを起動する。inetd や rc.local などの マシン設定するのは、smb.conf をちゃんとしてからにした方がいい。 Windows パソコン は起動して、しばらく5分程度ほかっておいてからネットワ−クをみること。 % /usr/local/samba/bin/smbd -D & << -D はデ−モンのモ−ドで起動する意味。 % /usr/local/samba/bin/nmbd -D & << NetBIOS 用のネ−ムサ−バである。ホス ト名とIPアドレスの対応をつける。 /usr/local/samba/lib/smb.conf --------------------------------- |[global] | workgroup =SMB1 << Windows のワ−クグル−プの名前。 | client code page = 932 << ともかく記入する。 | coding system = euc << ともかく記入する。 | netbios name = Hiromi << 郷ひろみ、お嫁サンバ。NetBIOS 名。 | hosts allow = 192.9.10. 127. << アクセスを許すネットワ−ク・アドレス。 | guest account = katou << パスワ−ドなしでアクセスできる。 | |[oktmp] | comment = Common Directory | path = /usr/people/katou << このディレクトリを解放する。 | read only = no << read/write 可ということらしい。読むだけで | public = yes ないよと理解すればいい。 * とりあえず使ってみる Windows の画面にある 「ネットワ−ク コンピュ−タ」のアイコンをクリック。 パソコンは "ワ−クグル−プ" GROUP1、"コンピュ−タ名" PC1 とつけてある。 -------------------------- ------------------ -------- --------- |ネットワ−ク コンピュ−タ |ネットワ−ク全体 |Smb1 |Hiromi |------------------------- |----------------- |------- |------- |◆ ネットワ−ク全体 → | ■ ■ → | ■ → | ■ → |□ PC1 | Group1 Smb1 | Hiromi | oktmp | | | | ↑ -------------- ここ、なかなか出てこない。 |oktmp - Hiromi 5分程度ほかっておくこと。 |------------- 先ず Group1 が出る。Smb1 | □ □ □ も出たらOK。あとはすん | なりアクセスできる。 Windows の C:\Smb1\Hiromi\oktmp が、UNIXの /usr/people/katou/ ディレクトリに 接続する。接続したらアクセスは別に遅くない。接続するまでが時間がかかる。 * エクスプロ−ラの検索を使う 上記の「ネットワ−ク コンピュ−タ」では、Samba サ−バの "ワ−クグル−プ" SMB1 が なかなか出てこない。そこで [エクスプロ−ラ] -> [ツ−ル(T)] -> [検索(F)] -> [他の コンピュ−タ(C)] で SMB1 の中の HIROMI を探させてみた。 これでパット出てくる場合 もあるが、そうでない時もある。なぜか不明。 コンピュ−タ名は大文字でも小文字でも混在でもいいみたい。Windows での認識名は、頭 文字だけ大文字で続く文字は小文字になる。こういうのは止めて欲しい。ちゃんと付けた 名前の通り、表示してもらいたいもんだ。 ------------------------------------------- | 検索:コンピュ−タ | |-----------------------------------------| | コンピュ−タ名 [検索開始] | | 名前(N): HIROMI << ここ入力する。 | | | |-----------------------------------------| | 名前 場所 コメント | |-----------------------------------------| |■ Hiromi Smb1 Samba 2.0.3 | | | ------------------------------------------- * smb.conf のパラメ−タ パラメ−タは先に設定したのが有効になる。デフォルトの設定も testparm などでチェッ クし、正しいパラメ−タを設定しよう。[global], [homes], [printers] セクションは予 約されていて、特別な意味がある。[homes] はユ−ザのホ−ムディレクトリである。個人 用に Samba を使うのでなければ、[homes] は設定しなくてもいい。 この他の名前は自由 につけることができる。 smb.conf 自分でファイルを作って書き込むこと。 --------------------------------- |[global] | client code page = 932 << クライアントが日本語を利用する場合。 | coding system = euc << UNIX、Samba 側の文字コ−ド。 | workgroup = SAMBA << Samba 側の "ワ−クグル−プ名"。 | valid users = katou, satou << Samba にアクセス可能なユ−ザ名。 | netbios name = Hiromi << NetBIOS 名。別に設定しなくとも構わない。 | hosts allow = 192.9.10. 127. << アクセスを許すネットワ−クアドレス。 | guest account = katou << katou というゲストアカウント。 | socket options = TCP_NODELAY << アクセスが速くなるらしい。 | |[homes] | guest ok = no << public = yes でも同じこと。 | read only = no << writable = yes でも同じこと。 | create mode = 0644 << Samba 側ファイルパ−ミッション。 | browseable = no << これ設定すると表示されない。要注意。 | |[oktmp] | comment = Common Directory << ただのコメント。 | path = /usr/samba << [oktmp] に接続する Samba 側ディレクトリ。 ※host allow を書かないと、 どのネットワ−クのホストでもアクセスができることにな る。guest account や valid users なども書かないと、 どのユ−ザからでもアクセス きることになる。デフォルトは何でもOKになっているわけである。guest account は 設定しないとデフォルトで guest account = nobody となる。 [ 設定参考資料 ] % cd /usr/local/source/samba-2.0.3/examples; ls -F README printer-accounting/ svr4-startup/ autofs/ printing/ thoralf/ dce-dfs/ simple/ tridge/ misc/ smb.conf.default validchars/ smb.conf.default を見れば、各パラメ−タの説明がその場にのっている。 ただし英語で だけど。日本語訳したのは http://samba.bento.ad.jp/pub/examples/smb.conf.default。 (3) Samba のコンパイル '99/03 * ソ−スをとってくる INDY IRIX 5.3 に '99/03 時点の Samba をインスト−ルしてみた。 gcc の相性が悪いの かCコンパイラは純正を使うよう指示した。その他特に問題はなかった。Samba のソ−ス は ftp://ftp.samba.org/pub/samba/ ここが大元だが、混んでいたのか接続できなかった。 % ftp ring.aist.go.jp << ミラ−サイトからとってくる。 Connected to ring.aist.go.jp. Name (ring.aist.go.jp:katou): anonymous Password: taro@nix.co.jj << 自分のメ−ルアドレスを入れるのが慣習。 ftp> site index samba << これでどこに samba 何たらというファイルがあるか表 ftp> cd archives/net/samba 示してくれる。大文字、小文字は区別する。 250-See http://samba.org/ for a list of mirror sites ftp> ls drwxr-sr-x 21 mirror mirror 512 Jan 17 03:01 Binary_Packages drwxr-sr-x 2 mirror mirror 512 Nov 27 01:27 SMB-info drwxr-sr-x 2 mirror mirror 2560 Feb 28 11:34 alpha drwxr-sr-x 2 mirror mirror 512 Jan 1 01:32 beta lrwxrwxrwx 1 mirror mirror 15 Sep 17 1998 bin-pkgs -> Binary_Packages drwxr-sr-x 2 mirror mirror 1024 Mar 14 01:14 contributed drwxr-sr-x 8 mirror mirror 512 Nov 27 02:10 cvs_current drwxr-sr-x 8 mirror mirror 2048 Feb 28 11:37 docs drwxr-sr-x 2 mirror mirror 512 Sep 17 1998 pam_ntdom drwxr-sr-x 3 mirror mirror 512 Dec 23 01:07 pam_smb drwxr-sr-x 2 mirror mirror 6144 Feb 28 11:46 patches drwxr-sr-x 2 mirror mirror 512 Sep 17 1998 pwdump -r--r--r-- 1 mirror mirror 2081264 Feb 28 07:20 samba-2.0.3.tar.gz drwxr-sr-x 2 mirror mirror 512 Mar 17 01:51 slides drwxr-sr-x 2 mirror mirror 512 Sep 17 1998 smb2www drwxr-sr-x 2 mirror mirror 512 Feb 1 01:06 smbedit drwxr-sr-x 2 mirror mirror 512 Nov 27 02:27 smblib drwxr-sr-x 2 mirror mirror 512 Sep 17 1998 snapshot drwxr-sr-x 3 mirror mirror 512 Nov 29 01:12 tcpdump-smb drwxr-sr-x 2 mirror mirror 512 Jan 27 01:22 translations drwxr-sr-x 2 mirror mirror 512 Dec 14 01:12 xfertest ftp> ls Binary_Packages 対応しているOS。 AIX, BSDI, Bull, Caldera, Debian, DigitalUnix, IRIX, OSF, SCO, Slackware, Turbolinux, hp, mvs, novell, redhat, sinix, solaris, vms のディレクトリがある。 ftp> lcd /usr/local/source ftp> get samba-2.0.3.tar.gz ftp> bye % * コンパイル % pwd /usr/local/source % ls -al samba?* -rw-r--r-- 1 root sys 2081264 .. samba-2.0.3.tar.gz % zcat samba-2.0.3.tar.gz | tar xvf - % ls samba-2.0.3 COPYING README-smbmount WHATSNEW.txt packaging/ Manifest Read-Manifest-Now docs/ source/ README Roadmap examples/ swat/ % cd samba-2.0.3/source << ソ−スディレクトリに入る。 % ./configure << エラ−になる。gcc のバ−ジョンが古いからか。 | % gcc -v で見ると 2.6.3 だった。 checking for gcc... gcc checking whether the C compiler (gcc -O ) works... no configure: error: installation or configuration problem: \ C compiler cannot create executables. これで終わってしまう。 % ./configure -help << HELP を表示する場合。 % setenv CC cc << OS純正のCコンパイラを使うよう指示。 % ./configure loading cache ./config.cache checking for gcc... cc checking whether the C compiler (cc -O ) works... yes | creating Makefile creating include/config.h % make << % which make でみると /sbin/make を使っていた。 少し時間がかかる。INDY で5分ぐらいかかった。 % make install << これやったかな。やらんかったような気もするが。 % cd /usr/local/samba; ls << ここにデフォルトでインスト−ルされる。 bin/ lib/ man/ swat/ var/ % ls bin addtosmbpass nmbd smbd swat convert_smbpasswd nmblookup smbpasswd testparm make_printerdef rpcclient smbstatus testprns make_smbcodepage smbclient smbtar % ls -F lib codepages/ smb.conf << smb.conf は自分で作成する。 * inetd での起動設定 /etc/services ↓なければ追加すること。 ---------------------- | | |netbios-ns 137/udp |netbios-ssn 139/tcp /etc/inetd.conf ↓なければ追加すること。 -------------------------------------------------------------------- | | |netbios-ssn stream tcp nowait root /usr/local/samba/bin/smbd smbd |netbios-ns dgram udp wait root /usr/local/samba/bin/nmbd nmbd % ps -e | grep inted 209 ? 1:39 inetd % kill -HUP 209 << inetd.conf を読み込む。 (4) 暗号化など Samba 設定 '99/03 * testparm コマンド このコマンドで smb.conf の設定が確認できる。 smbd, nmbd は起動し直さなくても認識 する。testparm は直接 smb.conf を見て、記述が正しいか調べるようである。 注意すべ きは smb.conf の設定をデ−モンに反映させるには、 snmb, nmbd を再起動した方が無難 だということである。 Windows の画面 UNIX側:katou のホ−ムディレクトリは /usr/people/katou、 ----------------- Windows クライアントから誰でもアクセスできるデ |Hiromi ィレクトリを /usr/samba とする。 |---------------- | ■ ■ | homes oktmp Windows パソコンを katou でログオンすると [oktmp] の方は、そのままアクセスできる。 [homes] の方は /usr/people/katou にアクセスしようとするのだが、 先ずパスワ−ド入 力画面がでてくる。このパスワ−ドはUNIXの Samba サ−バ側を、 暗号化対応させて おかなければならない。 /usr/local/samba/lib/smb.conf ------------------------------------ |[global] | workgroup =SMB1 | client code page = 932 | coding system = euc | netbios name = Hiromi << 別に設定しなくとも構わない。 | hosts allow = 192.9.10. 127. | guest account = katou << katou というゲストアカウント。ディレクトリを | 共有する意味では samba ぐらいにした方がいい。 |[homes] | comment = Home Directories | browseable = yes << デフォルトで yes になっている。 | read only = no << writable = yes でも同じこと。 | create mode = 0644 << ファイルパ−ミッション。 | |[oktmp] | comment = Temporary file space | path = /usr/samba | read only = no | guest ok = yes << public = yes でも同じこと。 |# browseable = no << これ設定すると表示されない。 ※read only = No と writable = yes は同じことみたい。 パラメ−タの指定の仕方が混 乱しているようである。smb.conf に writable = yes と書くと、 testparm では read only = No となる。 % /usr/local/samba/bin/testparm Load smb config files from /usr/local/samba/lib/smb.conf Processing section "[homes]" Processing section "[oktmp]" Loaded services file OK. Press enter to see a dump of your service definitions # Global parameters workgroup = SMB1 以下ポイントをピックアップ netbios name = Hiromi server string = Samba 2.0.3 use rhosts = No hosts equiv = log level = 2 syslog = 1 syslog only = No log file = max log size = 5000 name resolve order = lmhosts host wins bcast getwd cache = Yes keepalive = 300 coding system = euc client code page = 932 stat cache = Yes guest account = katou invalid users = valid users = read only = Yes create mask = 0744 directory mask = 0755 guest only = No guest ok = No only user = No hosts allow = 192.9.10. 127. hosts deny = status = Yes browseable = Yes [homes] comment = Home Directories read only = No create mask = 0644 [oktmp] comment = Temporary file space path = /usr/samba read only = No guest ok = Yes * パスワ−ドの暗号化 smb.conf ----------------------------- |[global] | | | guest account = katou << 複数ユ−ザを指定できるか不明。どうも変。 | security = user << ここから追加した分。 | encrypt passwords = yes << 暗号化にします。 | password level = 8 << 大文字、小文字を組合わせてパスワ−ドを調べる。 |# valid users = << これやってもパスワ−ドは求められる。 | |[homes] 上記と同じ。 |[oktmp] Windows 98 の画面 Windows ではディレクトリにアクセスする際パス ---------------------- ワ−ド入力した場合、シャットダウンするまでそ |Hiromi の後のパスワ−ド入力は求められない。またパス |--------------------- ワ−ドを覚えるをチェックしておくとWindows 再 | ■ ■ ■ 起動後もパスワ−ド入力は求められない。 | homes katou oktmp Windows 98 が "ワ−クグル−プ" を認識したら、 最初 [homes] と [oktmp] が見えるは ずである。[oktmp] はパブリックで解放しているのですぐアクセスできる。[homes] の方 はユ−ザ katou のホ−ムディレクトリであり、 クリックするとパスワ−ド入力画面がで てくる。下記で設定したパスワ−ド 123katou を入れると中に入ることができる。そして いったん出ると、[katou] というのが出る。常にそうなるかは分からない。これも katou のホ−ムディレクトリである。ホ−ムディレクトリが2つも出てくるわけで、[katou] だ けにしたいのが、browseable = no の設定だと思う。しかしどうも挙動が変。 ※以下の操作をしても /etc/passwd ファイルには何も影響はない。 % cd /usr/local/source/samba-2.0.3/source/script % chmod +x mksmbpasswd.sh このファイルは最初ない。 ↓ % cat /etc/passwd | mksmbpasswd.sh > /usr/local/samba/private/smbpasswd % /usr/local/samba/bin/smbpasswd -e katou << 新規にパスワ−ドを設定する。 getsmbfilepwent: uids in the smbpasswd file must not be negative. New SMB password: 123katou Retype new SMB password: 123katou getsmbfilepwent: uids in the smbpasswd file must not be negative. User katou enabled. % /usr/local/samba/bin/smbpasswd katou << パスワ−ドを変更する。 New SMB password: katou123 Retype new SMB password: katou123 getsmbfilepwent: uids in the smbpasswd file must not be negative. getsmbfilepwent: uids in the smbpasswd file must not be negative. Password changed for user katou. ※パスワ−ド入力のとこをリタ−ンで抜けると、パスワ−ド無しにできる。 * Windows の DOS プロンプトから接続する > net use f: \\hiromi\oktmp << F ドライブに接続する。 コマンドは正常に完了しました \ は円マ−クである。 > net use f: /delete << これで接続を終わる。 > net use * \\hiromi\oktmp << 空いているドライブどれかに接続する。 > net help use | more << HELP を出す。 * デバッグ % cd /usr/local/samba; ls bin/ lib/ man/ private/ swat/ var/ % ls var locks/ log.nmb log.smb 注.log.smb, log.nmb をクリアするには、いったん消去して、smb, nmb デ−モンを起動 し直すこと。kill -HUP ではログファイルはできない。 [ 正常な場合 ] % cat log.smb [1999/03/25 14:28:02, 1] smbd/server.c:(614) smbd version 2.0.3 started. Copyright Andrew Tridgell 1992-1998 [1999/03/25 14:28:02, 1] smbd/files.c:(219) file_init: Information only: requested 10000 open files, 2490 are available. [1999/03/25 14:29:44, 1] smbd/service.c:(488) pc1 (192.9.10.1) connect to service oktmp as user katou (uid=101, gid=12).. ↑ Windows 98 パソコンの NetBIOS 名をとる。 % cat log.nmb [1999/03/25 14:28:05, 1] nmbd/nmbd.c:(672) Netbios nameserver version 2.0.3 started. Copyright Andrew Tridgell 1994-1998 [ 参考 ] % tail log.nmb HARU 40049a03 (Samba 2.0.3) GROUP1(2) current master browser = PC1 [1999/03/25 13:47:43, 0] nmbd/nmbd.c:(95) Got SIGHUP dumping debug info. [1999/03/25 13:47:43, 0] nmbd/nmbd_workgroupdb.c:(308) dump_workgroups() dump workgroup on subnet 192.9.10.2: netmask= 255.255.255.0: SMB1(1) current master browser = HARU HARU 40049a03 (Samba 2.0.3) GROUP1(2) current master browser = PC1 * セグメントが違う場合 lmhosts ファイルに、Samba サ−バに仕立てたUNIXマシンのIPアドレスと NetBIOS 名を記入する。Windows 98 では C:\WINDOWS\lmhosts である。 最初このファイルはない ので LmHosts.sam というサンプルをコピ−して使う。 ただし「エクスプロ−ラ」の検索 で hiromi と入れて認識できた。 「ネットワ−ク コンピュ−タ」のアイコンからは認識 できなかった。 -------------------------- |192.9.10.1 hiromi #PRE << 上記例で hiromi が NetBIOS 名。 #PRE を付けるとブロ−ドキャストによる名前解決でなく、 先に解決したのをキャッシュ に覚えていて名前解決が早くなるらしい。lmhosts ファイルは NT ではまた別な場所にあ る。Windows の Explorer で探すのが手っ取り早い。lmhosts は /etc/hosts と同じ働き もする。telnet や ftp でホストを指定する場合、ここでの定義名が使える。 * その他 Samba 2.0 は LDAP に対応している。ただし Windows NT 5.0 の Active Directory には 未対応である。NT 5.0 自体まだベ−タバ−ジョンだから、そりゃそうだ。 でもこれ以上 Samba の設定パラメ−タが増えたら、安定稼働させることがかなり難しくなるように思う。 (5) その後の Samba を見てみる `22/12〜 * その後の参考サイト&文献 http://www.samba.gr.jp/ 日本 Samba ユ−ザ会 1999/11 発足 > メ−リングリストあり。http://samba.bento.ad.jp/ は無くなっていた。 「UNIX MAGAZINE」 1999/07, P.54〜66 > UNIXの玉手箱、Samba のインスト−ルと設定 「SoftWare Design」 2000/08, P.17〜60 Samba 2.0.7 日本語版 > 特集:UNIX<->Windows ネットワ−キングの必需品、Samba から目が離せない 「SoftWare Design」 2002/11, P.86〜91 ASH Mutimedia Lab. > 究める Plamo Linux、お手軽サ−バ構築のレシピ ファイルサ−バ編 「SoftWare Design」 2002/12, P.55〜61 やまねひでき > 4章:目的別サ−バソフトウェアガイド、Samba の導入と設定 「SoftWare Design」 2003/01, P.19〜81 Samba を中心にした記事 > 特集:もっと便利に!もっと快適に! ファイルサ−バのある新生活 * その後の Samba の状況 安定版である Samba 2.2.7 がリリ−スされている。開発版の Samba 3.0 がリリ−スされ ている。Samba 2.2 では、UNIXの ACL をサポ−ト。 Microsoft の分散ファイルシス テムの DFS をサポ−ト。 DFS は複数のファイルサ−バを1台に見せかけるようにする機 能、Samba はその親になることができる。LDAP に完全対応。 Samba が WINS サ−バにな ることができる。Samba 3.0 は Windows NT/2000 の PDC をサポ−ト。 Windows NT/2000 がなくても、Samba が PDC の代わりをできるということ。まだ、BDCまでは対応してない。 Samba 2.2.2-ja.1.0 日本語版から "ごみ箱" 機能が追加された。"recycle bin= xxx" で 設定する。xxx ディレクトリに削除したファイルが入る。他、日本語含む国際化対応など。 ※用語 ACL( Access Control List ) DFC( Distributed File System ) PDC( Primary Domain Controller ) BDC( Backup Domain Controller ) * Samba 使用のファイルサ−バのソフト HDE File Server 2.5 Linux 版。http://www.hde.co.jp/file/。(株)ホライゾン・デジタ ル・エンタ−プライズが開発した国産ソフト。高機能ファイルサ−バ−管理ソフトウェア。 ディレクトリ毎にスケ−ジュリングしてテ−プなどにバックアップできる。ファイルアク セスの統計・レポ−ト機能。リモ−トファイルプロキシ−というキャッシュサ−バを配置 して、外から安全にアクセスができる。ファイルのダウンロ−ドにアップロ−ドもできる。 doc, xls, pdf などファイルも含めて全文検索ができる、Namazu 利用。2002/12/13 発売、 12.8 万円。Red Hat Linux のみ対応。 教育なしで使えるようドキュメントなど充実させ て行くとのこと。サイトには、操作のデモ画面まで用意されている。 2003/11、このソフト別な意味で気にかかってきた。2003年半ばから SSL-VPN と言う ソフトやアプライアンス製品が出て来ている。その中の売れ筋と思われる SWANStor とい うソフトとこのソフトのリモ−トファイルプロキシ−という仕組みがよく似ている。 DMZ にリモ−トファイルプロキシ−サ−バ(A)、内部ネットワ−クにファイルサ−バ(B)をお く。HDE File Server を2つ購入し(1つでいいか要確認)、それぞれの役割を設定する のだろう。ユ−ザはインタ−ネットからAへアクセスする。BはAの様子をポ−リングし てアクセスが来ていたら、BからAへコネクションを張るという。ユ−ザとA間、AとB 間は SSL 暗号化通信する。「NETWORK MAGAZINE」2003/03, P.38〜39に紹介記事があった。 * Cobalt Qube3 の Samba はどうかな WWWブラウザで Qube3 にアクセスし、管理画面でユ−ザの登録や Samba の稼働など基 本的な設定を行う。細かな制御をしたければ、SWAT 画面でやるか、telnet で入って直接 vi などで /etc/smb.conf ファイルをいじる。SWAT 画面はGUIで Samba の設定ができ るのだが、smb.conf をいじるより分かり易いということではない。 SWAT では smb.conf 制御ファイルの編集の他、プロセス起動と停止、パスワ−ドの変更などもできるようにな っている。ただし Cobalt のマニュアルには SWAT のことは書かれていなかったが、使う のは問題なくできる。Qube3 では smb.conf ファイルは /etc/smb.conf にある。 -------------------------------- WWWブラウザで Cobalt の管理画面に入る場合。 | http://192.9.10.3:444 admin, henomohe でロッグインする。 root では |------------------------------- いきなりロッグインできない。 | [ SWAT を見てみる ] Qube3 の SWAT は、日本語対応にはなっていなか った。ポ−トは 901 番にアクセスする。 ロッグ -------------------------------- インは root, henomohe ですると7つのメニュ− | http://192.9.10.3:901 が出てくる。 |------------------------------- | samba | ------ --------- -------- ---------- -------- ------ ---------- | |HOME| |GLOBALS| |SHARES| |PRINTERS| |STATUS| |VIEW| |PASSWORD| | ------ --------- -------- ---------- -------- ------ ---------- | | 以下、コマンドの使い方の英語でのマニュアルがある。 | | 日本語対応だと、ホ−ム、全体設定、共有設定、プリンタ、動作状況、設定表示、パスワ −ドと表示される。admin, henomoheでロッグインすると HOME, STATUS, VIEW, PASSWORD の項目だけになった。 [ Qube3 の Smaba の設定状態 ] qub3# /usr/sbin/smbd -V Samba のバ−ジョン。 qub3#/usr/sbin/nmbd -V Version 2.0.7 でも同じバ−ジョンが出た。 qub3# cat /etc/inetd.conf | swat stream tcp nowait.400 root /usr/sbin/swat swat ↑ ※Cobalt Qube3 で "Windows ファイル共有を有効にする" をクリックすると、/etc/ inetd.conf の一番最後に swat が追加される。追加されなければ vi で記述する。 qub3# kill -HUP inetdのPID。 << inetd.conf をいじったら、このコマンドをやる。 qub3# grep 901 /etc/services services:swat 901/tcp # Samba Web Administration Tool qub3# ps -ef root 706 1 0 2002 ? 00:00:17 [smbd] << smbd の親デ−モン。 root 715 1 0 2002 ? 00:00:05 nmbd -D << nmbd はこれ1つ。 root 13805 706 0 08:01 ? 00:00:00 smbd -D << smbd の子デ−モンが一杯。 | 以下 smbd -D が10個ぐらい続く * Cobalt Qube3 の Samba の利用 /etc/smb.conf ---------------------------------------- |# Samba config file created using SWAT | |[global] | max connections = 25 | codingsystem = SJIS | guest account = guest-share | client code page = 932 | coding system = SJIS | workgroup = SERVER | server string = Cobalt Qube 3 | security = SHARE | encrypt passwords = Yes | map to guest = Bad User | debug level = 0 | | |[temp] | comment = temp | path = /home/temp | writeable = Yes | guest only = Yes | guest ok = Yes | |[projx] | comment = projectX | path = /home/projx | revalidate = Yes | guest account = | valid users = projx | read list = projx | write list = projx | writeable = Yes << Windows 98 での操作 >> [検索]->[ほかのコンピュ−タ] で -------------------------------------- | 検索:コンピュ−タ | |------------------------------------| | コンピュ−タ名 [検索開始] | | 名前: [ Share ] | | ---------------------------------- | | | 名前 | 場所 | コメント | | | |--------------------------------| | | | Share Server Cobalt Qube 3 | | | ---↑----------------------------- | -----|------------------------------- クリックすると下の画面が出る ↓ ---------------- | Share | |--------------| | □ □ | projx をクリックする | temp projx | と下の画面が出る。 ---------------- | ↓ ------------------------------------------------ | ネットワ−ク パスワ−ドの入力 | |----------------------------------------------| | パスワ−ドを入力してください [OK] | | [キャンセル]| | リリ−ス : \\SHARE\PROJX | | パスワ−ド: [ ] | | □ このパスワ−ドを保存する | ------------------------------------------------ qub3# ls -F /home << 関係する所のみ表示。users の下に projx ディレクト projx/ temp/ users/ log/ レクトリがある。temp 以下はWWWブラウザから見る ことができる。ls で temp 内見ると文字化けしている。 * Windows 2000 Professional にて ファイル共有をするのに Windows 2000 Professional にて、{ネットワ−クとダイヤルア ップ接続} のアイコン {ロ−カルエリア接続} をクリック。 "ファイル共有" にアクセス する時に、クライアントからサ−バにユ−ザのアカウントを送っている。 --------------------------------------------------- |ロ−カルエリア接続のプロパティ |-------------------------------------------------- | | 〆Microsoft ネットワ−ク用クライアント << ここチェック外すと"ファイ | 〆Microsoft ネットワ−ク用ファイルとプリンタ共有 ル共有"にアクセスできなく | 〆インタ−ネット プロトコル (TCP/IP) なる。すぐに有効になる。 | | | [ OK ] [キャンセル] "ファイル共有" は他のマシ --------------------------------------------------- ンの Samba サ−バなど。 << ファイル共有にアクセスする >> 他のパソコンにて [スタ−ト]->[ファイル名をして実行] 左の操作をしたらIEが開いた。 ---------------------------------------------- ----------------------- | ファイル名を指定して実行 | |¥¥192.1.1.2¥dir1$ |--------------------------------------------| |---------------------- | 実行したいアプリケ−ション名、または開 | → |□ xxxx | きたいフォルダやドキュメント名、インタ | |□ xxxx | −ネットリソ−ス名を入力して下さい。 | | 名前: [ ¥¥192.1.1.2¥dir1$ ▽] | ----------------------- | | |¥¥192.1.1.3 | [OK] [キャンセル] [参照] | | ---------------------------------------------- ※名前:[¥¥192.1.1.2¥D$ ▽] で相手パソコンDドライブに接続する。他のパソコ ンの Windows XP からでもこれで接続し、XPからファイルのコピ−等に使っている。 ファイル共有の自分に権限のない他のフォルダをクリックすると、ペ−ジが表示できませ んと出る。そのフォルダの上で Shiftキ−を押しながら左マウスをクリックするとアカウ ントを入力する画面が出てくる。 -------------------------------------------------------- |ネットワ−ク パスワ−ドの入力 | |------------------------------------------------------| | アクセスするにはパスワ−ドおよびユ−ザ−名が必要です | | ¥¥share¥dir2 | | [ OK ] | | ユ−ザ−名 [ ] [キャンセル] | | パスワ−ド [ ] | -------------------------------------------------------- * Windows XP Professional にて ブラウザは Internet Explorer8 でのこと。会社のファイル共有にアクセスして最初の画 面は開くのだが、その中のフォルダが反応しない。設計課とか総務課とかフォルダはある のだが。 マウスを上におくと "file://192.1.1.4/sekkei" とかブラウザの下のところに 表示はされる。いろいろテストをやってきたのでブラウザの何かオプション設定をいじっ てしまったか。[スタ−ト]->[ファイル名をして実行] で [¥¥192.1.1.4¥sekkei ▽]と やったら素直にこのフォルダが出てきた。いったい何なんだ。 Active Directory のユ− ザ認証でファイル共有のアクセス制御もやるようになっているのだが、どうもそれとは違 うようだ。ブラウザ設定だとやはり思うが。Mozilla Firefox もこのパソコンには入れて いる、最初の画面は出てくるがフォルダ内にはアクセスできない。そもそもこのブラウザ でフォルダ内はアクセスできるのだろうか。できるはずと思うが、確かめてみないと。 * Windows 7 にて 上記の Windows XP と同じような現象が Windows 7 で起こった。 2015年3月ぐらい からかな。あまり気にしてなかったのだが、 IE9 で Samba で作ったファイル共有にアク セスして、誰でも見られるフォルダに入ることができなくなっていた。マウスをフォルダ の上でクリックしてもまるで反応しない。前にも同じような事があって、どこかにその様 子を書いたはずだがと思い、探したらこの章があった。ブラウザのURLを入れるところ で "file://192.1.1.4/temp" とか入力したら入れた。 DNS指定をプロバイダのにして いた、社内のADを指定したが変化なかった。ブラウザのオプション設定など他のパソコ ンと比較して、異なっている設定は同じにしたり。ブラウザのキャッシュを消したり。変 わらんな−。テスト用で置いてあるPCはAD指定してないがファイル共有に入れるけど。 ------------------------------------------------------------------------------------ [ 付録 ] Cobalt Qube3 に入っている Samba について % telnet 192.9.10.3 Cobalt Linux release 6.0 (Carmel) Kernel 2.2.16C7 on an i586 login: admin Password: henomohe Last login: Thu Jan 9 13:44:56 from 192.9.10.1 [admin admin]$ su Password: henomohe [root admin]# /usr/sbin/smbd, nmbd /usr/bin/nmblookup, smbadduser, smbmnt, smbpasswd, smbspool, smbtar smbclient, smbmount, smbprint, smbstatus, smbumount など qub3# /usr/sbin/smbd -h Usage: ./smbd [-DaoPh?V] [-d debuglevel] [-l log basename] [-p port] [-O socket options] [-s services file] -D Become a daemon -a Append to log file (default) -o Overwrite log file, don't append -P Passive only -h Print usage -? Print usage -V Print version -d debuglevel Set the debuglevel -l log basename. Basename for log/debug files -p port Listen on the specified port -O socket options Socket options -s services file. Filename of services file qub3# /usr/sbin/nmbd -h Usage: ./nmbd [-DaohV] [-H lmhosts file] [-d debuglevel] [-l log basename] [-n name] [-p port] [-s configuration file] -D Become a daemon -a Append to log file (default) -o Overwrite log file, don't append -h Print usage -V Print version -H hosts file Load a netbios hosts file -d debuglevel Set the debuglevel -l log basename. Basename for log/debug files -n netbiosname. Primary netbios name -p port Listen on the specified port -s configuration file Configuration file name qub3# /usr/bin/nmblookup << Windows パソコンの名前解決の状態を表示する。 Usage: nmblookup [-M] [-B bcast address] [-d debuglevel] name Version 2.0.7 -d debuglevel set the debuglevel -B broadcast address the address to use for broadcasts -U unicast address the address to use for unicast -M searches for a master browser -R set recursion desired in packet -S lookup node status as well -T translate IP addresses into names -r Use root port 137 (Win95 only replies to this) -A Do a node status on as an IP Address -i NetBIOS scope Use the given NetBIOS scope for name queries -s smb.conf file Use the given path to the smb.conf file -h Print this help message. If you specify -M and name is "-", nmblookup looks up __MSBROWSE__<01> qub3# /usr/bin/smbpasswd -h << su で root になった場合。 ./smbpasswd: invalid option -- h smbpasswd [options] [username] [password] options: -s use stdin for password prompt -D LEVEL debug level -U USER remote username -r MACHINE remote machine -R ORDER name resolve order -j DOMAIN join domain name -a add user -x delete user -d disable user -e enable user -n set no password -m machine trust account qub3# /usr/bin/smbpasswd -h << admin でロッグインしたままでの場合。 smbpasswd [options] [password] options: -s use stdin for password prompt -D LEVEL debug level -U USER remote username -r MACHINE remote machine