'''運用手'''
'''WiNaSearcher'''
'''学校法人嘉悦学園嘉悦大学'''
'''XXXXXXXXXXXXX'''
'''順'''
'''日本ビクター株式会社''' '''ファイルサーバー、認証サーバー''''''構築''''''作業報告''''''書''''''OS / サーバーサービス編'''
作成日: 2007年7月12日
作成者: 竹内英雄
文書番号: OSTD20070712
A
リビジョン: 1.0
作成日: 2007年9月11日
作成者: 竹内英雄 文書番号: OSTD20070911B
リビジョン: 1.0
= SearcherWiNa = = はじめに = WiNaSearcher本書は2007年6、7月に実施した ファイルサーバー(社内外からのアクセス)、認証サーバー環境WiNaSearcherWindows + NAS + Search = WiNaSearcherユーザWiNaSearcherWiNaSearcherWiNaSearcherWiNaSearcherWiNaSearcherWiNaSearcherユーザWiNaSearcherユーザユーザWiNaSearcherたシステムでの本書は2007年8月31日~9月7日に実施した ファイル、認証(Active Directory)サーバー環境をCentOS 4.5 にて構築するサーバー環境へ移行しの構築に関する作業報告書です。運用手順書となります。主に、当サイト特有なユーザー/グループ登録方法に関する手順を中心に解説しています。一般的な運用手順や使用方法については、各ソフトウェアのマニュアルなどに従ってください。また、smbldap-toolsについては、既にお渡ししている弊社提供の別文書「smbldap-tools利用ガイド」も参照ください。 環境構築作業については別文書の作業報告書を参照ください。= システム構成 = == システム構成図 == 下図の fsvr-p,fsvr-b が作業対象のホストです。 * fsvr-p (fsvr-p.krhm.jvc-victor.co.jp) ** ファイルサーバー (Samba、smbldap-tools、SSL Bridge、Apache2) ** マスター認証サーバー (OpenLDAP) ** 時刻同期クライアント(ntp) ** メール転送(Postfix) ** スクリプト言語エンジン(PHP) * fsvr-b (fsvr-b.krhm.jvc-victor.co.jp) ** ファイルサーバー (Samba、smbldap-tools、SSL Bridge、Apache2) ** スレーブ認証サーバー (OpenLDAP) ** 時刻同期クライアント(ntp) ** メール転送(Postfix) ** スクリプト言語エンジン(PHP)
== ハードウェア構成 == fsvr-p, fsvr-b とも下記構成の PC サーバーです。 * DELL PowerEdge 1950 ** CPU: Intel Xeon 5160 3.0GHz  x 1 ** メモリ: 2GB(512MBx4/667MHz) ** 内蔵HDD: 146GB15K(SAS/3.5inch) x 2 (RAID1 ) ** 外付けHDD: PowerVault MD1000 (SingleEMM/300G(15K) x 6) (RAID5 + 1ホットスペア) == ソフトウェア構成 == fsvr-p, fsvr-b とも同一のソフトウェア構成となっています。 * OS ** CentOS 4.5 (i386 版) ** カーネル: kernel-smp-2.6.9-55.0.2.EL ** libc: glibc-2.3.4-2.36 ** 備考: 現地での作業日、2007年 7月10日時点の最新パッケージを適用 * ファイルサーバー環境 ** Samba: samba-3.0.24-1.20_OSSTECHファイル サーバー/クライアントソフトウェア ** smbldap-tools: smbldap-tools-0.9.2-1.5_OSSTECH
ユーザー/グループ アカウント管理ツール(OpenLDAPの使用が前提) ** SSL Bridge: sslbridge_1.5.osstech.20070201
WWW経由ファイルサーバーアクセスソフトウェア ** Apache: httpd-2.0.52-32.2.ent.centosWWW サーバーソフトウェア * 認証サーバー環境 ** Openldp: openldap-2.3.32-5.1_OSSTECH認証サーバー/クライアント ソフトウェア * 時刻同期クライアント環境 ** ntp: ntp-4.2.0.a.20040617-6.el4ネットワークプロトコル * メール転送環境 ** Postfix: postfix-2.2.10-1.1.el4MTA ソフトウェア * スクリプト言語エンジン ** PHP: php-5.1.6-3.el4s1.7 Samba, SSL Bridge, OpenLDAP, は CentOS4.5 外のソフトウェアパッケージとなります。= Linux システム環境の構築 = この節では、Linux (CentOS4.5) インストール時に行なった設定や、インストール後に変更した設定を記述してあります。ホスト名と IP アドレス以外は fsvr-p と fsvr-b で同じ設定となっています。 == 基本設定 == * デフォルトの言語、エンコーディング: 日本語 UTF-8 (ja_JP.UTF-8) * キーボード: 日本語 106 キーボード * タイムゾーン: アジア/東京 * ブートローダー: GRUB (MBR にインストール, パスワードなし) * インストールパッケージ: 最小パッケージ(OSインストール後に必須パッケージをインストール) * SELinux: 無効 * ファイアウォール: 無効 * rootパスワード: victor0622 (弊社作業終了後、お客様にて変更実施をしてください) == ストレージ構成 == マウント場所容量デバイス種類 /boot100MB/dev/sda1ext3 swap2GB/dev/sda2 swap /135GB/dev/sda3 ext3 diskdump2GB/dev/sda5 diskdump /PDC600GB/dev/sdbext3 /BDC600GB/dev/sdbext3 == ネットワーク設定 == * fsvr-p, fsvr-b 共通設定 ** デフォルトゲートウェイ: 136.198.200.254 ** DNSサーバー: 136.198.200.100, 136.198.200.200 ** SMTP サーバー: 136.198.200.100 ** NTP サーバー: ntp.krhm.jvc-victor.co.jp * fsvr-p * ホスト名: fsvr-p.krhm.jvc-victor.co.jpIP アドレス/ネットマスク: *** 136.198.200.50/24 (eth0) *** 192.168.200.50/24 (eth1) * fsvr-b ** ホスト名: fsvr-b.krhm.jvc-victor.co.jp ** IP アドレス/ネットマスク: *** 136.198.200.51/24 (eth0) *** 192.168.200.51/24 (eth1) == 不要サービスの停止 == デフォルトで有効になっているサービスのうち以下のサービスを起動しないように設定しました。 * cups: CUPS (Common UNIX Printing System) * cups-config-daemon: CUPS 設定デーモン * hpoj: HP OfficeJet (HP 製の複合機) 用サービス * isdn: ISDN サービス * nfslock: NFS ロックデーモン * pcmcia: PC カードサービス * portmap: RPC ポートマッパー * rpcgssd: RPC Sec-GSS クライアントデーモン * rpcidmapd :NFSv4 ID マップデーモン * rpcsvcgssd :RPC Sec-GSS サーバーデーモン * telnet: Telnet サービス == パッケージの更新 == 現地作業日の時点 (2007年7月10日) に公開されていた更新パッケージを適用しました。 == メールクライアント環境の設定 == OS ローカル環境から発信されるメールが配送されるように MTA ソフトウェア Postfix をメールクライアントとして設定しました。 === Postfix 環境の構成 === * ソフトウェア構成 ** postfix-2.2.10-1.1.el4MTA ソフトウェア * 役割り ** システムサービスからの送信メールを特定アドレスに配送する。 * 受信 / リレー制限 ** 外部からのメール受信は一切しない。(SMTP ポートは localhost のみ) * 配送ルール ** すべてのメールを postmaster@krhm.jvc-victor.co.jp宛に配送 === Postfix の設定 === Postfix を設定します。対象となる設定ファイルは以下の通りです。設定内容は最終章を参照のこと。 * /etc/postfix/main.cfPostfix メイン設定ファイル * /etc/postfix/aliases.regexp
正規表現版aliase設定ファイル(/etc/aliases以外の設定) * /etc/aliases
aliase設定ファイル
上記以外の設定ファイルは変更せずデフォルトのままになっています。 === Postfix の起動 === システム標準の MTA を Postfix に変更します。 # alternatives --set mta /usr/sbin/sendmail.postfix Postfix のデーモンプロセス を起動します。 # service postfix start OS ブート時に Postfix が自動起動されるよう設定します。 # chkconfig postfix on = 認証サーバー環境の構築 (OpenLDAP) = 以下、特に明示しない限り、fsvr-p と fsvr-b で同じ手順を実施します。 == 認証サーバー環境の構成 == * サーバー構成 ** マスターサーバー (アクティブ): *** fsvr-p.krhm.jvc-victor.co.jp ** スレーブサーバー (アクティブ): *** fsvr-b.krhm.jvc-victor.co.jp * マスターからスレーブへ情報複製 ** 複製方法にはsyncrepl方法を使用 * 管理者パスワード ** /etc/openldap/slapd.confにてrootpwとして設定できるが、今回はLDAPのデータベース内にて管理します。(設定時にはrootpwとしての記載が必要) == 認証サーバーの設定 == 認証サーバー openldapを設定します。対象となる設定ファイルは以下の通りです。設定内容は最終章を参照のこと。 * /etc/openldap/slapd.conf ** 認証サーバー (openldap) の設定ファイル * /etc/openldap/ldap.conf ** ldapクライアントとしての設定ファイル * /etc/ldap.conf ** ldapクライアントとしての設定ファイル(nss_ldap用) * /etc/nsswitch.conf ** システムデータベースとネームサービススイッチの設定ファイル * /etc/pam.d/system-auth ** PAM認証設定ファイル === 設定手順 === 以下に設定ファイルを配置した後の設定手順を明記しております。 * * ユーザ認証の設定 # authconfig 以下のようにLDAPを使用する設定にチェックを入れます。 ユーザー情報 認証 [*] LDAP を使用 [*] LDAP 認証を使用 次にIPアドレス、suffixを設定します。 サーバー: 136.198.200.50 136.198.200.51 ベース DN: o=JVC スレーブサーバー(fsvr-b)ではIPアドレスを以下の順にします。 サーバー: 136.198.200.51 136.198.200.50 authconfigコマンドを実行すると先の/etc/openldap/ldap.conf,/etc/ldap.conf,/etc/nsswitch.conf,/etc/pam.d/system-authが変更対象となります。よって実行する際には注意ください。 以上で認証サーバーの下準備は終了です。 ファイルサーバー認証サーバーの管理 (openldap) == サーバー構成 == ホストとディレクトリの構成、主なファイルを示します。 * マスター : ** ldap1.kaetsu.ac.jp (以下、「ldap1」) * スレーブ : ** ldap2.kaetsu.ac.jp (以下、「ldap2」) * ディレクトリ: ** 設定ファイル: *** /etc/openldap/slapd.conf *** /etc/openldap/ldap.conf *** /etc/ldap.conf ** dbファイル格納先: /var/lib/ldap以下 ** 一時ファイル(PID)格納先: /var/run/openldap 以下 == 認証 サーバー設定の変更 == 設定ファイルは /etc/openldap/slapd.confなので、これに変更を加えることになります。(運用面にてopenldapの設定ファイルを変更しなければならなくなるようなことは通常ございません) '''設定ファイルをエディタで変更''' # vi /etc/openldap/slapd.conf 変更を実施しましたら、サーバープロセス制御スクリプト/etc/init.d/ldapを利用して、デーモンの開始・停止・再起動・設定の再読み込みが可能です。以下のコマンドにてサーバープロセスに変更を反映します。 '''サーバープロセスに設定ファイルの変更を反映''' # service ldap restart もしくは # /etc/init.d/ldap restart == 認証サーバーのバックアップ == LDAP情報のバックアップはmomoにて毎日23:30にldapsearchコマンドにてLDIFを作成しております(保存場所はmomo:/home/ldap_backup)。スクリプトの内容は別文書の作業報告書を参照のこと。 == 認証サーバーの復旧方法 == 認証サーバーのデータは/var/lib/ldapにdbファイルとして保存されています。しかし、利用の仕方によってはこのデータは壊れてしまうことがございます。壊れてしまった場合はマスター、スレーブそれぞれ以下の方法で復旧させてください。 === スレーブ側の復旧 === スレーブ側のサーバーに障害が発生し、再度LDAPデータを再同期させるには以下の手順を実施してください。 # service ldap stop # rm -f /var/lib/ldap/* # scp ldap2:/var/lib/ldap/DB_CONFIG /var/lib/ldap/. # service ldap start 手順としては以上となります(DB_CONFIGについてはコピーではなく、別文書の作業報告書を元に作成してもかまいません)。データが正常に複製されているかどうかは以下のコマンドマスター、スレーブそれぞれの情報を取得しデータの比較をしてください。 # ldapsearch -x -w xxxxx => パスワードなので伏せています -D "cn=Manager, dc=kaetsu, dc=ac, dc=jp" -h 172.20.1.21 -LLL > master.ldif # ldapsearch -x -w xxxxx => パスワードなので伏せています -D "cn=Manager, dc=kaetsu, dc=ac, dc=jp" -h 172.20.1.22 -LLL > slave.ldif # diff -u master.ldif slave.ldif スレーブへ全て反映されるのには少々時間がかかります(貴学の情報量は多い為)。 === マスター側の復旧 === マスター側のサーバーに障害が発生した場合の復旧手順は以下となります。 # service ldap stop # rm -f /var/lib/ldap/* # scp ldap2:/var/lib/ldap/DB_CONFIG /var/lib/ldap/. # ldapadd -x -w xxxxx => パスワードなので伏せています -D "cn=Manager, dc=kaetsu, dc=ac, dc=jp" -f LDIFファイル # service ldap start ここで登録するLDIFファイルは、バックアップしているLDIFファイル(momo:/home/ldap_backup/日付.ldif)、動作中であるスレーブサーバーのデータファイルどちらでも構いません。新しい方をご利用ください。 マスター側が再構築し終わりましたら、念のため、スレーブ側も 2.3.1スレーブ側の復旧 の手順通り、再構築を実施してください。 環境管理の構築(samba)fsvr-pとfsvr-b は相互にアクティブ (正常系) とスタンバイ (待機系) の関係とし、フェイルオーバー時はいずれかのホストで 2 つのファイルサーバープロセスが同時に稼動するため、これを考慮した構成になっています。 以下、特に明示しない限り、fsvr-p と fsvr-b で同じ手順を実施します。また、OpenLDAPとの連携を考慮し、smbldap-toolsの設定についてもここで同様に記載します。サーバー構成 ホストとディレクトリの構成、主なファイルを示します。 * PDC : ** ume.kaetsu.ac.jp (以下、「ume」) * BDC : ** sakura.kaetsu.ac.jp (以下、「sakura」) ** momo.kaetsu.ac.jp (以下、「momo」) * ディレクトリ: ** 設定ファイル: *** /etc/samba/smb.conf *** /etc/smbldap-tools/smbldap.conf *** /etc/smbldap-tools/smbldap_bind.conf ** ログファイル格納先: /var/log/samba以下 ** 一時ファイル格納先: /var/cache/samba以下 ** 一時ファイル(PID)格納先: /var/run 以下 == ファイルサーバー設定の変更 == 設定ファイルは /etc/samba/smb.confなので、これに変更を加えることになります。 '''設定ファイルをエディタで変更''' # vi /etc/samba/smb.conf 変更を実施しましたら、サーバープロセス制御スクリプト/etc/init.d/smbd を利用して、デーモンの開始・停止・再起動・設定の再読み込みが可能です。以下のコマンドにてサーバープロセスに変更を反映します。 '''サーバープロセスに設定ファイルの変更を反映''' # service smb restart もしくは # /etc/init.d/smbd restart == ファイルサーバー設定の変更での注意点 == === アクセス制御を考慮した共有作成 === '''例:umeの共有 smb.confより''' [a] path = /home/a read only = No hosts deny = 172.21.0.0/255.255.0.0 browseable = No root preexec = /opt/osstech/sbin/mkdir_trash.sh "%P/.trash" vfs objects = recycle recycle:repository = .trash/%u recycle:keeptree = yes recycle:versions = yes 共有へのアクセスをセグメントごとに制御する為に以下を設定します。 hosts deny = 172.21.0.0/255.255.0.0 この場合、172.21.0.0/255.255.0.0 のセグメントからこの共有へはアクセスすることができません。しかし実際にアクセスを試みると、ユーザー/パスワードを入力するダイアログが出続けてしまいます(「アクセスできません」とはならない点に注意)。よって、 browseable = No を設定することでフルパスを指定しない限り、この共有へアクセスできないようにしておきます。 === ごみ箱機能を考慮した共有作成 === '''例:umeの共有 smb.confより''' [a] path = /home/a read only = No hosts deny = 172.21.0.0/255.255.0.0 browseable = No root preexec = /opt/osstech/sbin/mkdir_trash.sh "%P/.trash" vfs objects = recycle recycle:repository = .trash/%u recycle:keeptree = yes recycle:versions = yes ごみ箱機能を使用する共有の場合は以下の設定を行います。 root preexec = /opt/osstech/sbin/mkdir_trash.sh "%P/.trash" vfs objects = recycle recycle:repository = .trash/%u recycle:keeptree = yes recycle:versions = yes ごみ箱機能は共有内で、あるユーザーがファイルやディレクトリ削除した場合に、 recycle:repository = .trash/%u で指定されたフォルダを作成します。この場合、 /home/a/.trash/削除を実施したユーザー名 というディレクトリを作成することとなります。しかし、この自動で作成される.trashの権限は drwx------ .trash となり、最初にディレクトリを作成したユーザー(最初に削除を行ったユーザー)しか書き込み出来なくなってしまい別のユーザーが削除してもファイルが保存されません。そこで、以下によって共有へアクセスした際に自動に.trashを作成し、かつ権限も付与するスクリプトを呼び出すことで対応しております。 スクリプトの内容は別文書の作業報告書を参照のこと。 root preexec = /opt/osstech/sbin/mkdir_trash.sh "%P/.trash" ごみ箱機能を使用する共有では必ず5つのパラメータをセットで設定してください。 ファイルサーバー環境の構成サーバー構成 * ** プライマリサーバー (アクティブ)、 バックアップサーバー (スタンバイ): *** fsvr-p.krhm.jvc-victor.co.jp ** バックアップサーバー (アクティブ)、プライマリサーバー (スタンバイ): *** fsvr-b.krhm.jvc-victor.co.jp *** 相互にMF-DFS Proxyを使用 *** ユーザーはどちらのサーバへアクセスしても見える共有は同じにする * ディレクトリ構成 ** プライマリサーバー: fsvr-p (/etc/samba以下)、fsvr-b (/etc/samba-PDC以下) セカンダリサーバー: fsvr-p (/etc/samba-BDC以下)、fsvr-b (/etc/samba以下)== ファイル サーバーのクラスタ対応ディレクトリ構成の作成 == RHEL4 のbindbindパッケージに含まれるディレクトリ構成とファイルを利用して /etc/samba-''?'' 以下にクラスタ化 ファイル サーバー環境を構築しました。 === sambaのディレクトリとファイルのコピー === sambaにて必要なディレクトリを用意します。 # mkdir -p /etc/samba-p?/cache # mkdir -p /etc/samba-p?/log # mkdir -p /etc/samba-p?/run 次にフェイルオーバー時にスタンバイ系を動作させる際、元々スタンバイ側で公開していた共有を読み取り専用とするために、smb.''?.''conf.templateを用意します。設定内容は最終章を参照のこと。 === クラスタ環境用の ファイルサーバー関連のスクリプトの作成 === スタンバイ系をフェイルオーバーさせ、アクティブ系にてデーモン類を動作させるためのスクリプトをを作成します。スクリプトの内容は最終章を参照のこと。 * /root/victor/script/samba_setup.sh ** クラスタ環境用の ファイルサーバー (samba) の制御スクリプト ファイルサーバーの設定 ファイルサーバー samba とユーザー/グループ アカウント管理ツール smbldap-toolsを設定します。対象となる設定ファイルは以下の通りです。設定内容は最終章を参照のこと。 * /etc/samba/smb.conf ** ファイルサーバー (samba) の設定ファイル * /etc/samba-''?''/smb.''?''.conf.template ** フェイルオーバー時用のファイルサーバー (samba) の基本設定ファイル * /etc/smbldap-tools/smbldap.conf ** ユーザー/グループ アカウント管理ツール (smbldap-tools) の設定ファイル * /etc/smbldap-tools/smbldap_bind.conf ** Openldapへのbindするユーザー/パスワード の設定ファイル === 設定手順 === 以下に設定ファイルを配置した後の設定手順を明記しております。 * ドメインSIDの確認 ドメインSIDはまずプライマリー(fsvr-p)にて確認、設定をします。 # net getlocalsid この時点ではLDAPが起動していない為、以下のエラーが表示されます。 Can't contact LDAP serverしばらくすると以下のようにドメインのSIDが表示されます。 SID for domain fsvr-p is: S-1-5-21-3433702215-4077640748-2776752685これで、プライマリーのSIDはS-1-5-21-3433702215-4077640748-2776752685と決定しました。 fsvr-bでは、このSID値を設定します。これにより、プライマリー、バックアップ共に同じドメインSIDを持つこととなります。(以下はfsvr-bにて実施) # net setlocalsid S-1-5-21-3433702215-4077640748-2776752685 設定後、以下のコマンドにてドメインSIDが設定されているか確認します。 # net getlocalsid * samba経由でのLDAPへアクセス設定 # smbpasswd -w secret (smb.confの「ldap admin dn」指定ユーザーのパスワード)  => お客様にて後日変更してください * samba兼openldapの初期登録 # service ldap start # smbldap-populate -a Administrator -b Guest -l 998 -m 512 * ドメイン管理者のパスワード設定 # smbldap-passwd Administrator osstech  => お客様にて後日変更してください * LDIFの追加登録(LDAP管理者、複製者の登録) add.ldifというファイルを以下の内容で作成 dn: cn=Directory Administrators,o=JVC objectClass: person cn: Directory Administrators sn: Directory Administrators description: LDAP administrator userPassword: {SSHA}nSGIoWxqiSa+e6Vft9AxCHTFDK3gphv5 dn: cn=replica,o=JVC objectClass: person cn: replica sn: replica description: LDAP replication user userPassword: {SSHA}nSGIoWxqiSa+e6Vft9AxCHTFDK3gphv5 dn: ou=Special Users,o=JVC objectClass: top objectClass: organizationalUnit ou: Special Users ここで userPassword: {SSHA}nSGIoWxqiSa+e6Vft9AxCHTFDK3gphv5 はハッシュしたパスワードとなります。ハッシュパスワードについては以下のコマンドより生成してください。 # slappasswd -s secret (デフォルトのフォーマットがSSHAとなっております) 用意したファイルを以下のコマンドでLDAPのデータベース内に登録します。 # ldapadd -x -w secret -D “cn=Directory Administrators,o=JVC” -f add.ldif これにて、マスター側の/etc/openldap/slapd.confよりrootpwの行を削除してください。削除後、一度ldapを再起動します。 * samba、openldapの起動 # service ldap restart # service smb restart また、OS起動時にプロセスが起動する為、以下を実行します。 # chkconfig ldap on # chkconfig smb on == アクセスされていないファイルリスト作成スクリプト == 指定日以上アクセスされていないファイルリストを作成するスクリプトを作成します。スクリプトの内容は最終章を参照のこと。 現在の設定は以下となっております。こちらについては今後の変更が可能となっております。 oldday=29 PDC_Retrieval_object=PDC BDC_Retrieval_object=BDC PDC_list=PDC/oldlist-$(date +'%Y%m%d') BDC_list=BDC/oldlist-$(date +'%Y%m%d') oldday=29 は30日以前に修正されたファイルが検索対象であるという設定です。 PDC_Retrieval_object=PDC はfsvr-pでの検索対象のディレクトリを設定しています。 BDC_Retrieval_object=BDC はfsvr-bでの検索対象のディレクトリを設定しています。 PDC_list=PDC/oldlist-$(date +'%Y%m%d') はfsvr-pでのファイルリストの保存名、場所となります。 BDC_list=BDC/oldlist-$(date +'%Y%m%d') はfsvr-bでのファイルリストの保存名、場所となります = WWW経由ファイルサーバー環境の構築 (SSLBridge) = 以下、特に明示しない限り、fsvr-p と fsvr-b で同じ手順を実施します。 == WWW経由ファイルサーバーの設定 == WWW経由ファイルサーバー SSLBridgeとWWW サーバー httpdを設定します。対象となる設定ファイルは以下の通りです。設定内容は最終章を参照のこと。 * /var/www/html/smb/以下 * ** WWW 経由サーバー (SSLBridge) の設定ファイル(すべてデフォルト) * /etc/httpd/conf/httpd.conf ** WWW サーバー (httpd) の設定ファイル === 設定手順 === 以下に設定ファイルを配置した後の設定手順を明記しております。 * SSLBridgeのインストール、諸設定 # cd /var/www/html # tar xfz /root/victor/rpm/sslbridge_1.5.osstech.20070111.tar.gz # # mv sslbridge_1.5.osstech smb # chown -R apache:apache smb # mv /var/www/html/smb/config.php /var/www/html/smb/config.php.orig # chmod 4755 /usr/bin/smbmnt # chmod 4755 /usr/bin/smbumount * httpdの起動 # service httpd start また、OS起動時にプロセスが起動する為、以下を実行します。 # chkconfig httpd on 注意点として、SSLBridgeはMS-DFSに対応しておりません。よってfsvr-pにアクセスしている状態からfsvr-bの共有にはアクセスできません。 ご了承ください。 = 各種設定ファイル = 2007年7月10日時点の内容を掲載します。コメント類のいくつかは省略してあります。 == fsvr-p.krhm.jvc-victor.co.jp, fsvr-b.krhm.jvc-victor.co.jp 共通 == === /etc/smbldap-tools/smbldap_bind.conf === slaveDN="cn=Directory Administrators,o=JVC" slavePw="secret"=> お客様にて後日変更してください masterDN="cn=Directory Administrators,o=JVC" masterPw="secret"=> お客様にて後日変更してください === /etc/nsswitch.conf === passwd: files ldap shadow: files ldap group: files ldap hosts: files dns bootparams: files ethers: files netmasks: files networks: files protocols: files ldap rpc: files services: files ldap netgroup: files ldap publickey: files automount: files ldap aliases: files === /etc/pam.d/system-auth === auth required /lib/security/$ISA/pam_env.so auth sufficient /lib/security/$ISA/pam_unix.so likeauth nullok auth sufficient /lib/security/$ISA/pam_ldap.so use_first_pass auth required /lib/security/$ISA/pam_deny.so account required /lib/security/$ISA/pam_unix.so broken_shadow account sufficient /lib/security/$ISA/pam_succeed_if.so uid < 100 quiet account [default=bad success=ok user_unknown=ignore] /lib/security/$ISA/pam_ldap.so account required /lib/security/$ISA/pam_permit.so password requisite /lib/security/$ISA/pam_cracklib.so retry=3 password sufficient /lib/security/$ISA/pam_unix.so nullok use_authtok md5 shadow password sufficient /lib/security/$ISA/pam_ldap.so use_authtok password required /lib/security/$ISA/pam_deny.so session required /lib/security/$ISA/pam_limits.so session required /lib/security/$ISA/pam_unix.so session optional /lib/security/$ISA/pam_ldap.so === /etc/httpd/conf/httpd.conf === ServerTokens OS ServerRoot "/etc/httpd" PidFile run/httpd.pid Timeout 120 KeepAlive Off MaxKeepAliveRequests 100 KeepAliveTimeout 15 StartServers 8 MinSpareServers 5 MaxSpareServers 20 ServerLimit 256 MaxClients 256 MaxRequestsPerChild 4000 StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0 #Listen 80 LoadModule access_module modules/mod_access.so LoadModule auth_module modules/mod_auth.so LoadModule auth_anon_module modules/mod_auth_anon.so LoadModule auth_dbm_module modules/mod_auth_dbm.so LoadModule auth_digest_module modules/mod_auth_digest.so LoadModule ldap_module modules/mod_ldap.so LoadModule auth_ldap_module modules/mod_auth_ldap.so LoadModule include_module modules/mod_include.so LoadModule log_config_module modules/mod_log_config.so LoadModule env_module modules/mod_env.so LoadModule mime_magic_module modules/mod_mime_magic.so LoadModule cern_meta_module modules/mod_cern_meta.so LoadModule expires_module modules/mod_expires.so LoadModule deflate_module modules/mod_deflate.so LoadModule headers_module modules/mod_headers.so LoadModule usertrack_module modules/mod_usertrack.so LoadModule setenvif_module modules/mod_setenvif.so LoadModule mime_module modules/mod_mime.so LoadModule dav_module modules/mod_dav.so LoadModule status_module modules/mod_status.so LoadModule autoindex_module modules/mod_autoindex.so LoadModule asis_module modules/mod_asis.so LoadModule info_module modules/mod_info.so LoadModule dav_fs_module modules/mod_dav_fs.so LoadModule vhost_alias_module modules/mod_vhost_alias.so LoadModule negotiation_module modules/mod_negotiation.so LoadModule dir_module modules/mod_dir.so LoadModule imap_module modules/mod_imap.so LoadModule actions_module modules/mod_actions.so LoadModule speling_module modules/mod_speling.so LoadModule userdir_module modules/mod_userdir.so LoadModule alias_module modules/mod_alias.so LoadModule rewrite_module modules/mod_rewrite.so LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ftp_module modules/mod_proxy_ftp.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule cache_module modules/mod_cache.so LoadModule suexec_module modules/mod_suexec.so LoadModule disk_cache_module modules/mod_disk_cache.so LoadModule file_cache_module modules/mod_file_cache.so LoadModule mem_cache_module modules/mod_mem_cache.so LoadModule cgi_module modules/mod_cgi.so Include conf.d/*.conf User apache Group apache ServerAdmin root@localhost UseCanonicalName Off DocumentRoot "/var/www/html" Options FollowSymLinks AllowOverride None Options Indexes FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 10.33.0.0/16 136.198.150.0/24 10.52.3.0/24 UserDir disable DirectoryIndex index.html index.html.var AccessFileName .htaccess Order allow,deny Deny from all TypesConfig /etc/mime.types DefaultType text/plain MIMEMagicFile conf/magic HostnameLookups Off ErrorLog logs/error_log LogLevel warn LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent CustomLog logs/access_log combined ServerSignature On Alias /icons/ "/var/www/icons/" Options Indexes MultiViews AllowOverride None Order allow,deny Allow from all DAVLockDB /var/lib/dav/lockdb ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" AllowOverride None Options None Order allow,deny Allow from all IndexOptions FancyIndexing VersionSort NameWidth=* AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip AddIconByType (TXT,/icons/text.gif) text/* AddIconByType (IMG,/icons/image2.gif) image/* AddIconByType (SND,/icons/sound2.gif) audio/* AddIconByType (VID,/icons/movie.gif) video/* AddIcon /icons/binary.gif .bin .exe AddIcon /icons/binhex.gif .hqx AddIcon /icons/tar.gif .tar AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip AddIcon /icons/a.gif .ps .ai .eps AddIcon /icons/layout.gif .html .shtml .htm .pdf AddIcon /icons/text.gif .txt AddIcon /icons/c.gif .c AddIcon /icons/p.gif .pl .py AddIcon /icons/f.gif .for AddIcon /icons/dvi.gif .dvi AddIcon /icons/uuencoded.gif .uu AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl AddIcon /icons/tex.gif .tex AddIcon /icons/bomb.gif core AddIcon /icons/back.gif .. AddIcon /icons/hand.right.gif README AddIcon /icons/folder.gif ^^DIRECTORY^^ AddIcon /icons/blank.gif ^^BLANKICON^^ DefaultIcon /icons/unknown.gif ReadmeName README.html HeaderName HEADER.html AddLanguage ca .ca AddLanguage cs .cz .cs AddLanguage da .dk AddLanguage de .de AddLanguage el .el AddLanguage en .en AddLanguage eo .eo AddLanguage es .es AddLanguage et .et AddLanguage fr .fr AddLanguage he .he AddLanguage hr .hr AddLanguage it .it AddLanguage ja .ja AddLanguage ko .ko AddLanguage ltz .ltz AddLanguage nl .nl AddLanguage nn .nn AddLanguage no .no AddLanguage pl .po AddLanguage pt .pt AddLanguage pt-BR .pt-br AddLanguage ru .ru AddLanguage sv .sv AddLanguage zh-CN .zh-cn AddLanguage zh-TW .zh-tw LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt \ pt-BR ru sv zh-CN zh-TW ForceLanguagePriority Prefer Fallback AddDefaultCharset UTF-8 AddCharset ISO-8859-1 .iso8859-1 .latin1 AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen AddCharset ISO-8859-3 .iso8859-3 .latin3 AddCharset ISO-8859-4 .iso8859-4 .latin4 AddCharset ISO-8859-5 .iso8859-5 .latin5 .cyr .iso-ru AddCharset ISO-8859-6 .iso8859-6 .latin6 .arb AddCharset ISO-8859-7 .iso8859-7 .latin7 .grk AddCharset ISO-8859-8 .iso8859-8 .latin8 .heb AddCharset ISO-8859-9 .iso8859-9 .latin9 .trk AddCharset ISO-2022-JP .iso2022-jp .jis AddCharset ISO-2022-KR .iso2022-kr .kis AddCharset ISO-2022-CN .iso2022-cn .cis AddCharset Big5 .Big5 .big5 AddCharset WINDOWS-1251 .cp-1251 .win-1251 AddCharset CP866 .cp866 AddCharset KOI8-r .koi8-r .koi8-ru AddCharset KOI8-ru .koi8-uk .ua AddCharset ISO-10646-UCS-2 .ucs2 AddCharset ISO-10646-UCS-4 .ucs4 AddCharset UTF-8 .utf8 AddCharset GB2312 .gb2312 .gb AddCharset utf-7 .utf7 AddCharset utf-8 .utf8 AddCharset big5 .big5 .b5 AddCharset EUC-TW .euc-tw AddCharset EUC-JP .euc-jp AddCharset EUC-KR .euc-kr AddCharset shift_jis .sjis AddType application/x-compress .Z AddType application/x-gzip .gz .tgz AddHandler imap-file map AddHandler type-map var AddType text/html .shtml AddOutputFilter INCLUDES .shtml Alias /error/ "/var/www/error/" AllowOverride None Options IncludesNoExec AddOutputFilter Includes html AddHandler type-map var Order allow,deny Allow from all LanguagePriority en es de fr ForceLanguagePriority Prefer Fallback BrowserMatch "Mozilla/2" nokeepalive BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0 BrowserMatch "RealPlayer 4\.0" force-response-1.0 BrowserMatch "Java/1\.0" force-response-1.0 BrowserMatch "JDK/1\.0" force-response-1.0 BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully BrowserMatch "^WebDrive" redirect-carefully BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully BrowserMatch "^gnome-vfs" redirect-carefully === /etc/rsyncd.pass === backup === /etc/rsyncd.secrets === backup:backup === /etc/ntp.conf === restrict default nomodify notrap noquery restrict 127.0.0.1 server ntp.krhm.jvc-victor.co.jp fudge 127.127.1.0 stratum 10 driftfile /var/lib/ntp/drift broadcastdelay 0.008 keys /etc/ntp/keys === /etc/postfix/main.cf === queue_directory = /var/spool/postfix command_directory = /usr/sbin daemon_directory = /usr/libexec/postfix mail_owner = postfix inet_interfaces = localhost mydestination = $myhostname, localhost.$mydomain, localhost unknown_local_recipient_reject_code = 550 relayhost = [136.198.200.100] alias_maps = hash:/etc/aliases regexp:$config_directory/aliases.regexp alias_database = hash:/etc/aliases debug_peer_level = 2 debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin xxgdb $daemon_directory/$process_name $process_id & sleep 5 sendmail_path = /usr/sbin/sendmail.postfix newaliases_path = /usr/bin/newaliases.postfix mailq_path = /usr/bin/mailq.postfix setgid_group = postdrop html_directory = no manpage_directory = /usr/share/man sample_directory = /usr/share/doc/postfix-2.2.10/samples readme_directory = /usr/share/doc/postfix-2.2.10/README_FILES === /etc/postfix/aliases.regexp === /.*/ root === /etc/aliases === mailer-daemon: postmaster postmaster: root bin: root daemon: root adm: root lp: root sync: root shutdown: root halt: root mail: root news: root uucp: root operator: root games: root gopher: root ftp: root nobody: root radiusd: root nut: root dbus: root vcsa: root canna: root wnn: root rpm: root nscd: root pcap: root apache: root webalizer: root dovecot: root fax: root quagga: root radvd: root pvm: root amanda: root privoxy: root ident: root named: root xfs: root gdm: root mailnull: root postgres: root sshd: root smmsp: root postfix: root netdump: root ldap: root squid: root ntp: root mysql: root desktop: root rpcuser: root rpc: root nfsnobody: root ingres: root system: root toor: root manager: root dumper: root abuse: root mailman: postmaster mailman-owner: mailman newsadm: news newsadmin: news usenet: news ftpadm: ftp ftpadmin: ftp ftp-adm: ftp ftp-admin: ftp www: webmaster webmaster: root noc: root security: root hostmaster: root info: postmaster marketing: postmaster sales: postmaster support: postmaster decode: root root: postmaster@krhm.jvc-victor.co.jp === /root/victor/scripts/file-list.sh === #!/bin/sh #30日以前に修正されたファイルの検索 oldday=29 PDC_Retrieval_object=PDC BDC_Retrieval_object=BDC PDC_list=PDC/oldlist-$(date +'%Y%m%d') BDC_list=BDC/oldlist-$(date +'%Y%m%d') _br() { echo "" } _line() { echo "---------------------------" $* "------------------------------" } _prompt() { echo -n $1" > " sleep 1 read $2 _br } _tab() { echo -e \\t$* } _info() { echo "[INFO]: "$* } _warn() { echo "[WARN]: "$* } _error() { sleep 1 echo "[ERROR]: "$* exit 1 } BDC_search() { sleep 1 _info "BDC-oldfile-search" _br _line "start search" /usr/bin/find /$BDC_Retrieval_object -type f -mtime +$oldday -print > /$BDC_list if [ ! -s /$BDC_list ];then rm -f /$BDC_list _br _br _info "BDC-oldfile not found" else _br _br _info "BDC-oldfile found" fi _br } PDC_search() { sleep 1 _info "PDC-oldfile-search" _br _line "start search" /usr/bin/find /$PDC_Retrieval_object -type f -mtime +$oldday -print > /$PDC_list if [ ! -s /$PDC_list ];then rm -f /$PDC_list _br _br _info "PDC-oldfile not found" else _br _br _info "PDC-oldfile found" fi _br } back_to_menu() { _prompt "Back to the Start menu [Y/N]:(N)" "in08" _br if [ "$in08" = "Y" -o "$in08" = "y" -o "$in08" = "Yes" -o "$in08" = "YES" ];then start_menu else exit 0 fi } start_menu() { clear _br echo " 1. PDC old-filelist (Execute on fsvr-p) " echo " 2. BDC old-filelist (Execute on fsvr-b) " _br _prompt "Select:(Q)" "in09" case $in09 in 1) PDC_search back_to_menu ;; 2) BDC_search back_to_menu ;; Q) ;; q) ;; *) ;; esac exit 0 } if [ `/usr/bin/id -u` -ne 0 ];then _error 'You must become a super user' fi start_menu === /root/victor/scripts/samba_setup.sh === #!/bin/sh _br() { echo "" } _line() { echo "---------------------------" $* "------------------------------" } _prompt() { echo -n $1" > " sleep 1 read $2 _br } _tab() { echo -e \\t$* } _info() { echo "[INFO]: "$* } _warn() { echo "[WARN]: "$* } _error() { sleep 1 echo "[ERROR]: "$* exit 1 } stop_process() { if [ `ps -ef | grep 'smbd -D -s' | grep -v 'grep' | wc -l` -gt 0 ];then _tab "Some smbd processes are running..." _line "stop processes" _br fi while [ `ps -ef | grep 'smbd -D -s' | grep -v 'grep' | wc -l` -gt 0 ]; do kill -15 `ps -ef | grep "smbd -D -s" | grep -v grep | \ awk '{ print $2 }'` 2> /dev/null done if [ `ps -ef | grep 'nmbd -D -s' | grep -v 'grep' | wc -l` -gt 0 ];then _tab "Some nmbd processes are running..." _line "stop processes" fi _br while [ `ps -ef | grep 'nmbd -D -s' | grep -v 'grep' | wc -l` -gt 0 ];do kill -9 `ps -ef | grep "nmbd -D -s" | grep -v grep | \ awk '{ print $2 }'` 2> /dev/null done } stop_ipaddress() { if [ ` ifconfig eth0:0 | grep -c "inet addr" ` -ne 0 ]; then _tab "IP-Alias is running..." _line "stop IP-Alias" ifdown eth0:0 fi } BDC_start_ipaddress() { if [ ` ifconfig eth0:0 | grep -c "inet addr" ` -eq 0 ]; then _tab "Start-up IP-Alias" _line "start IP-Alias" ifup eth0:0 fi } PDC_start_ipaddress() { if [ ` ifconfig eth0:0 | grep -c "inet addr" ` -eq 0 ]; then _tab "Start-up IP-Alias" _line "start IP-Alias" ifup eth0:0 fi } BDC_file_substitution() { if [ ! -s /etc/samba-BDC/smb.BDC.conf.template ];then _error "/etc/samba-BDC/smb.BDC.conf.template uot found" _br fi list=$(grep "\[" /etc/samba-BDC/smb.conf | grep -v "\[global\]") cat /etc/samba-BDC/smb.BDC.conf.template > /etc/samba-BDC/smb.BDC.conf for name in $list do echo $name >> /etc/samba-BDC/smb.BDC.conf echo " read only = yes" >> /etc/samba-BDC/smb.BDC.conf done } BDC_check_file() { _line "/etc/samba-BDC/smb.conf check" if [ -s /etc/samba-BDC/smb.conf ];then _info "Check the BDC smb.conf" sleep 1 BDC_file_substitution sleep 1 _br else _error "/etc/samba-BDC/smb.conf uot found" _br fi } PDC_file_substitution() { if [ ! -s /etc/samba-PDC/smb.PDC.conf.template ];then _error "/etc/samba-PDC/smb.PDC.conf.template uot found" _br fi list=$(grep "\[" /etc/samba-PDC/smb.conf | grep -v "\[global\]") cat /etc/samba-PDC/smb.PDC.conf.template > /etc/samba-PDC/smb.PDC.conf for name in $list do echo $name >> /etc/samba-PDC/smb.PDC.conf echo " read only = yes" >> /etc/samba-PDC/smb.PDC.conf done } PDC_check_file() { _line "/etc/samba-PDC/smb.conf check" if [ -s /etc/samba-PDC/smb.conf ];then _info "Check the PDC smb.conf" sleep 1 PDC_file_substitution sleep 1 _br else _error "/etc/samba-PDC/smb.conf uot found" _br fi } BDC_start_process() { sleep 1 _info "Start-up_samba-BDC smbd, nmbd processes" _br _line "start processes" /usr/sbin/smbd -D -s /etc/samba-BDC/smb.conf /usr/sbin/nmbd -D -s /etc/samba-BDC/smb.conf _br } PDC_start_process() { sleep 1 _info "Start-up_samba-PDC smbd, nmbd processes" _br _line "start processes" /usr/sbin/smbd -D -s /etc/samba-PDC/smb.conf /usr/sbin/nmbd -D -s /etc/samba-PDC/smb.conf _br } back_to_menu() { _prompt "Back to the Start menu [Y/N]:(N)" "in08" _br if [ "$in08" = "Y" -o "$in08" = "y" -o "$in08" = "Yes" -o "$in08" = "YES" ];then start_menu else exit 0 fi } start_menu() { clear _br echo " 1. BDC Start or Restart (Execute on fsvr-p) " echo " 2. PDC Start or Restart (Execute on fsvr-b) " echo " 3. BDC Stop (Execute on fsvr-p) " echo " 4. PDC Stop (Execute on fsvr-b) " _br _prompt "Select:(Q)" "in09" case $in09 in 1) BDC_start_ipaddress stop_process BDC_check_file BDC_start_process back_to_menu ;; 2) PDC_start_ipaddress stop_process PDC_check_file PDC_start_process back_to_menu ;; 3) stop_process stop_ipaddress back_to_menu ;; 4) stop_process stop_ipaddress back_to_menu ;; Q) ;; q) ;; *) ;; esac exit 0 } if [ `/usr/bin/id -u` -ne 0 ];then _error 'You must become a super user' fi start_menu === /root/victor/script/PDC-backup(fsvr-bにはPDC-backup.saveとして保存) === #!/bin/bash sedai=2 DATE=$(date +'%Y%m%d') if [ ! -d /PDC/samba-ldap_backup ]; then mkdir /PDC/samba-ldap_backup fi slapd_conf="/etc/openldap/slapd.conf" smbldap_bind_conf="/etc/smbldap-tools/smbldap_bind.conf" ldap_bind_dn="`sed -n 's/^rootdn[ \t]*\("\)*\([^"]*[^ \t"]\).*$/\2/p' "$slapd_conf"`" ldap_bind_secret="`sed -n 's/^masterPw=[ \t]*\("\)*\([^"]*[^ \t"]\).*$/\2/p' "$smbldap_bind_conf"`" ldap_uri="`sed -n 's/^updateref[ \t]*\("\)*\([^"]*[^ \t"]\).*$/\2/p' "$slapd_conf"`" if [ x"$ldap_uri" = x"" ]; then ldap_uri="ldap://127.0.0.1" fi ldapsearch \ -LLL \ -H "$ldap_uri" \ -x -D "$ldap_bind_dn" -w "$ldap_bind_secret" \ > /PDC/samba-ldap_backup/$DATE.ldif st=$? cd / /bin/tar czf PDC/samba-ldap_backup/$DATE-PDC-file.tar.gz etc/smbldap-tools etc/samba* etc/openldap etc/nsswitch.conf etc/ldap.conf etc/pam.d/system-auth var/lib/ldap/DB_CONFIG var/cache/samba st1=$? if [ $st != 0 ] || [ $st1 != 0 ]; then echo "" >> /var/log/messages echo "######$DATE BACKUP ERROR#####" >> /var/log/messages echo "" >> /var/log/messages exit fi ldif=$(ls /PDC/samba-ldap_backup/*ldif | wc | awk '{print $1}') count=$sedai while [ $ldif -gt $count ]; do delfile=$(ls /PDC/samba-ldap_backup/*ldif | sort -n ) delfile=$(echo $delfile | awk '{print $1}') /bin/rm -f $delfile let count=count+1 done file=$(ls /PDC/samba-ldap_backup/*PDC* | wc | awk '{print $1}') count1=$sedai while [ $file -gt $count1 ]; do delfile1=$(ls /PDC/samba-ldap_backup/*PDC* | sort -n ) delfile1=$(echo $delfile1 | awk '{print $1}') /bin/rm -f $delfile1 let count1=count1+1 done exit 0 === /root/victor/script/BDC-backup(fsvr-pにはBDC-backup.saveとして保存) === #!/bin/bash sedai=2 DATE=$(date +'%Y%m%d') if [ ! -d /BDC/samba-ldap_backup ]; then mkdir /BDC/samba-ldap_backup fi slapd_conf="/etc/openldap/slapd.conf" smbldap_bind_conf="/etc/smbldap-tools/smbldap_bind.conf" ldap_bind_dn="`sed -n 's/^rootdn[ \t]*\("\)*\([^"]*[^ \t"]\).*$/\2/p' "$slapd_conf"`" ldap_bind_secret="`sed -n 's/^masterPw=[ \t]*\("\)*\([^"]*[^ \t"]\).*$/\2/p' "$smbldap_bind_conf"`" ldap_uri="`sed -n 's/^updateref[ \t]*\("\)*\([^"]*[^ \t"]\).*$/\2/p' "$slapd_conf"`" if [ x"$ldap_uri" = x"" ]; then ldap_uri="ldap://127.0.0.1" fi ldapsearch \ -LLL \ -H "$ldap_uri" \ -x -D "$ldap_bind_dn" -w "$ldap_bind_secret" \ > /BDC/samba-ldap_backup/$DATE.ldif st=$? cd / /bin/tar czf BDC/samba-ldap_backup/$DATE-BDC-file.tar.gz etc/smbldap-tools etc/samba* etc/openldap etc/nsswitch.conf etc/ldap.conf etc/pam.d/system-auth var/lib/ldap/DB_CONFIG var/cache/samba st1=$? if [ $st != 0 ] || [ $st1 != 0 ]; then echo "" >> /var/log/messages echo "######$DATE BACKUP ERROR#####" >> /var/log/messages echo "" >> /var/log/messages exit fi ldif=$(ls /BDC/samba-ldap_backup/*ldif | wc | awk '{print $1}') count=$sedai while [ $ldif -gt $count ]; do delfile=$(ls /BDC/samba-ldap_backup/*ldif | sort -n ) delfile=$(echo $delfile | awk '{print $1}') /bin/rm -f $delfile let count=count+1 done file=$(ls /BDC/samba-ldap_backup/*BDC* | wc | awk '{print $1}') count1=$sedai while [ $file -gt $count1 ]; do delfile1=$(ls /BDC/samba-ldap_backup/*BDC* | sort -n ) delfile1=$(echo $delfile1 | awk '{print $1}') /bin/rm -f $delfile1 let count1=count1+1 done exit 0 === /root/victor/script/BDC_rsync(fsvr-bにはBDC_rsync.saveとして保存) === #!/bin/sh log=/var/log/rsync_backup.log if [ ! -d /etc/samba-BDC ]; then mkdir /etc/samba-BDC fi /usr/bin/rsync -auv –password-file=/etc/rsyncd.pass \ rsync://backup@192.168.200.51/samba-BDC/etc/samba-BDC > $log 2>&1 if [ $? '!=' 0 ] ; then echo "$0: ERROR" fi log=/var/log/rsync_backup.log if [ ! -d /etc/samba-BDC/cache ]; then mkdir /etc/samba-BDC/cache fi #/usr/bin/rsync -auv --password-file=/etc/rsyncd.pass --delete –force \ --delete-excluded rsync://backup@192.168.200.51/samba_cache/etc/samba-BDC/cache \ > $log 2>&1 if [ $? '!=' 0 ] ; then echo "$0: ERROR" fi log=/var/log/rsync_backup.log if [ ! -d /BDC ]; then mkdir /BDC fi /usr/bin/rsync -auv --password-file=/etc/rsyncd.pass --delete --force \ --delete-excluded rsync://backup@192.168.200.51/BDC/BDC > $log 2>&1 if [ $? '!=' 0 ] ; then echo "$0: ERROR" fi exit 0 === /root/victor/script/PDC_rsync(fsvr-pにはPDC_rsync.saveとして保存) === #!/bin/sh log=/var/log/rsync_backup.log if [ ! -d /etc/samba-PDC ]; then mkdir /etc/samba-PDC fi /usr/bin/rsync -auv –password-file=/etc/rsyncd.pass \ rsync://backup@192.168.200.50/samba-PDC /etc/samba-PDC > $log 2>&1 if [ $? '!=' 0 ] ; then echo "$0: ERROR" fi log=/var/log/rsync_backup.log if [ ! -d /etc/samba-PDC/cache ]; then mkdir /etc/samba-PDC/cache fi /usr/bin/rsync -auv --password-file=/etc/rsyncd.pass --delete --force \ --delete-excluded rsync://backup@192.168.200.50/samba_cache/etc/samba-PDC/cache \ > $log 2>&1 if [ $? '!=' 0 ] ; then echo "$0: ERROR" fi log=/var/log/rsync_backup.log if [ ! -d /PDC ]; then mkdir /PDC fi /usr/bin/rsync -auv --password-file=/etc/rsyncd.pass --delete --force \ --delete-excluded rsync://backup@192.168.200.50/PDC /PDC > $log 2>&1 if [ $? '!=' 0 ] ; then echo "$0: ERROR" fi exit 0 == fsvr-p.krhm.jvc-victor.co.jp == === /etc/samba/smb.conf === [global] private dir = /etc/samba pid directory = /var/run lock directory = /var/cache/samba unix charset = UTF-8 display charset = UTF-8 dos charset = CP932 netbios name = fsvr-p workgroup = KRHM server string = %L (Samba %v @ %h) interfaces = eth0 lo bind interfaces only = yes #log level = 3 log level = 0 auth:2 syslog = 0 log file = /var/log/samba/%m.log max log size = 1000 security = user domain logons = Yes guest account = Guest map to guest = bad user logon path = logon home = logon drive = logon script = passdb backend = ldapsam:"ldap://136.198.200.50/ ldap://136.198.200.51/" ldap ssl = no ldap admin dn = "cn=Directory Administrators,o=JVC" ldap passwd sync = Yes ldap delete dn = no ldap suffix = o=JVC ldap user suffix = ou=People ldap group suffix = ou=Groups ldap machine suffix = ou=Computers # add user script = /usr/sbin/smbldap-useradd -n -m "%u" # delete user script = /usr/sbin/smbldap-userdel -r "%u" # add group script = /usr/sbin/smbldap-groupadd -p "%g" # delete group script = /usr/sbin/smbldap-groupdel "%g" # add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g" # delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g" # set primary group script = /usr/sbin/smbldap-groupmod -g "%g" "%u" # add machine script = /usr/sbin/smbldap-useradd -w "%u" # add share command = /usr/lib/samba/bin/addshare.pl # delete share command = /usr/lib/samba/bin/delshare.pl # change share command = /usr/lib/samba/bin/chgshare.pl os level = 64 preferred master = yes domain master = yes local master = yes wins support = yes admin users = Administrator dos filemode = yes dos filetimes = yes dos filetime resolution = yes inherit permissions = yes inherit acls = yes map acl inherit = yes force directory mode = 02000 directory mask = 0775 create mask = 0664 fake directory create times = yes obey pam restrictions = Yes host msdfs = yes msdfs root = No vfs objects = recycle,full_audit full_audit:failure = connect disconnect opendir closedir mkdir rmdir \ open close rename unlink full_audit:success = connect disconnect mkdir rmdir open close rename unlink hosts allow = 10.33.0.0/16 136.198.150.0/24 136.198.200.50 136.198.200.51 [総務] path = /PDC/soumu comment = PDC共有領域 writeable = yes force group = soumutest guest ok = no recycle:repository = ごみ箱/%u recycle:keeptree = yes recycle:versions = yes [経理] msdfs root = yes msdfs proxy = \136.198.200.51\経理 comment = BDC共有領域 #以下の行を必ず最終行としてください。 #共有を追加する場合にはこれより上部へお願いします。 [global] include = /etc/samba-PDC/smb.PDC.conf === /etc/smbldap-tools/smbldap.conf === SID="S-1-5-21-3433702215-4077640748-2776752685" sambaDomain="KRHM" slaveLDAP="136.198.200.50" slavePort="389" masterLDAP="136.198.200.50" masterPort="389" ldapTLS="0" verify="require" cafile="/etc/smbldap-tools/ca.pem" clientcert="/etc/smbldap-tools/smbldap-tools.pem" clientkey="/etc/smbldap-tools/smbldap-tools.key" suffix="o=JVC" usersdn="ou=People,o=JVC" computersdn="ou=Computers,o=JVC" groupsdn="ou=Groups,o=JVC" idmapdn="ou=Idmap,o=JVC" sambaUnixIdPooldn="sambaDomainName=KRHM,o=JVC" scope="sub" hash_encrypt="SSHA" crypt_salt_format="%s" userLoginShell="/bin/bash" userHome="/home/%U" userHomeDirectoryMode="700" userGecos="System User" defaultUserGid="513" defaultComputerGid="515" skeletonDir="/etc/skel" defaultMaxPasswordAge="45" userSmbHome="\\PDC-SRV\%U" userProfile="\\PDC-SRV\profiles\%U" userHomeDrive="H:" userScript="logon.bat" mailDomain="jvc-victor.jp" with_smbpasswd="1" smbpasswd="/usr/bin/smbpasswd" with_slappasswd="0" slappasswd="/usr/sbin/slappasswd" encoding="UTF-8" === /etc/ldap.conf === host 136.198.200.50 136.198.200.51 base o=JVC timelimit 120 bind_timelimit 120 idle_timelimit 3600 ssl no tls_cacertdir /etc/openldap/cacerts pam_password md5 === /etc/openldap/slapd.conf === include /etc/openldap/schema/core-osstech.schema include /etc/openldap/schema/cosine.schema include /etc/openldap/schema/inetorgperson.schema include /etc/openldap/schema/nis.schema include /etc/openldap/schema/samba.schema allow bind_v2 pidfile /var/run/openldap/slapd.pid argsfile /var/run/openldap/slapd.args access to * by dn="cn=replica,o=JVC" read by * break access to attrs=userPassword by dn="uid=Administrator,ou=People,o=JVC" write by anonymous auth by * none access to attrs=sambaLMPassword,sambaNTPassword,sambaPasswordHistory by dn="uid=Administrator,ou=People,o=JVC" write by * none access to attrs=telephoneNumber,facsimileTelephoneNumber by self write by * none access to * by dn="uid=Administrator,ou=People,o=JVC" write by * read database bdb suffix "o=JVC" rootdn "cn=Directory Administrators,o=JVC" directory /var/lib/ldap attributeoptions lang- phonetic checkpoint 51200 10 cachesize 10000 => お客様にて後日変更してください(エントリー数) idlcachesize 30000 => お客様にて後日変更してください(cachesizeの3倍) loglevel 0 index objectClass eq index ou eq,pres,sub index cn eq,pres,sub index sn eq,pres,sub index uid eq,pres,sub index displayName eq,pres,sub index mail eq,pres,sub index uidNumber eq index gidNumber eq index memberUID eq index sambaSID eq,sub index sambaPrimaryGroupSID eq index sambaDomainName eq index entryCSN eq index entryUUID eq overlay syncprov syncprov-sessionlog 128 === /etc/openldap/ldap.conf === HOST 136.198.200.50 136.198.200.51 BASE o=JVC TLS_CACERTDIR /etc/openldap/cacerts === /etc/rsyncd.conf === pid file = /var/run/rsyncd.pid syslog facility = local5 read only = yes [samba-PDC] path=/etc/samba comment=samba-PDC file uid=root gid=root auth users=backup secrets file=/etc/rsyncd.secrets hosts allow=192.168.200.51 hosts deny=* [samba_cache] path=/var/cache/samba comment=samba_cache file uid=root gid=root auth users=backup secrets file=/etc/rsyncd.secrets hosts allow=192.168.200.51 hosts deny=* [PDC] path=/PDC comment=PDC DATA uid=root gid=root auth users=backup secrets file=/etc/rsyncd.secrets hosts allow=192.168.200.51 hosts deny=* === /etc/samba-BDC/smb.BDC.conf.template === [global] private dir = /etc/samba-BDC pid directory = /etc/samba-BDC/run lock directory = /etc/samba-BDC/cache interfaces = eth0:0 log file = /etc/samba-BDC/log/%m.log passdb backend = ldapsam:"ldap://136.198.200.50/" === /etc/sysconfig/network-scripts/ifcfg-eth0:0 === DEVICE=eth0:0 BOOTPROTO=static BROADCAST=192.168.200.255 IPADDR=192.168.200.50 NETMASK=255.255.255.0 NETWORK=192.168.200.0 ONPARENT=no == fsvr-b.krhm.jvc-victor.co.jp == === /etc/samba/smb.conf === [global] private dir = /etc/samba pid directory = /var/run lock directory = /var/cache/samba unix charset = UTF-8 display charset = UTF-8 dos charset = CP932 netbios name = fsvr-b workgroup = KRHM server string = %L (Samba %v @ %h) interfaces = eth0 lo bind interfaces only = yes #log level = 3 log level = 0 auth:2 syslog = 0 log file = /var/log/samba/%m.log max log size = 1000 security = user domain logons = Yes guest account = Guest map to guest = bad user logon path = logon home = logon drive = logon script = passdb backend = ldapsam:"ldap://136.198.200.51/, ldap://136.198.200.50/" ldap ssl = no ldap admin dn = "cn=Directory Administrators,o=JVC" ldap passwd sync = Yes ldap delete dn = no ldap suffix = o=JVC ldap user suffix = ou=People ldap group suffix = ou=Groups ldap machine suffix = ou=Computers # add user script = /usr/sbin/smbldap-useradd -n -m "%u" # delete user script = /usr/sbin/smbldap-userdel -r "%u" # add group script = /usr/sbin/smbldap-groupadd -p "%g" # delete group script = /usr/sbin/smbldap-groupdel "%g" # add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g" # delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g" # set primary group script = /usr/sbin/smbldap-groupmod -g "%g" "%u" # add machine script = /usr/sbin/smbldap-useradd -w "%u" # add share command = /usr/lib/samba/bin/addshare.pl # delete share command = /usr/lib/samba/bin/delshare.pl # change share command = /usr/lib/samba/bin/chgshare.pl os level = 32 preferred master = yes domain master = no local master = yes wins server = fsvr-p admin users = Administrator dos filemode = yes dos filetimes = yes dos filetime resolution = yes inherit permissions = yes inherit acls = yes map acl inherit = yes force directory mode = 02000 directory mask = 0775 create mask = 0664 fake directory create times = yes obey pam restrictions = Yes host msdfs = yes msdfs root = No vfs objects = recycle,full_audit full_audit:failure = connect disconnect opendir closedir mkdir rmdir \ open close rename unlink full_audit:success = connect disconnect mkdir rmdir open close rename unlink hosts allow = 10.33.0.0/16 136.198.150.0/24 136.198.200.50 136.198.200.51 [経理] path = /BDC/keiri comment = BDC共有領域 writeable = yes force group = keiritest guest ok = no recycle:repository = ごみ箱/%u recycle:keeptree = yes recycle:versions = yes [総務] msdfs root = yes msdfs proxy = \136.198.200.50\総務 comment = PDC共有領域 #以下の行を必ず最終行としてください。 #共有を追加する場合にはこれより上部へお願いします。 [global] include = /etc/samba-BDC/smb.BDC.conf === /etc/smbldap-tools/smbldap.conf === SID="S-1-5-21-3433702215-4077640748-2776752685" sambaDomain="KRHM" slaveLDAP="136.198.200.51" slavePort="389" masterLDAP="136.198.200.50" masterPort="389" ldapTLS="0" verify="require" cafile="/etc/smbldap-tools/ca.pem" clientcert="/etc/smbldap-tools/smbldap-tools.pem" clientkey="/etc/smbldap-tools/smbldap-tools.key" suffix="o=JVC" usersdn="ou=People,o=JVC" computersdn="ou=Computers,o=JVC" groupsdn="ou=Groups,o=JVC" idmapdn="ou=Idmap,o=JVC" sambaUnixIdPooldn="sambaDomainName=KRHM,o=JVC" scope="sub" hash_encrypt="SSHA" crypt_salt_format="%s" userLoginShell="/bin/bash" userHome="/home/%U" userHomeDirectoryMode="700" userGecos="System User" defaultUserGid="513" defaultComputerGid="515" skeletonDir="/etc/skel" defaultMaxPasswordAge="45" userSmbHome="\\PDC-SRV\%U" userProfile="\\PDC-SRV\profiles\%U" userHomeDrive="H:" userScript="logon.bat" mailDomain="jvc-victor.jp" with_smbpasswd="1" smbpasswd="/usr/bin/smbpasswd" with_slappasswd="0" slappasswd="/usr/sbin/slappasswd" encoding="UTF-8" === /etc/ldap.conf === host 136.198.200.51 136.198.200.50 base o=JVC timelimit 120 bind_timelimit 120 idle_timelimit 3600 ssl no tls_cacertdir /etc/openldap/cacerts pam_password md5 === /etc/openldap/slapd.conf === include /etc/openldap/schema/core-osstech.schema include /etc/openldap/schema/cosine.schema include /etc/openldap/schema/inetorgperson.schema include /etc/openldap/schema/nis.schema include /etc/openldap/schema/samba.schema allow bind_v2 pidfile /var/run/openldap/slapd.pid argsfile /var/run/openldap/slapd.args access to * by dn="cn=replica,o=JVC" =xw by * break access to attrs=userPassword by dn="uid=Administrator,ou=People,o=JVC" write by anonymous auth by * none access to attrs=sambaLMPassword,sambaNTPassword,sambaPasswordHistory by dn="uid=Administrator,ou=People,o=JVC" write by * none access to attrs=telephoneNumber,facsimileTelephoneNumber by self write by * none access to * by dn="uid=Administrator,ou=People,o=JVC" write by * read database bdb suffix "o=JVC" rootdn "cn=Directory Administrators,o=JVC" directory /var/lib/ldap attributeoptions lang- phonetic checkpoint 51200 10 cachesize 10000 => お客様にて後日変更してください(エントリー数) idlcachesize 30000 => お客様にて後日変更してください(cachesizeの3倍) loglevel 0 index objectClass eq index ou eq,pres,sub index cn eq,pres,sub index sn eq,pres,sub index uid eq,pres,sub index displayName eq,pres,sub index mail eq,pres,sub index uidNumber eq index gidNumber eq index memberUID eq index sambaSID eq,sub index sambaPrimaryGroupSID eq index sambaDomainName eq syncrepl rid=1 provider="ldap://fsvr-p.krhm.jvc-victor.co.jp/" type=refreshAndPersist interval=00:00:03:00 searchbase="o=JVC" scope=sub schemachecking=off binddn="cn=replica,o=JVC" bindmethod=simple credentials=secret => お客様にて後日変更してください === /etc/openldap/ldap.conf === HOST 136.198.200.51 136.198.200.50 BASE o=JVC TLS_CACERTDIR /etc/openldap/cacerts === /etc/rsyncd.conf === pid file = /var/run/rsyncd.pid syslog facility = local5 read only = yes [samba-BDC] path=/etc/samba comment=samba-BDC file uid=root gid=root auth users=backup secrets file=/etc/rsyncd.secrets hosts allow=192.168.200.50 hosts deny=* [samba_cache] path=/var/cache/samba comment=samba_cache file uid=root gid=root auth users=backup secrets file=/etc/rsyncd.secrets hosts allow=192.168.200.50 hosts deny=* [BDC] path=/BDC comment=BDC DATA uid=root gid=root auth users=backup secrets file=/etc/rsyncd.secrets hosts allow=192.168.200.50 hosts deny=* === /etc/samba-PDC/smb.PDC.conf.template === [global] private dir = /etc/samba-PDC pid directory = /etc/samba-PDC/run lock directory = /etc/samba-PDC/cache interfaces = eth0:0 log file = /etc/samba-PDC/log/%m.log     passdb backend = ldapsam:"ldap://136.198.200.51/" === /etc/sysconfig/network-scripts/ifcfg-eth0:0 === DEVICE=eth0:0 BOOTPROTO=static BROADCAST=192.168.200.255 IPADDR=192.168.200.51 NETMASK=255.255.255.0 NETWORK=192.168.200.0 ONPARENT=no所属しているユーザーは表示されません。この場合セカンダリグループに登録されているユーザーのみ表示されます。プライマリグループとしてしかし、 === グループに所属しているユーザの検索 === 以下のコマンドを実施することでグループに所属しているメンバーが確認できます。 # smbldap-groupshow グループ名 (方法については4.3.1、4.3.2を参照)、ファイルやディレクトリの所有グループに割り当てられていないか確認してから実行してください。いないかどうかに割り当てられていた場合はgidNumber:数字が表示されます) 削除する際は所属ユーザが所属している場合でもグループは削除されてしまいます。(この場合gidNumberのみ残り、既に所有グループユーザーが == グループ削除 == グループを削除する場合は以下の手順となります。 # smbldap-groupdel dev この場合は、グループ名:dev というグループが削除されます。作成 新規にグループを作成する場合は以下の手順となります。 # smbldap-groupadd -a dev この場合は、グループ名:dev というグループが作成されます。グループ 上記の設定は以下の要件より設定しております。 ・domain_admins、faculty、ptlecグループはホームディレクトリ以下全てフルアクセス可能 ・studentグループはホームディレクトリ/pubについて読み取り専用でアクセス可能 ・ホームディレクトリ/wwwについては全てのユーザーが読み取り専用でアクセス可能 ・上記に該当しないユーザー、ディレクトリについてはアクセス不可能 ホームディレクトリ/wwwについては、公開用のwebページが保存されており、apacheユーザー特殊なユーザがアクセスする必要がある為、また、公開用なので他人に読み取り専用でアクセスされる分には問題ない為に全ユーザーから読み取り専用でアクセス可能としています。 また、ホームディレクトリではありませんが、以下も存在しております。 momo:/home/jugyou/ユーザー名 実体-> momo:/home/faculty/ユーザー名(facultyグループ用) 実体-> momo:/home/ptlec/ユーザー名(ptlecグループ用) 上記のホームディレクトリは作業当日までに頂いたリストのユーザーのものしか用意しておりません。 それ以外のユーザーについては以下のバックアップディレクトリからそれぞれ移行する必要があります。(ディレクトリ内にファイル等存在していない場合や、移行する必要がない場合には新規作成してください) ume:/home/staffsv_bak/windows/personal/ユーザー名 移行先は sakura:/home/faclty/ユーザー名、sakura:/home/ptlec/ユーザー名、ume:/home/staff/ユーザー名 となります。(プライマリグループによって移行先は区別されます) ume:/home/staffsv_bak/windows/staff/xxxx 移行先は sakura:/home/faclty/ユーザー名/pub、sakura:/home/ptlec/ユーザー名/pub、ume:/home/staff/ユーザー名 /pub となります。(プライマリグループによって移行先は区別されます) ume:/home/studensv_bak/windows/personal/xxxx 移行先は momo:/home/student/ユーザー名 となります。 ume:/home/studensv_bak/windows/campus/xxxx 移行先は momo:/home/student/ユーザー名/pub となります。 上記、ume:/home/staffsv_bak やume:/home/studentsv_bakにないディレクトリは、元々のstaffsv、studentsvにもなかったこととなります。 また、faculty並びにptlecグループに所属するユーザーの場合、以下のディレクトリも作成してください。 momo:/home/faculty/ユーザー名(facultyグループ用) momo:/home/ptlec/ユーザー名(ptlecグループ用) /home/jugyou に実体のあるユーザーについては、上記のディレクトリへ移行してください。/home/jugyou に実体のないユーザーは新規に上記ディレクトリ以下に作成してください。作成後は以下のコマンドでmomo:/home/jugyou へリンクを作成します。 '''momoにて実施''' # ln -s /home/faculty/ユーザー名 /home/jugyou/ユーザー名 もしくは # ln -s /home/ptlec/ユーザー名 /home/jugyou/ユーザー名 === 権限付与 === ホームディレクトリの移行、または新規ホームディレクトリ作成後は権限の設定が必要です。付与する権限もサーバー毎によって違いますのでご注意ください。必ず、ホームディレクトリを作成したサーバーにて実行します。 * sakuraでの実行 プライマリグループ:faculty、ユーザー名:osstech(ホームディレクトリはsakura:/home/faculty/osstech)とします。 (ptlecの場合はfacultyとptlecを入れ替えて実施してください) # cd /home/faculty ホームディレクトリ以下にpubがない場合作成 # mkdir -p osstech/pub ホームディレクトリ以下にwwwがない場合作成 # mkdir -p osstech/www ホームディレクトリ以下のACL全削除 # setfacl -b -R osstech ホームディレクトリ以下の所有者、所有グループの変更 # chown -R osstech:faculty osstech ホームディレクトリ以下の権限を711に変更 # chmod -R 711 osstech ホームディレクトリ/pub以下のみ権限を750に変更 # chmod -R 750 osstech/pub ホームディレクトリ/www以下のみ権限を755に変更 # chmod -R 755 osstech/www ホームディレクトリ以下をdomain_adminsグループが読み取り専用に変更(デフォルト値も) # setfacl -R -m g:domain_admins:r-x osstech # setfacl -R -d -m g:domain_admins:r-x osstech ホームディレクトリ/pub以下をfacultyグループが読み取り専用に変更(デフォルト値も) # setfacl -R -m g:faculty:r-x osstech/pub # setfacl -R -d -m g:faculty:r-x osstech/pub ホームディレクトリ/pub以下をptlecグループが読み取り専用に変更(デフォルト値も) # setfacl -R -m g:ptlec:r-x osstech/pub # setfacl -R -d -m g:ptlec:r-x osstech/pub 上記の設定は以下の要件より設定しております。 ・domain_adminsグループはホームディレクトリ以下全て読み取り専用でアクセス可能 ・faculty、ptlecグループはホームディレクトリ/pubについて読み取り専用でアクセス可能 ・ホームディレクトリ/wwwについては全てのユーザーが読み取り専用でアクセス可能 ・上記に該当しないユーザー、ディレクトリについてはアクセス不可能 ホームディレクトリ/wwwについては、公開用のwebページが保存されており、apacheユーザー特殊なユーザがアクセスする必要がある為、また、公開用なので他人に読み取り専用でアクセスされる分には問題ない為に全ユーザーから読み取り専用でアクセス可能としています。 * umeでの実行 プライマリグループ:staff、ユーザー名:osstech1(ホームディレクトリはume:/home/staff/osstech1)とします。 # cd /home/staff/ ホームディレクトリ以下にpubがない場合作成 # mkdir -p osstech1/pub ホームディレクトリ以下のACL全削除 # setfacl -b -R osstech1 ホームディレクトリ以下の所有者、所有グループの変更 # chown -R osstech1:staff osstech1 ホームディレクトリ以下の権限を711に変更 # chmod -R 711 osstech1 ホームディレクトリ/pub以下のみ権限を750に変更 # chmod -R 750 osstech1/pub ホームディレクトリ以下をdomain_adminsグループが読み取り専用に変更(デフォルト値も) # setfacl -R -m g:domain_admins:r-x osstech1 # setfacl -R -d -m g:domain_admins:r-x osstech1 ホームディレクトリ/pub以下をstaffグループが読み取り専用に変更(デフォルト値も) # setfacl -R -m g:staff:r-x osstech1/pub # setfacl -R -d -m g:staff:r-x osstech1/pub 上記の設定は以下の要件より設定しております。 ・domain_adminsグループはホームディレクトリ以下全て読み取り専用でアクセス可能 ・staffグループはホームディレクトリ/pubについて読み取り専用でアクセス可能 ・上記に該当しないユーザー、ディレクトリについてはアクセス不可能 * momoでの実行 プライマリグループ:student、ユーザー名:osstech2(ホームディレクトリはmomo:/home/student/osstech2)とします。 # cd /home/student/ ホームディレクトリ以下にpubがない場合作成 # mkdir -p osstech2/pub ホームディレクトリ以下にwwwがない場合作成 # mkdir -p osstech2/www ホームディレクトリ以下のACL全削除 # setfacl -b -R osstech2 ホームディレクトリ以下の所有者、所有グループの変更 # chown -R osstech2:student osstech2 ホームディレクトリ以下の権限を711に変更 # chmod -R 711 osstech2 ホームディレクトリ/pub以下のみ権限を750に変更 # chmod -R 750 osstech2/pub ホームディレクトリ/www以下のみ権限を755に変更 # chmod -R 755 osstech2/www ホームディレクトリ以下をdomain_adminsグループがフルアクセス可能に変更(デフォルト値も) # setfacl -R -m g:domain_admins:rwx osstech2 # setfacl -R -d -m g:domain_admins:rwx osstech2 ホームディレクトリ以下をfacultyグループがフルアクセス可能に変更(デフォルト値も) # setfacl -R -m g:faculty:rwx osstech2 # setfacl -R -d -m g:faculty:rwx osstech2 ホームディレクトリ以下をptlecグループがフルアクセス可能に変更(デフォルト値も) # setfacl -R -m g:ptlec:rwx osstech2 # setfacl -R -d -m g:ptlec:rwx osstech2 ホームディレクトリ/pub以下をstudentグループが読み取り専用に変更(デフォルト値も) # setfacl -R -m g:student:r-x osstech2/pub # setfacl -R -d -m g:student:r-x osstech2/pub (studentグループ用)て存在しているディレクトリは以下となります。 ume:/home/staff/ユーザー名(staffグループ用) sakura:/home/faculty/ユーザー名(facultyグループ用) sakura:/home/ptlec/ユーザー名(ptlecグループ用) momo:/home/student/ユーザー名 現在ユーザーのホームディレクトリとし === ホームディレクトリの移行 === == ユーザーホームディレクトリ == 新規作成ユーザーや既存ユーザーでホームディレクトリを持っていなかったユーザーのホームディレクトリについてはディレクトリの移行や権限付与といった作業が発生します。作成しておく必要があります。付与することでホームディレクトリも作成します。注意点としては/home/ptlecは先に-m オプションをまた、smbldap-useraddを実行するサーバー上にホームディレクトリを作成する場合は = ユーザー/グループの管理 = == ユーザー作成 == 新規にユーザーを作成する場合は以下の手順となります。 # smbldap-useradd -a -C '' -D '' -F '' -E ptlec.vbs -d /home/ptlec/testuser -g ptlec -p osstech testuser この場合は、ユーザー名:testuser、パスワード:osstech、プライマリグループ:ptlec、ホームディレクトリ:/home/ptlec/testuserというユーザーが作成されます(オプションC、D、Fで設定される値は貴学では使用しない為に ’’を与えます)。ユーザー登録をする際にはsmbldap-toolsを使用することで、Samba用のパスワード、Posixアカウント用(OS用)のパスワードを同期させることが可能です。 削password ここではpasswordが新規パスワードとなります。 # smbldap-passwd Administrator(現在パスワードはActive Directoryの時に使用していたパスワードとなっております)LDAP(cn=Managerユーザー) このユーザーの変更箇所は多数ございます。必ず全てのパスワードを変更するようにしてください。(パスワードを例としてsecretとするよう説明いたします。) === /etc/smbldap-tools/smbldap_bind.conf === slavePw="secret" masterPw="secret" 上記両方とも変更してください。 === /etc/samba/secrets.tdb === このファイルは手動ではなく、以下のコマンドによって変更可能となります。 # smbpasswd -w secret === LDAP内の設定 === LDAPに登録されているユーザーのパスワードを変更します。一般ユーザーとは違い、こちらはsmbldap-toolsでは変更できませんのでご注意ください。 まず、パスワードをハッシュします。 # slappasswd -s secret {SSHA}Jp1RcGQPqeSDk00p5IIkrM3JthW/kN8b この値を使用したLDIFを以下のように用意します。 dn: cn=Manager,dc=kaetsu,dc=ac,dc=jp userPassword: {SSHA}Jp1RcGQPqeSDk00p5IIkrM3JthW/kN8b LDIFの適用はユーザーやグループのattributeを変更したとき同様に以下のコマンドで変更します。(上記LDIFのファイル名はpasswd.ldifとします。) # ldapmodify -x -w xxxxx => パスワードなので伏せています -D "cn=Manager, dc=kaetsu, dc=ac, dc=jp" -f passwd.ldif この時のパスワードは以前までのパスワードを使用します。適用されたかどうか確認する為に再度以下のコマンドを実行してみます。 # ldapsearch -x -w secret -D "cn=Manager, dc=kaetsu, dc=ac, dc=jp" -LLL すると、以下のようにパスワードが違うという種類のエラーが表示されます。 ldap_bind: Invalid credentials (49) ここで、新規に設定したパスワードで情報が取得できればパスワードの設定は成功しています。 == Samba(Administratorユーザー) == Administratorユーザーのパスワード変更方法は一般ユーザーと同様です。 以上で、OSの管理者のパスワードが変更されます。 Changing password for user root. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully.ー) rootユーザーのパスワード変更方法は以下の通りです。 まず、rootユーザーにてOSへログインします。ログイン後、 # passwd 実行後以下のように2度パスワード入力が求められます。 = 管理者パスワードの変更 = == OS(rootユーザ実行するようにしてください。 == をsmbldap-groupmod -m osstech ict-cons もしくは # smbldap-usermod -g dev -G "Domain Users",03student,kensin06,ict-cons osstech。必ずプライマリグループを変更した際は、既存のプライマリグループに再度所属させるようにしてください。 よって、プライマリグループを変更する方法は以下の2通りとなります。 # smbldap-usermod -g dev osstech # プライマリグループはict-consでしたが、このままではセカンダリグループにもict-consが表示されません。よって、今までアクセスできていたファイルやディレクトリにアクセスできないということになってしまいます問題が発生します。元々osstechユーザーの問題ないように見えますが、実はこれだけでは一見 この場合はsmbldap-usermodコマンドを使用します。 # smbldap-usermod -g dev osstech # id osstech uid=60038(osstech) gid=50506(dev) 所属グループ=50506(dev),513(Domain Users),1101(03student),1160(kensin06) 例として以下のユーザーを使用し、このユーザーのプライマリグループをdevグループへ変更します。 '''現状の所属グループの確認''' # id osstech uid=60038(osstech) gid=50003(ict-cons) 所属グループ=50003(ict-cons),513(Domain Users),1101(03student),1160(kensin06)はvpnグループに所属させる必要がありますので、その際には上記いずれかの方法にてユーザーをvpnグループへ所属させてください。 == ユーザーのプライマリグループを変更する == ユーザーを追加するということになりますので、先ほどのsmbldap-usermodよりも簡単に実施することが可能です。 貴学にてvpnをご利用になるユーザー === グループから変更する方法 === smbldap-gruopmodコマンドを使用する場合は以下を指定します。 # smbldap-groupmod -m osstech dev # id osstech uid=60038(osstech) gid=50003(ict-cons) 所属グループ=50003(ict-cons),513(Domain Users),1101(03student),1160(kensin06),50506(dev) こちらはグループに現在も所属しているセカンダリグループを全てをしている必要があるということになります。注意点として、-G オプションで指定するグループは これには2通りの手順があります。 例として以下のユーザーを使用し、このユーザーをdevというグループに所属させます。 '''現状の所属グループの確認''' # id osstech uid=60038(osstech) gid=50003(ict-cons) 所属グループ=50003(ict-cons),513(Domain Users),1101(03student),1160(kensin06) === ユーザーから変更する方法 === smbldap-usermodコマンドを使用する場合は以下を指定します。 # smbldap-usermod -G "Domain Users",03student,kensin06,dev osstech # id osstech uid=60038(osstech) gid=50003(ict-cons) 所属グループ=50003(ict-cons),513(Domain Users),1101(03student),1160(kensin06),50506(dev) == ユーザーをグループに所属させる == 所有グループになっている場合には所有グループを変更してください。削除を検討しているグループが === ファイルの所有グループの検索 === 以下のコマンドを実施することで指定したグループ名が所有グループとなっているファイル、ディレクトリが表示されます。 # find / -group グループ名 -print 。確認してください削除を検討しているグループに所属しているユーザーを上記2つのコマンドを用いて、 # ldapsearch -x -LLL gidNumber=gidNumberを指定 | grep uid= プライマリグループとして所属しているユーザーは以下のコマンドで検索することになります。この枠はコメントです。印刷はされません。必要ならばメニュー [ファイル] - [プロパティ] も設定する
'''Chimera Search使用手引書'''
必要ならばメニュー [ファイル] - [プロパティ] も設定する [[Image:]] [[Image:]]
オープンソース・ソリューション・テクノロジ(株)
日付、リビジョンをつける。
更新日は初版では削除?
リビジョンは 1.0 から始まり、小改訂で 1.1, 1.2 ...、大改訂で 2.0, 3.0 ... とする。
Ver. 1.0
'''目次'''[#1.Chimera Searchとは|outline 1. Chimera Searchとは1] [#1.1.概要|outline 1.1 概要1] [#1.2.製品特長|outline 1.2 製品特長1] [#1.3.検索対象サーバー|outline 1.3 検索対象サーバー1] [#1.4.検索対象ファイル|outline 1.4 検索対象ファイル2] [#1.5.インストール要件|outline 1.5 インストール要件2] [#1.6.インストール方法|outline 1.6 インストール方法2] [#2.使用方法|outline 2. 使用方法3] [#2.1.推奨Webブラウザ|outline 2.1 推奨Webブラウザ3] [#2.2.ログイン|outline 2.2 ログイン3] [#2.3.簡易検索|outline 2.3 簡易検索4] [#2.4.「検索文」への入力書式|outline 2.4 「検索文」への入力書式5] [#2.5.拡張検索|outline 2.5 拡張検索5] = Chimera Searchとは = == 概要 == Chimera Search(キメラ・サーチ)とは、WindowsファイルサーバーとSambaなどのNAS(Network Attached Storage)内にあるドキュメントを検索するソフトウェアです。 ※ Chimera (キメラ)とは? ギリシャ神話に出てくるライオンと山羊の頭、蛇の尻尾を持つ怪物です。キマイラとも呼ばれます。 Windowsだけでなく、SambaやNASのデータも検索できることから、3つの頭(能力)を持つこのキャラクタを選びました。 == 製品特長 == Chimera Searchは以下のような特長を持っています。 * SMBプロトコル、CIFSプロトコルをサポートしたサーバーであればWindowsマシン、Linux/UNIX/Mac OSマシンのコンテンツを検索できます。 * 検索結果にユーザーがアクセス権を持たないファイルは表示されません。ファイルにアクセス権を適切につけておけば、検索でファイルの存在自体を知られる心配がありません。 * 構築コンポーネントに以下のOSS(オープンソースソフトウェア)を利用しているため、安価に導入できるのに高性能・高機能を発揮します。 * プログラム言語:RubyおよびRuby On Rails * 全文検索システム :Hyper Estraier 以下の特長を持っています。 * インデックスを使った高速な検索ができます。 * 大量の文書のインデックスを短時間で作成できます。 * N-gram方式による漏れのない検索ができます。 == 検索対象サーバー == Chimera Searchはネットワークに接続された以下のファイルサーバーを検索できます。 ※アクセス権によって検索結果が制御されますので、すべての検索対象サーバーは単一のWindowsドメインや相互に信頼関係を結んだWindowsドメインで構成されているのが望ましいでしょう。 * Windowsファイルサーバー * Windows Server 2003 * Windows Small Business Server 2003 * Windows Storage Server 2003 * Windows 2000 Server * Windows 2000 Datacenter Server * Windows 2000 Advanced Server * その他WindowsベースのNAS * Sambaベースのファイルサーバー * LinuxマシンでSambaが稼働しているファイルサーバー * UNIXマシンでSambaが稼働しているファイルサーバー * Sambaが稼働しているMac OS Xファイルサーバー * CIFSをサポートしたNAS * バッファロー社製テラステーション、リンクステーションなど == 検索対象ファイル == Chimera Searchはファイルサーバー内の以下のファイルを検索できます。 * マイクロソフトオフィス Wordファイル * マイクロソフトオフィス EXCELファイル * マイクロソフトオフィス PowerPointファイル * OpenDocument ファイル (OpenOffice.org, Sun StarSuite) * PDFファイル * HTMLファイル * テキストファイル == インストール要件 == Chimera Searchは以下のOSが稼働するマシンの上で動作します。 * Red Hat Enterprise Linux 4.0 * Red Hat Enterprise Linux 5.0 * CentOS 4 * CentOS 5 * MIRACLE LINUX V4.0 ※Chimera Searchは検索対象のサーバーの上にインストールする必要はありません。 もちろん、検索対象のSambaサーバーと同居してインストールすることも可能です。 == インストール方法 == インストール方法や設定方法は製品に添付しているインストールガイドを参照ください。 = 使用方法 = == 推奨Webブラウザ == Chimera SearchはWindowsのWebブラウザから利用します。 推奨Webブラウザは以下になります。 * Internet Explorer 6マイクロソフト インターネット エクスプローラー6 * Internet Explorer 7マイクロソフト インターネット エクスプローラー7 ※以降、上記ソフトウェアを略してMSIEと表記します。 FirefoxやOperaなどMSIE以外のWebブラウザでも利用可能ですが、検索結果のリンクをクリックしてファイルを編集することはできません。 MSIE以外のブラウザでリンクをクリックするとダウンロードしてファイルを開くことになるので、ファイル保存してもファイルサーバー上に保存されません。 逆にMSIEで開くと直接ファイルサーバー上のものが開かれ、更新するとファイルサーバー上のものが置き換わるので注意ください。 == ログイン == Chimera Searchはファイルのアクセス権をチェックして検索結果を制御しますので、利用するにあたってログインする必要があります。 (検索結果から直接ファイルを開けるようにWindowsクライアントをドメインに参加させ、ドメインログオンする時と同じユーザー名、パスワードを利用することを推奨します。) WindowsクライアントのWebブラウザからChimera Searchをインストールしたサーバーに以下のようにアクセスするとログイン画面が表示されます。 [[Image:]] ユーザー名にはWindowsドメインコントローラもしくはファイルサーバーに登録されているWindowsユーザーのアカウント名とパスワードを入力してください。 == 簡易検索 == 認証されると以下の検索画面が表示されます。 [[Image:]]検索分の中にキーワードを入力し、「検索」ボタンを押すと検索結果が表示されます。 [[Image:]] アクセス権の無いファイルは検索結果に表示されません。 またMSIEの場合、検索結果のリンクをクリックするとそのままファイルが開くことができ、ファイル更新するとファイルサーバー上のものを直接更新することができます。 == 「検索文」への入力書式 == Chimera SearchではGoogleなどの検索エンジンと同じように、空白で区切ることでAND条件を指定できる簡便書式を使います。 簡便書式では、空白または「&」で区切るとAND条件になります。例えば、「インターネット セキュリティ」と入力すると、「インターネット」と「セキュリティ」の両方を含む文書を検索します。 複数の検索語を「""」で括ると、フレーズ検索ができます。例えば、「"United Nations"」と入力すると、「United」の直後に「Nations」が出現する文書を検索します。 「!」を使うとNOT検索ができます。例えば、「スキー ! スノボー」と入力すると、「スキー」を含むが「スノボー」を含まない文書を検索します。 「|」を使うとOR検索ができます。例えば、「レモン | ライム」と入力すると、「レモン」か「ライム」の片方または両方を含む文書を検索します。 「|」の優先順位が「&」や「!」より高くなっています。 また、ワイルドカードによって前方一致や後方一致や正規表現の条件を指定することができます(日本語には効果がありません)。前方一致の場合は文字列の後に「*」を置き、後方一致の場合は文字列の前に「*」を置き、正規表現の場合は文字列の前後に「*」を置きます。例えば、「euro*」だと「euro」で始まる単語を含む文書を検索します。「*sphere」だと「sphere」で終わる単語を含む文書を検索します。「*^inter.*al$*」だと「inter」で始まって「al」で終わる単語を含む文書を検索します。 空白や「&」「!」「|」「*」を検索語そのものとして指定したい場合は、フレーズ検索を応用してください。例えば「AT&T」を検索したい場合は、「"AT&T"」とします。 日本語だけでなく、英語、ドイツ語、フランス語、中国語など、大抵の言語を扱うことができます。英字の大文字と小文字の違いは無視されます。「Japan」「japan」「JAPAN」「jaPaN」は全て同じです。ダイアクリティカルマーク付きのラテン文字や、ギリシア文字、キリル文字でも同様です。 == 拡張検索 == 検索画面の「拡張検索」ボタンを押すと検索文字列に加え、以下の条件を指定できます。 * ファイル名「*」と「?」を使ったワイルドカードで指定したファイル名のファイルを検索できます。 * ファイルの所有者 * ファイルの更新日 * ファイルサイズ(K:キロバイト、M:メガバイトでも指定できます) [[Image:]]