TeX Live 2012をCentOS6にインストール

TeX Live - TeX Users Group
Installing TeX Live over the Internet - TeX Users Group
Quick install - TeX Live - TeX Users Group

実はCentOS6にはtexliveという
パッケージがあるが2007で
日本語に難があるらしいので
これはアンインストール
その後上記のインストール方法に書かれた方法で
2012のパッケージをインストール

% wget http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
% tar xvzf install-tl-unx.tar.gz
% cd install-tl-20121125  #ディレクトリ名は違うかと
% sudo ./install-tl

するとデフォルトで/usr/local/texliveに入る

/usr/local/texlive/2012
は触らず
/usr/local/texlive/texmf-local/tex/latex/local
にローカルなstyを入れて

% sudo mktexlsr

した
ちなみに実行ファイルは/usr/local/texlive/2012/bin/x86_64-linux
にあるのでPATHを通すのを忘れずに

あとパッケージのアップデートは

% sudo tlmgr update --all
% sudo tlmgr update --self

下記の先人の方が非常に参考になりました
CentOS 6.3にGhostscript 9.06とTeXLive 2012をインストールする - どこかWiki
フォント埋め込みに関して
TeX/Font/MapFile/KanjiMap - 東京大学大学院人文社会系研究科/文学部西洋古典学研究室の学生有志によるWikiページ

CentOS6のApacheでRailsとPassengerをSELinux Enforcingで動かす

Redmineの設定だが
http://www.redmine.org/projects/redmine/wiki/RedmineAndSELinuxOnCentOS
が参考になった

調べてみると
Permissiveにしてaudit.logの拒否出力を
許可するモジュールを作れという大雑把なものが多く
それはあんまりかなと思い
ひとつひとつディレクトリやファイルの権限を変えてみた

インストールは下記

% ruby -v
ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]
% sudo gem update --system 1.6.2
% sudo gem install rails -v 2.3.14
% sudo gem install passenger -v 2.2.15
% sudo passenger-install-apache2-module

最後のコマンドではApacheモジュールをコンパイルするので
事前にいろいろなdevelやaprなど入れておく必要あり

1.passengerの権限変更

% cd /usr/lib64/ruby/gems/1.8/gems/passenger-2.2.15/ext/apache2
% sudo chcon -t bin_t ApplicationPoolServerExecutable
% sudo chcon -t httpd_modules_t mod_passenger.so

前者は実行するのでbin_tに
後者はApacheモジュールなのでhttpd_modules_tに変更

2.Apacheの設定変更

PassengerTempDir /var/tmp/passenger

としてソケットを出すディレクトリを変更後

% sudo mkdir /var/tmp/passenger
% sudo chcon -t httpd_tmpfs_t /var/tmp/passenger

3.railsコンテンツの権限変更

% sudo chcon -R -t httpd_sys_content_t ${RAILS_ROOT}
% cd ${RAILS_ROOT}
% sudo chcon -R -t httpd_log_t log
% sudo chcon -R -t httpd_tmpfs_t tmp

最後のコンテンツ権限変更は不要かもしれない

Perlでシンプルなパスワード生成

調べてみると
CPANにもたくさんあったし
独自実装してるサイトもたくさんあった
# CPANにありすぎると選びにくい
そのなかで
Perlでパスワード生成 - Noteless Notes
が非常に参考になった
こちらは文字数も文字種も決まっているので
もうちょっとシンプルに書いてみた

sub _gen_rand {
    my $length = 8;
    my $chars = [ 0..9, 'a'..'z', 'A'..'Z' ];
    my $rand = '';
    $rand .= $chars->[rand(scalar(@$chars))] for (1..$length);
    return $rand;
}

OpenLDAPでnsAccountLock

OpenLDAP(試したのはCentOS5の2.3.43)にはnsAccountLockのスキーマがない
手動で追加すると
slaptestでoperational attributeはダメだよって言われて起動もできない

代用として
ppolicyオーバレイのなかに
pwdAccountLockedTimeというattributeがあり
これを000001010000Zにすると
ロックできる
詳しくは man slapo-ppolicyで

具体的にどうするかというと
デフォルトのslapd.confに

include /etc/openldap/schema/ppolicy.schema
:
modulepath /usr/lib64/openldap
moduleload ppolicy.la
:
database bdb
overlay ppolicy

として再起動すればOK
停止したいエントリを

dn: uid=hoge,dc=example,dc=net
uid: hoge
:
pwdAccountLockedTime: 000001010000Z

とすればロックする
# ldapsearchでは明示しないと出てこないでの注意

ppolicyにはいろいろ機能があるようで
例えばパスワードn回間違えるとロックすることもできるみたい
これも詳しくは man slapo-ppolicyで