Solarisのランレベル
0:電源オフ
s/S:シングルユーザーモード
1:管理モード
2:マルチユーザーモード
3:マルチユーザーモード(NFSサーバ起動)
4:未使用
5:電源オフ(自動電源断)
6:再起動
rcスクリプトも違っていて、ランレベル毎にrcが分かれている。
/etc/rc0 /etc/rc2 /etc/rc3 ....
そして、デフォルトのinittabの記述だと、ランレベル3のときはランレベル2も実行します。
参照元:MIRACLE LINUX Linux技術トレーニング 基本管理コース I
それぞれのランレベルで起動したり、停止するサービスは/etc/rc2.dとか/etc/rc0.dとかにシンボリックリンクを置くのはLinuxと同じなのだけど、chkconfig見たいなツールがないので、手作業でリンクをおかないと行けないようです。
ちなみに、今回調べたのは、Solaris9の環境。
WEBで調べていて、ちらほら見たところによると、Solaris10ではこのあたりが大幅に変わったみたい。
SMFとかいう新しい仕掛けに置き換わったということかな。
参照元:Solaris 10 の SMF
sarコマンド
Solarisのsar、オプションの意味
【使用方法】
sar [ -aAbcdgkmpqruvwy ] [ -o filename ] t [ n ]
sar [ -aAbcdgkmpqruvwy ] [ -e time ] [ -f filename ] [ -i sec ] [ -s time ]
【オプション】
TOMCAT:ActiveDirectoryで認証するためのJNDIRealmの作り方
設定例
ドメイン名:domain.local
接続アカウント:connector 接続パスワード:password
サーバー名:host.domain.local
TOMCATのroleをActiveDirectoryのグループにマッピング
<Realm className="org.apache.catalina.realm.JNDIRealm"
debug="99"
connectionName="CN=connector,OU=people,DC=domain,DC=local"
connectionPassword="password"
connectionURL="ldap://host.domain.local:389"
userBase="DC=domain,DC=local"
userSearch="(sAMAccountName={0})"
userSubtree="true"
userRoleName="memberOf"
roleBase="DC=domain,DC=local"
roleName="CN"
roleSearch="(member={0})"
roleSubtree="true"
referrals="follow" />
解説
tomcatのデフォルトの設定では、認証用にUserDatabaseレルムが使用されています。
この部分を設定例のようなJNDIレルムの設定に置き換えると、tomcat上でのBASIC認証などでActiveDirectoryを参照できます。
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
それぞれの設定について説明します。
ここに解説がない設定項目はtomcatのマニュアル(JNDIレルム)を参照。
また、ADSI EDIT(Windows標準のツール)やLDAP Browser/Editor(JavaベースのLDAPビューア)をつかうとユーザやグループの属性をLDAPを通じて確認することができます。
ActiveDirectory接続設定
connectionName="CN=connector,OU=people,DC=domain,DC=local"
connectionPassword="password"
ActiveDirectoryに接続するためのアカウント設定です。
connectionNameには接続に使用するユーザのDNを記述します。Windowsにログインするときのユーザとパスワードではなく、ldap的ユーザ名です。
なので、CNは日本語になっている場合も多いかも知れません。(ちなみに、日本語も通りました。)
ドメイン
今回は、domain.localというドメイン名でActiveDirectoryを構築してみました。
userBase="DC=domain,DC=local"
userSubtree="true"
roleBase="DC=domain,DC=local"
roleSubtree="true"
userBase、roleBaseがユーザやロールを検索する起点です。userSubtree、roleSubtreeをtrueとすることで、これより下階層も検索対象に含めます。
ユーザ名の設定
認証時のユーザ名をどの属性にマッピングするかという定義。
userSearch="(sAMAccountName={0})"
ユーザオブジェクトのsAMAccountNameという属性がどうやらWindowsにログインするときのユーザ名のようです。
認証ダイアログでのユーザ名もログインのときと同じにしたいので、この設定にしました。
ユーザ→グループを紐付けるユーザオブジェクトの属性
ユーザオブジェクトのmemberOf属性には、そのユーザが所属するグループ名が入っています。
userRoleName="memberOf"
この属性を使うとユーザとグループが関連付けられます。
グループをロールにマッピングする設定
roleNameは、ロール名=グループ名にしたいので、CNから取得することにします。
roleName="CN"
roleSearch="(member={0})"
グループオブジェクトのmember属性にそのグループに所属するユーザ名が入っています。
認証時に入力されたユーザ名とmember属性を引き当ててグループを検索する設定とします。
リファラー処理?
JNDIRealmのjavadocによると、ActiveDirectoryに対して認証を行う際は、デフォルトでは処理できないので、followをセットせよと書いてありました。
referrals="follow"
Subversionの続き履歴を残したままリポジトリ間でファイルを移動
普通にエクスポートすると、svnの管理情報が無くなった普通のディレクトリツリーが出来る。
これをインポートすると当然履歴は無くなるわけで・・・
リポジトリを増やしたり統合したりして、整理したいような場合に、これまでの履歴を残したままリポジトリ間でファイルを移動するにはどうしたらいいのか?
svnadmin dump
ありました、svnadminで出来るんですね。
svnadmin dump 元のリポジトリパス > dumpfile
とすると、手元にリポジトリの中身を全部一つにまとめたdumpfileが出来ます。
小さいリポジトリでしか試していないけど、リポジトリが大きくなったら大変そう。。。
type dumpfile | svndumpfilter include 取り出したいディレクトリのパス > sub-dumpfile
※ unix系ならtypeはcat
取り出したいディレクトリのパスはスペース区切りで並べれば複数指定できる。
例:svndumpfilter include hoge/ foo/ bar/subbar/
※ こうやって指定しても、hogeOLDみたいなディレクトリまで含まれてしまうのはどうにかならないのかな。
svnadmin load 移動先のリポジトリパス < sub-dumpfile
これで移動先のリポジトリに、sub-dumpfileに収められた内容が履歴を残したままインポートできる。
移動先にもともとあるファイルで、異なるファイル名(パス)のファイルはもちろん消えたりしなかったけど、同じファイル名(パス)があったらどうなるかは試してません。
移動先のリポジトリパスは、URLでは指定できません。
ローカルで実行してください。