ホーム‎ > ‎

Samba on Debian

Caution

この資料はもともと2008年度計算数学Iのために作成し、Debian Linuxにあわせて最小限の補正を施したものです。現在の実習用環境では多少違った表示・動作をする可能性があります。不明な場合はTAと相談して解決してください。

始める前に

この実習では、Sambaを使ってWindowsファイルサーバの機能をLinux上で実現することを体験します。 Sambaについて一般的な情報は 日本Sambaユーザ会 のページを参照してください。

Sambaは高機能なため設定が複雑になりがちですが、 この実習では SWATというWebのインターフェイスで設定を行うことができるtoolを用いて、基本的な設定であれば簡単にできることを示します。

この実習は班単位(2人一組)で、2台のPC (以下、eduXXaとeduXXbと呼びます) を用いて行います。

なお、SambaとSWATについては、Linux標準テキスト第10章10.2ファイル共有の項にも解説があります。適宜参照してください。

準備

eduXXa, eduXXbの双方で、以下の準備作業をします。

Linuxアカウント作成

まだ Debian で相方のアカウントを作成していなければ,相方のアカウントを作成します.
作成方法は Debian インストール の「受講者のアカウントを追加」の項を参照してください.

共同作業用グループの作成

自分と相方を含む共同作業用のグループ(例えば「ks」)を作成するため,以下のコマンドを入力します:

$ sudo groupadd ks
$ sudo usermod -G ks (自分アカウント名)
$ sudo usermod -G ks (相方アカウント名)

うまくグループが作成されていれば,/etc/group ファイルの末尾に
ks:x:1002:hoge,piyo

のような行がある(番号 1002 は違うかもしれません.また,最後の「hoge」「fuga」の部分は,自分と相方のアカウント名になっています)ので,このことを確認しておいてください。

共同作業用ディレクトリの作成

端末のウィンドウを開き、以下の操作をします。

$ sudo mkdir /gu
$ sudo chown choki /gu
$ sudo chgrp pa /gu
$ sudo chmod g+w /gu

ただし,ここでは説明の都合上
  • 自分のLinuxユーザ名をchoki
  • 共同作業用グループ名をpa
  • 共同作業用ディレクトリ名をgu
としています。 これらは適宜変更してください。

いま作ったディレクトリに自分のファイルを作成することができることを確認しておいてください。

なお、Sambaを使わない場合でも、 一つのUnix/Linuxマシンを共有して共同作業を行う場合にはこのような準備をしておくと便利です。

Sambaの導入

引き続きeduXXa, eduXXbの双方で、Samba関係のファイルをインストールします。
$ sudo apt-get install smbclient swat
依存関係を自動的に解決し、必要なパッケージがインストールされます。どのようなパッケージが選択されたか、見ておいてください。
インストール中、ワークグループ名の入力を求められるので、WORKGROUPnnnn は計算数学の班番号)を入力。

サービス起動の確認

インストールが終了したら、端末ウィンドウを開いて

$ ps -e | grep [ns]mbd

で、smbdが2つ、nmbdが1つ起動していることを確かめておきます。

SWATによるSambaの設定

引き続きeduXXa, eduXXbの双方で、以下の作業をします。

共有の基本設定

  • ウェブブラウザを立ち上げる。
  • URIとして、“http://localhost:901” を入力して接続。
  • ユーザ名に “root” と入力し(パスワードは TA に入力してもらう)「OK」をクリック.
  • 「SWAT へようこそ」という画面が表示されることを確認する。
  • “GLOBALS” ボタン(地球のアイコンがある四角のボタン)をクリック。
  • workgroup の項目に先ほど入力したグループ名 “WORKGROUPnn” が入っていることを確認。
  • “SHARES” ボタンをクリック。
  • 「ファイル共有の作成」右側の入力欄に先ほど作成した共同作業用ディレクトリの名前を記入し、「ファイル共有の作成」をクリック。(注: このとき、共有名に"/"(スラッシュ)を用いてはならない。/guを共有する場合、guなどにする)
  • Path に共有するディレクトリのパス(例だと /gu)を入力、Comment は適当に入力し、「変更を反映」をクリック。(注: 以後、ボタンを押して変更を反映したつもりでも、入力欄の中が変更前だったりまったく無関係のものになったりする場合がある。この状態でも直前に入力した値は正しく反映されているが、この後間違った値のまま「変更を反映」をクリックするとその間違った値が反映されてしまうので要注意。正しく入力されたか確認するには、上のメニューからVIEWを選ぶと結果が見れる)
  • 「セキュリティオプション」の “read only” を “No” に変更し、「変更を反映」をクリック。
  • 「その他のオプション」の “available” が “Yes” になっていることを確認.もし “No” になっていれば “Yes” に変更し、「変更を反映」をクリック。
  • “STATUS” ボタンをクリック。
  • 「すべて再起動」をクリック。

ユーザアカウントの作成

Samba に Linux のユーザの情報を教えてやります。

  • 上と同様にウェブブラウザで SWAT に接続する。
  • “PASSWORD” ボタンをクリック。
  • (最初 root が入っている)ユーザ名に自分のユーザ名を入力。
  • 新パスワードの欄に自分のパスワードを入力。(2カ所)
  • 「パスワードの変更」をクリック。
  • 「ユーザの有効化」をクリック。
  • 同様の操作を相方についても行う。

SWATのアクセス制限

このままではネットワーク上の他のマシンからでもSWATに接続することができますが、 rootのパスワードが暗号化されないまま (平文:ひらぶん、英語だとclear text) ネットワークを流れることになり非常に危険なので、 Linuxのアクセス制御機構を使って、 他のマシンからはSWATに接続することができないようにします。

端末ウィンドウを開き、エディタを使って作業します。 (以下ではviを使っていますが、他のエディタでも可)

$ sudo vi /etc/hosts.allow

で、ファイルの末尾に

swat: LOCAL

を追加します。次に、

$ sudo vi /etc/hosts.deny

で、同じくファイルの末尾に

swat: ALL

を追加します。

Windowsからのアクセス

ここからは2人一組となり、2台のPCそれぞれで異なった作業をします。

eduXXbを再起動し、今度はWindowsを起動します。 eduXXaはLinuxのままです。

  • スタートメニューから「コンピューター」を選択。
  • アドレス入力欄(最上部)に "\\eduXXa"を入力。
  • 「ネットワークパスワードの入力」ダイアログが出たら、先に設定したWindowsユーザー名とパスワードを入力、「OK」。
  • 先に設定した共同作業用ディレクトリがフォルダとして表示されていることを確かめ、そのアイコンをダブルクリック。
  • Linux上で作成したファイルが見えることを確かめてください。
  • Windowsでファイルを作成し、このフォルダにコピーしてください。
  • このファイルがeduXXaからアクセスできることを確かめてください。 日本語ファイル名を使っても大丈夫なことも確かめておくとよいでしょう。
これで、Sambaを使ってLinuxマシンをWindowsからアクセスできるファイルサーバにすることができました。

交代

eduXXaとeduXXbの立場を交代して、どちらも正しくファイルサーバの設定ができていることを確かめてください。

セキュリティについての注意

ここで作成したファイルサーバは、セキュリティについて最小限の対処しかしてありません。 
基本的に、関係者のみがアクセスすることが確実な小規模ネットワーク (ファイアウォールで守られた家庭内等) に限って利用してください。
 不特定多数がアクセスする可能性があるネットワーク (例えば数理基幹ネットワーク)では、 
Sambaのアクセス制御機能 (SWATでも設定可能) を用いてファイルサーバを利用できるマシンを極力制限することや、 
ログの検査を頻繁に行って不正なアクセスが行われていないことを確認するなどの注意が特に必要になります。 
なお、Sambaに限らず、 持ち歩いていろいろなところでネットワークに接続する可能性があるノートPCでファイル共有の設定をするのは非常に危険です。 決して行ってはいけません。
Comments