高森太郎のノート

このページについて

このページは、高森太郎がノート的に何でも書くページです。
主に勉強したこと、自分が知った知識や方法などを中心に、適当に、メモ的に、書き留めてます。

 | 

2011年11月01日 (火曜日)

[]共有・アクセス制限、ホームディレクトリなどの設定 共有・アクセス制限、ホームディレクトリなどの設定 - 高森太郎のノート を含むブックマーク はてなブックマーク - 共有・アクセス制限、ホームディレクトリなどの設定 - 高森太郎のノート

今回はさらに、適切なアクセス制限を行う。

基本設定…の準備。

まず、どういう風に使いたいか考えてそれを形にしておく。今回の場合以下のように設定した。(括弧内はこの例での定義名)

  • ユーザHome Directory(home/ユーザ名/)
    • ここをそこをドライブとしてマウントして使う。ここは本人意外アクセス不可。このホームディレクトリはUNIXのディレクトリでは無く、Samba的意味でのホームディレクトリ。
  • 全員向け共有(all_user/)
    • 使用する者全員がアクセスできる共有ディレクトリ。
  • 管理職用共有(manager/)
  • チーフクラス共有(chief/)
  • Xプロジェクト共有(project_x/)

こうした後で、ディレクトリ構造は以下のようにしたい。それぞれ/mnt/tank/以下に

  • all_user
  • manager
  • chief
  • project_x
  • home/(ユーザ名)/my_data
    • ただのディレクトリ
  • home/(ユーザ名)/all_user
  • home/(ユーザ名)/manager
  • home/(ユーザ名)/(権限のあるディレクトリ)

また、各ユーザは以下のようなグループに分ける。

  • all_user
  • manager
  • chief
  • project_x

それぞれはそれぞれに対応する共有ディレクトリにアクセするための権限を持つグループとする。またあらかじめ、ユーザのIDとパスワード、及び可能なアクセス範囲を一覧にしておく。

また、この設定にはSSHを利用するので、

サービス

の画面でSSHをONにし、

ユーザ->Addユーザ

で管理用のユーザ(Wheelグループに入れてrootがとれるように)を作っておく。

ユーザと、グループの作成

ユーザと、グループを作成する。まずはユーザを作成する。ユーザは、

アカウント->ユーザ->Addユーザ

で必要なだけ作成する。入力項目はだいたい以下の通り。

ユーザID
1001番から始まる数字。重複できないが、Addユーザすると自動的に連番が入ってくるのでそのままでだいたいOK
ユーザ名
ログインする時に使うユーザ名。半角英数。ここをWindowsのログイン名と同じにしておくと捗る事も。
プライマリグループ
主グループ。アクセス設定は補助グループを使うので、ここでは「nogroup]にしておく。
シェル
ログインシェル。単にファイルアクセスだけさせるユーザの場合ここは「nologin」にしておく。SSHなどでアクセスするユーザは適正に設定する。
フルネーム
ユーザの名前。たとえが「Taro Takamori」などと入れておけばよい。
E-Mail
特に必須ではないが、入力しておくとアラートの送付ユーザに設定したりできる。ただファイルアクセスだけするユーザの場合は無記名でかまわない。
パスワード
パスワード.Windowsのログインのものと同じにしておくと捗るかも。
Disable Password logins
たとえばSSHでアクセスするユーザなどのために、パスワードログインを抑止する事ができる。チェックを入れた場合んはSSH Keyを入力する。

必要な数だけこれを繰り返す。

次にグループを作成する。グループは

アカウント->グループ->Addグループ

で作成する。入力項目はだいたい以下の通り。

グループID
1001番から始まる数字。重複できないが、Addグルーアップすると自動的に連番が入ってくるのでだいたいそのままでOK
グループ名
分かり易い名前をつける。

これを必要なだけ作成する。

次に、作成したユーザに補助グループを設定する。これには2種類やり方があるが、どちらか分かり易い方でOK

グループベースにユーザを選ぶ場合
アカウント->グループ->全てグループを表示

を選んで、「メンバ」を押して出た画面で、左のboxで入れたいユーザ名を選び、右のboxに>>をつかって移動してOK

ユーザベースにグループを選ぶ倍委
アカウント->ユーザ->全てユーザを表示

を選んで、「補助グループ」を押して出た画面で、左のboxで入れたいグループ名を選び、右のboxに>>をつかって移動してOK


以上を必要な数だけ繰り返す。

ディレクトリの作成

SSHでログインする。SSHって何?と言う人は、検索でも何でもすれば出てくるのでそれらを。

ログインしたら、まず、以下の順番でコマンドを入力して共有ディレクトリ、ホームディレクトリの素となるディレクトリを作成、及びユーザ、グループへのアクセス権を設定する。必要に応じてsu等しておくこと。

mkdir /mnt/tank/home

mkdir /mnt/tank/all_user
chgrp all_user /mnt/tank/all_user
chmod 770 /mnt/tank_one/all_user

mkdir /mnt/tank/manager
chgrp manager /mnt/tank_one/manager
chmod 770 /mnt/tank_one/manager

mkdir /mnt/tank/chief
chgrp chief /mnt/tank_one/chief
chmod 770 /mnt/tank/chief

mkdir /mnt/tank/project_x
chgrp project_x /mnt/tank_one/project_x
chmod 770 /mnt/tank/project_x
mkdir
ディレクトリを作成している。
chgrp
オーナーグループを変更している。
chmod
パーミッション(アクセス権)を設定している。

各コマンドの詳しい事はより分かり易いページを参照させていただくとよい。


次に、各ユーザのディレクトリ周りの設定をする。ユーザ名はそれぞれのユーザ名に置き換えてやる。またlnのコマンドは、アクセス権限のある共有に対してだけ行う。

mkdir /mnt/tank/home/(ユーザ名)
mkdir /mnt/tank/home/(ユーザ名)/my_data
chown -R -P (ユーザ名) /mnt/tank/home/(ユーザ名)
chmod 700 /mnt/tank/home/(ユーザ名)
ln -s /mnt/tank/all_user /mnt/tank/home/(ユーザ名)/all_user
(以下必要に応じ)
ln -s /mnt/tank/manager /mnt/tank/home/(ユーザ名)/manager
ln -s /mnt/tank/chief /mnt/tank/home/(ユーザ名)/chief
ln -s /mnt/tank/project_x /mnt/tank/home/(ユーザ名)/project_x
mkdir
ディレクトリを作成している。
chown
オーナーを変更している。
chmod
パーミッション(アクセス権)を設定している。
ln -s
シンボリックリンクを設定している。

これを必要なユーザの数だけ繰り返す。


以上がコマンドなのだが、こう言ったものをいちいち手打ちにしておくと非常に手間なので、シェルスクリプトという形でスクリプトを作っておき、これをSSHで適当なディレクトリにアップして一度に実行すると言う手もある。

CIFSの設定をする

サービス->CIFS

で設定画面を開く。設定項目は大抵以下のような感じ。

認証モデル
ローカルユーザにしておく。Anonymousを選ぶと無制限アクセスになる
NetBIOS名
Windowsのローカルネットワークで表示される名前。
ワークグループ
WindowsのWorkグルーアップ
説明
Windowsから見たときに説明として表示される。
DOS文字セット
CP437(デフォルト)でよいはず。
Unix文字セット
UTF-8(デフォルト)でよいはず。
ログレベル
ログの量を設定する。FreeNASの場合、デフォルトでは再起動するとログが消えてしまうので、最小で大抵はよい。
ゲストアカウント
nobodyにしておく。(ゲストは許可しない)
ゲストアクセスの許可
チェックしない
ゲストアクセスのみを許可
チェックしない
ファイルマスク
設定したファイルを表示させないようにできる。通常は入力の必要無し。
ディレクトリマスク
設定したディレクトリを表示させないようにできる。通常は入力の必要無し。
Large RWサポート
使用する端末がWIndows 2000以降のみであればチェックを入れておくとアクセス速度が改善する
Sendfile(2)を用いて送信
使用する端末がWindows 2000以降のみであればチェックを入れておくとアクセス速度が改善する
EAサポート
OS/2で使用されていたファイル属性拡張のサポート有無。通常はチェックしなくてよい。
DOSファイル属性のサポート
隠しファイルなどのUnixにないファイル属性のサポートの有無。チェックしておく。
空のパスワードを許可
許可しない方が良いのでチェックしない。
補助パラメータ
GUIで設定できる以外の、smb.confの内容を直接記述できる欄。後記参照
ホームディレクトリの有効化
チェックを入れておく。これを有効化しておくことで、いちいちユーザ用のホームディレクトリの共有を作らなくても自動的にホームの共有を作成してくれる。
Enable Home directories browsing
チェックしない。チェックしておくとホームディレクトリが見えるようになるが、今回は見えない方がよいのでチェックしない。
ホームディレクトリ
ホームディレクトリのルートを設定する。/mnt/tank/home と選択する。
AIOの有効化
チェックをいれておくと高速化するので基本的にチェックを入れておく。データをやりとりしている最中になんらかの障害が起きるとデータが壊れたりする事も(ごく希に)あるので応じて決める。簡単に言うとこれをONにすると、FreeNASのサーバがデータを受け取ったり書き込んだりするとき、いちいち相手の応答を待たなくなる。
Minimum AIO Read size
非同期読み込みを行う最小サイズの設定。最適値はいろいろあるチューニングポイント。1にすると全て非同期読み込みを行う。単位はbyte
AIOライトサイズの最小値
非同期書き込みを行う最小サイズの設定。最適値はいろいろあるチューニングポイント。1にすると全て非同期書き込みを行う。単位はbyte

ここで「補助パラメータ」の欄に

follow symlinks = Yes
wide links = Yes
unix extensions = No

と入力しておくこと。

follow symlinks
シンボリックリンクのサポートする。これを記入しておくとシンボリックリンクを辿って共有ができる。記入しないと共有にシンボリックリンクしたディレクトリが出てこない。
wide links
共有に設定していないディレクトリへのシンボリックリンクを辿るようになる。記入しないとシンボリックリンクした先も共有になっていないとリンクを追わない。
unix extensions
HPによるCIFSのUnix拡張の利用を制御する。これがYesのままだと上記の設定をしても正常にアクセスできないので同時に設定する。

シンボリックリンクを設定して、上記のオプションを入力してあっても、正しくパーミッションが設定されていないと共有にはアクセスできないのでそこも併せて注意しておく。たとえば間違えてアクセス権限の無いユーザのホームディレクトリにmanagerのシンボリックリンクを追加してあっても、そこにアクセスしょうとすると蹴られる事になる。逆にこの設定の場合、いくらアクセス権限を設定してあっても、シンボリックリンクがしてないとCIFSで共有に出していないのでそのディレクトリは見に行くことができない事になる。

そして最後に、

サービス

の画面で、CIFSをONにする。

これでWindowsのクライアントからアクセスすると、自分のホームディレクトリだけがあり、そこに入ると「my_data」と、それぞれのユーザ権限に応じたディレクトリが見える、と言う形になる。

設定したはずなのに上手く見えない場合は、とりあえず

  • CIFSを一度OFFにしてONにする
  • Windowsの再起動/ログオフ
  • サーバの再起動

等をすると改善することもあるので試すといいかも。

UPSの設定

後はUPSの設定についてもメモをしておく。

サービス->UPS

と入ったUPSの設定画面で設定する。

認識名
識別に使うので適当な名前をつける。
ドライバ
http://www.networkupstools.org/stable-hcl.html にリストされている名前から適切に選ぶ。この場合はapcsmart
ポート
ドロップダウンリストからUPSが接続されているポートを選ぶ。この場合は/dev/cuau0
Auxiliary paramters(ups.conf)
ここで設定できない設定を直接ups.confの書式で記入できる。
説明
分かり易い説明をしておく。
シャットダウンモード
どのような状態になるとシャットダウンするか決める。この場合はUPSがバッテリ駆動になりました、に設定してあるが、これはこの状態になったらシャットダウンタイマが始まると言う意味で即座にシャットダウンされるわけでは無い。
シャットダウンタイマ
上記シャットダウンモードの状態になってから、この秒数経過したらシャットダウンと言う時間。
ステータス更新時にメールを送信
バッテリー駆動になった、等のUPSのステータスが変更された場合にメールを送るかどうかの設定。
メールの宛先
ステータス更新時メールの手先を設定する。
Email Subject
メールのタイトル。たくさん管理しているときはわかりにくいので変えたりするとよいが普通はこのままでもよい。

これを設定したら一度"UPSの"電源を引っこ抜いてテストなどし、正常にシャットダウンされるか確認しておくこと。

最後に。速度等。今後等。

最後にベンチマークを取ってみたところ、ほぼ全ての場合で10MB/Sec以上でており、接続が100Base-Tであることを考えると非常に優秀なアクセス速度が出ている。っていうかGigabitにしたい。

今後はRsyncの設定をしてやりたい。Rsyncは圧縮して送ることができるので、この類の明らかに接続速度がボトルネックになっている場合には有効だと思われるためである。

また、本来は複数台同じ構成のサーバを用意しておいて同期しあうようにするとか考えておいたほうがいいかもしれないので、そっちも追々考える。

CarlyndaCarlynda2016/05/06 10:01There are no words to describe how bodouiacs this is.

FinchFinch2016/05/08 03:19Hi,You are on my Blog right now, you left a comment on it.There are links to the free plan all over my Blog (top, RH side, and inside comments) but here is a link to the .Thank you for wrktTng.iaie Care,S.W. http://zujdceovcz.com [url=http://gftexg.com]gftexg[/url] [link=http://fpiicl.com]fpiicl[/link]

 | 
ページの一番上へ