実践Linux
CentOS5/6.5 CentOS5/6.5 目次へ TOP(HOME)へ
ファイルサーバー・Samba(CentOS6.5の場合) 2015年10月更新
●ファイルサーバーsamba
@sambaユーザーの登録
linuxユーザーとsambaユーザーの両方に作る必要がある。
パスワードはsamba独自のものが使われるので、linuxユーザーには設定する必要はない。
# groupadd sambauser グループの作成
# adduser -g sambauser -s /sbin/nologin *****
# pdbedit -a -u ***** *****のパスワードを2回入力
削除は、# pdbedit -x -u *****
一覧は、# pdbedit -L (# pdbedit -L -v ***** で詳細表示)
(pdbeditでなく従来のsmbpasswdを使ってもよいが、pdbeditのほうが汎用性がある。)
パスワードの変更は、従来通りsmbpasswdを使う。# smbpasswd -a *****
A/etc/samba/smb.confの編集
頭の#や;はコメントアウト行なので、使用するときは;をはずす。
[global]、[homes]、[printers]セクションだけは特別な意味をもっている。
[global]
workgroup = WORKGROUP
server string = Samba Server Version %v
hosts allow = 127. 192.168.7.
security = user 認証設定
passdb backend = tdbsam
load printers = yes
cups options = raw
[homes]
comment = Home Directories
browseable = no セクション名での表示をさせない。(そうでないとhomesとユーザーの2つになる。)
writable = yes
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes
[public] ;をはずして使えるようにする。
comment = Public Stuff
path = /home/samba このディレクトリを作成して、グループ所有をsambauser、モードを770に。
public = yes
writable = yes
printable = no 印刷サービスを利用するかどうか。上のprintable = yesのとき有効。
write list = @sambauser 「sambauser」グループ以外のユーザからは読み出し専用となる。
vfs objects = recycle VFSモジュールのゴミ箱を設定。
recycle:keeptree = yes 削除時にディレクトリ構造を維持。
recycle:noversions = yes 同名の場合、新しく削除されたファイルをゴミ箱に保存する。
recycle:repository = .recycle/%u 各ユーザー毎のディレクトリを作る。(ゴミ箱配下のディレクトリは最初に削除した者の権限になってしまう。他の者がゴミ箱に入れられなくなってしまうのを回避する。)
create mask = 0770 この設定がないとファイルは744、ディレクトリは755で作成されてしまい、作成者以外の書き込み等ができない。
directory mask = 0770
invalid users = hoo01 hoo02 hoo03 アクセス不許可のユーザー
[media-disk] USB外付ハードディスク用
comment = USB-HDD
path = /media/disk
public = yes
writable = yes
※ユーザーやグループ毎に共有へのアクセス制限をしたい場合、
valid users = @sambauser アクセス許可(これを記入すると、これ以外は許可されないようになる。)
invalid users = hoo01 hoo02 hoo03 アクセス不許可
グループを指定する時、頭に@、+または&を付けて解釈内容を指定することができる。+はUNIXグループ(/etc/group)と解釈される。&はNISネットのグループ。@はまずNIS次にUNIXと解釈する=&+と同じ。+&はその逆。invalid
users リストに名前やグループがあると、そのユーザは 常に アクセスを拒否される。これは valid users のリストに(どんな形で)含まれていても変わらない。
B/home/sambaディレクトリを作成して、グループ所有をsambauser、モードを770に。
# chmod -v 770 /home/samba
Csambaを起動
D[public]のゴミ箱は最初に削除した者の所有で.recycleが自動的に作成されるので、これを変更しておく。
# chmod -R 770 /home/samba/.recycle
# chown -R root:sambauser /home/samba/.recycle
●selinux
@/home/ユーザー以下にアクセスできるようにする。
ポリシーsamba_enable_home_dirsをONにする。
# setsebool -P samba_enable_home_dirs 1
Aそれ以外の場所を共有にする場合
そのディレクトリにsamba_share_tタイプを付ける。
# semanage fcontext -a -t samba_share_t "/home/samba(/.*)?"
# restorecon -RF /home/samba
rsyncを利用した自動バックアップ
rsyncはWindowsのxcopyコマンドに似ていて、ディレクトリの構造をたもったままコピーができる。たとえば、/varディレクトリ以下をまとめてコピーすることが簡単にできる。2回目以降のコピーでは更新や追加されたファイルだけがコピーされるので、バックアップが短時間で終わる。さらに削除したファイルはバックアップ先でも削除されるため、バックアップ元とバックアップ先の内容をまったく同じに保つことも可能だ。
例 # rsync -a --delete /home/samba /media/disk
ここでは、# rsync -vrlHtD --delete --exclude '.recycle' /home/samba /media/disk
rsyncの書式は「rsync (オプション) (コピー元) (コピー先)」となっている。指定できるオプションは次の表のようになっている。「-a --delete」はコピー元とコピー先を同期させたいときに使うオプションだ。
-v バックアップ中にコピーしているファイル名を表示する
-r 指定したディレクトリ以下を再帰的にコピーする
-l シンボリックリンクはそのままコピーする。指定しないとリンク先の実体がコピーされる
-H ハードリンクはそのままコピーする。指定しないとリンク先の実体がコピーされる
-p パーミッション属性をたもったままコピーする
-o 所有者属性をたもったままコピーする。指定しないと属性はコピーしたユーザーのものになる
-g グループ属性をたもったままコピーする。指定しないと属性はコピーしたユーザーのものになる
-t タイムスタンプをたもったままコピーする
-D デバイスファイルをたもったままコピーする
-z データを圧縮して転送する
-u 追加されたファイルだけをコピーする
-a 上記のオプションで「rlptgoD」を同時に指定する
--existing 更新されたファイルだけをコピーし、追加されたファイルは無視する
--delete コピー元で削除されたファイルは、コピー先でも削除する。-aオプションと同時に指定するとコピー元とコピー先を同期できる
--exclude '**' **に一致するファイルはコピーしない。「*.bak」「*~」など特定のファイルを除外したいときに使う
--stats コピーの結果を表示する。指定しないといっさいのメッセージは表示されない
-e ssh 暗号化してファイルを転送する。コピー先としてネットワークでつながった別のホストを指定するときに使う
rsyncを自動実行
/etc/crontabにコマンドを追加する。
次の例は毎日午前3時10分にバックアップを自動実行させるときの設定。
10 3 * * * root /usr/bin/rsync -vrlHtD --delete --exclude '.recycle' /home/samba
/backup (/backupは別のHDDを用意しておくとよい)
crondの再起動
# /etc/init.d/crond restart
TOP(HOME)へ