ホーム‎ > ‎

Samba on Ubuntu

Caution

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

始める前に

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

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

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

準備

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

Linuxアカウント作成

既にUbuntuインストール時に班員のアカウントを作成してあるはずですが、 もしまだだったら相方のアカウントを作成します。 作成方法はUbuntuインストールの「ユーザの追加」を 参照してください。

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

  • システム→システム管理→ユーザとグループ をクリック。
  • 「ロックの解除」をクリック、パスワード入力して認証。
  • 「グループの管理」をクリック。
  • 「グループの追加」をクリック。
  • 「グループ名」に適当な名前(英数字)を入力、「グループのメンバ」で自分と相方にチェック。
  • 「OK」をクリックして必要なだけ「閉じる」をクリック。
これで、自分と相方を含む共同作業用のグループができました。 /etc/groupファイルを参照し、このことを確認しておいてください。

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

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

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

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

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

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

rootパスワード設定

Ubuntuはrootでのログインを行わないのが基本哲学となっていますが、 本実習では後の都合でrootにパスワードを設定します。

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

$ sudo passwd root

rootのパスワードは同じものを2回入力します。

Sambaの導入

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

  • システム→システム管理→Synapticパッケージ・マネージャを開く。パスワードを聞かれたら入力。
  • 「クイック検索」に名前を入力して検索し、"samba" "samba-common" "samba-doc" "smbclient" "swat"のインストール指定をする。(既にボックスが緑になっているものはインストールされているので、指定しなくてよい。)
  • 「適用」をクリック。
  • Synopticパッケージ・マネージャを終了。
ここまで行ったら、一旦Ubuntuを再起動します。

サービス起動の確認

再起動したら、端末ウィンドウを開いて

$ ps -e | grep [ns]mbd

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

SWATによるSambaの設定

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

共有の基本設定

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

ユーザアカウントの作成

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

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

SWATのアクセス制限

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

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

$ sudo vi /etc/hosts.allow

で、ファイルの末尾に

swat: LOCAL

を追加します。次に、

$ sudo vi /etc/hosts.deny

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

swat: ALL

を追加します。

Windowsからのアクセス

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

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

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

交代

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

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

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