実践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)へ

目 次

特別企画
Raspberry Piで遊ぶ

HOME(全体のシステム構成&目次)

CentOS7
CentOS7のインストール〜ネットワークの設定ほか
CentOS7の新機能(systemdとfirewalld)
ダイレクトルールを使ったfirewallの強化
DNS(BIND)サーバー
Webサーバー
  Webでファイルの受け渡し
  アクセス解析ツールAwstats
  Wordpressでブログ構築
FTPサーバー
FTPS(FTP over SSL/TLS)
Mail(Dovecot&Postfix)サーバー
Sambaサーバー
MariaDB(MySQL)サーバー
DHCPサーバー
SSHサーバー
VNCサーバー
ドメインの追加

CentOS5〜6
ネットワーク&ファイアウォール(iptables)
DNS(BIND)サーバー
DHCPサーバー
メールサーバー(基本)
メールサーバー/実際の運用
Webサーバー
  WebDAVによるファイル共有
  Webでファイルのやり取り
  アクセス解析ツールawstats
  namazuで全文検索
  WordPressブログサイト構築
  EC-CUBEショッピングサイト構築
FTPサーバー
ファイルサーバー・Samba
データベースpostgreSQL
  ExcelからpostgreSQLを操作
データベースMySQL
SSHサーバー
VNC
SSL/TLSを利用した暗号化通信
openVPN
ストリーミングサーバー
    C++ RTMP Server
    Helix server Basic
ドメインの追加
Xen・仮想化
特定ディレクトリに容量制限

SELinux
SELinux基本設定
新しいタイプとポリシー・モジュールを作成してみる
マクロを利用したteファイルの記述
新しいドメインを導入してみる

coLinux
Fedora11で試す

Cプログラミング目次
X11プログラム
サイエンス・プログラム

計測・プログラム
秋月電子のデーターロガーpico ADC-16
「今すぐ使えるパソコン計測USBマイコン基板」に付属のTRZ1102
センサーの使用例

Glade2/GTK+を使ってみる
テキスト・ビューで簡易エディター
ドローイングエリアで自動描画
放物線運動(pango、cairoも試してみる)
これらを、GTK+のみで書き出す

フォントについて
ネットワーク・プログラミング
postgreSQL接続
CGI
ファイル操作

●その他
印刷機関連開発 刷版絵柄面積率測定
数独をExcelで解く