Monthly Archives: 12月 2008

rcスクリプトの起動順を調べるには

Pocket

$ rcorder /etc/rc.d/* /usr/local/etc/rc.d/* 2>&1 | less

上記のコマンドを実行する。

その他、依存関係に問題がある場合にも教えてくれる。

No tags for this post.

yumのproxy設定

Pocket

CentOSをインストールした。

DISCイメージが何枚かあってよくわからない。雑誌付録のDVDを借りた。

特に問題なくインストールは完了したが、yumのproxy設定でちょっとつまずいたのでメモ

yumのproxy設定

http://www.centos.org/docs/5/html/yum/sn-yum-proxy-server.html

# The proxy server - proxy server:port number
proxy=http://mycache.mydomain.com:3128
# The account details for yum connections
proxy_username=yum-user
proxy_password=qwerty

と、書いてあるが、なぜか効かない。*1

少し調べてみるとyumはcurlを使っているので、環境変数http_proxyによりcurl側で対応した。

デフォルトのレポジトリ参照先は遅いので、国内に変更する。

/etc/yum.confがyumの設定ファイルだが、レポジトリは/etc/yum.repos.d/*.repoに切り出せる。

適当に日本のミラーリストを検索して下記のように変更。

/etc/yum.repos.d/CentOS-Base.repo

# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
[base]
name=CentOS-$releasever - Base
baseurl=http://ftp.riken.jp/Linux/centos/$releasever/os/$basearch/
gpgcheck=1
#released updates
[update]
name=CentOS-$releasever - Updates
baseurl=http://ftp.riken.jp/Linux/centos/$releasever/updates/$basearch/
gpgcheck=1
[addons]
name=CentOS-$releasever - Addons
baseurl=http://ftp.riken.jp/Linux/centos/$releasever/addons/$basearch/
gpgcheck=1
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=http://ftp.riken.jp/Linux/centos/$releasever/extras/$basearch/
gpgcheck=1
[contrib]
name=CentOS-$releasever - Plus
baseurl=http://ftp.riken.jp/Linux/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=1

*1:Fedora9は大丈夫だった。

No tags for this post.

vsftpdでchrootの設定を行うには。

Pocket

ローカルユーザの場合と、anonymousユーザの場合で対応が異なる。

anonymousユーザ向けには、anon_rootでchroot先のディレクトリを設定するだけで終了。

# grep anon_root /etc/vsftpd/vsftpd.conf
anon_root=/var/ftp/pub
#

ローカルユーザ向けの場合には、少々手間が必要。

まず、local_root=<ディレクトリ名>として、ログイン後に移動させるディレクトリを指定する。

さらに、chroot_list_fileで指定したファイル(以降chroot_list_file)に該当ユーザを書き込んでおき、chroot_list_enable=YESとしてリストを有効にする。

(ちなみに、chroot_local_userをYESにすると、chroot_listの意味合いが違ってくるが、ここでは触れない。)

なお、chroot_listを有効にしておいてlocal_rootを指定しないと、ユーザのホームディレクトリにchrootされる。

sftpならともかくとして、ftpでユーザのホームディレクトリにアクセスさせるのはセキュリティ上好ましくないので、local_rootと必ずセットにすること。

逆に、local_rootを有効にしてchroot_listを無効にした場合、該当ユーザのログイン直後のディレクトリはlocal_rootで指定されたディレクトリであるものの、その上のディレクトリへも自由に移動できる。これもこれで危険。

/etc/vsftpd/vsftpd.conf

# chroot settings for local user
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
local_root=/var/ftp
# chroot settings for anon user
anon_root=/var/ftp
No tags for this post.

vsftpdのホワイトリスト/ブラックリストの設定

Pocket

仕事でvsftpdを入れたのでメモ。

ホワイトリスト/ブラックリストの設定

userlist_fileで指定するファイル(以降、userlist_file)には、ユーザをリストするのだが、このファイルの扱いは、vfstpd.confの設定により180度変わる。

userlist_enable=YES かつ userlist_deny=YESのとき;

 userlist_fileにリストされているユーザのログインを拒否する。

userlist_enable=YES かつ userlist_deny=NOのとき;

 基本的にすべてのユーザのログインが拒否される。

 しかし、uselist_fileにリストされているユーザについてはログイン許可

つまり、userlist_fileがホワイトリストになったり、ブラックリストになったりする。

で。それとは別に、vsftpdのデフォルトPAM設定(後述)では、ブラックリストとして/etc/vsftpd/ftpusersもチェックしているので注意が必要。

あるユーザがftpusersにリストされた時と、ブラックリストとしてのuserlist_fileにリストされた時の違いは、前者はパスワード入力後に失敗となり、後者はユーザ名を入れた瞬間に失敗となる。

いずれにしろ/etc/vsftpd/ftpusersがブラックリストとして動作するので、userlist_fileはホワイトリストとして使うことにする。

なお、anonymousユーザ(anonymous, ftp)もこのリストの対象になるようだ。

PAM設定(CentOSでの内容)

# grep pam_service ./vsftpd.conf
pam_service_name=vsftpd
# cat  /etc/pam.d/vsftpd
#%PAM-1.0
session    optional     pam_keyinit.so    force revoke
auth       required     pam_listfile.so item=user sense=deny
file=/etc/vsftpd/ftpusers onerr=succeed
auth       required     pam_shells.so
auth       include      system-auth
account    include      system-auth
session    include      system-auth
session    required     pam_loginuid.so
No tags for this post.

proflibsって何?

Pocket

proflibsが何だか分からなかったんだが。

http://lists.freebsd.org/pipermail/freebsd-questions/2008-October/184180.html

Re: proflibs by Jeremy Chadwick on 2008-10-11T02:10:33+00:00
On Fri, Oct 10, 2008 at 11:06:11PM -0400, Ansar Mohammed wrote:
> Can anyone explain what are the proflibs on the install media, and what they
> are for?
They're special versions of all the libraries that come with FreeBSD
which contain profiling code (code for determining the amount of time
spent within or between two functions).
They're for developers.

proflibsというのは、プロファイリングコードを含んだ、ライブラリのセットのこと。

プロファイリングコードとは、開発時にコードのベンチマークを行うためのもので、要するに一般ユーザにはまったく関係ない、ということですか。

しかしこの回答者のサイトhttp://www.parodius.com/はいったい…?

No tags for this post.

mergemasterは-sivaでなく-UPiで。

Pocket

mergemasterについて、FreeBSD-questionsに面白い投稿(http://lists.freebsd.org/pipermail/freebsd-questions/2008-September/182096.html)があった。

もし結論を早く知りたい人がいれば、結末から読んでください。

2009/2/16 追記。本記事も陳腐化したので、mergemasterをさらにさらにさらに早くをどうぞ。

mergemasterにはかなり前に自動アップデート機能が追加されていたらしく…。

具体的には、mergemasaterに-Uオプションを与えて実行する。

これは、ユーザ変更がされていないファイルであれば自動的にアップデートするというもの。

便利は便利なのだが、その性質上、ユーザ変更の有無を比較するための原本が必要になる。

その原本が/var/db/mergemaster.mtree。

今までに何度かmergemasterを実行していれば上記ファイルはあるはずだが、ない場合には「ソースをアップデートする前に」mergemasterを一回カラ打ちする必要がある。

実行例

$ mergemaster
*** Unable to find mtree database. Skipping auto-upgrade.
*** Creating the temporary root environment in /var/tmp/temproot
*** /var/tmp/temproot ready for use
*** Creating and populating directory structure in /var/tmp/temproot
mtree -eU  -f /usr/src/etc/mtree/BSD.root.dist -p /var/tmp/temproot/
(略)

こうしておけば、次からmergemaster -Uとやるだけで、かなりのファイルを自動アップデートしてくれて楽になるはず。

しかし、自動アップデートはやはり怖いので、入れ替え前のファイルはどこかに保存しておきたい。だから-Pオプションも追加。バックアップは/var/tmp/mergemaster/preserved-files-`date +%y%m%d-%H%M%S`に作られる。

さらに、アップグレードにより新規に追加されたファイルは問答無用でインストールしていいはずなので、-iオプションも追加。

つまりmergemaster -UPi

ところで、mergemasterの設定ファイルであるmergemaster.rcは/usr/share/examples配下にない。何でないのだろう、と思っていたのだが、なんとmergemasterのマニュアル内にあった。最後まで読んでなかったよ…。

というわけで、以下のファイルを/etc/mergemaster.rcとして保存しておけばオプション要らず。

/etc/mergemaster.rc

AUTO_INSTALL=yes
AUTO_UPGRADE=yes
PRESERVE_FILES=yes
PRESERVE_FILES_DIR=/var/tmp/mergemaster/preserved-files-`date +%y%m%d-%H%M%S`
IGNORE_MOTD=yes
VERBOSE=yes

AUTO_UPGRADEが-Uオプションに対応するが、現時点(7.1-BETA2)ではマニュアルに記載されていない。

4行目以降はmergemasterのマニュアルを参考に書いた。

PRESERVE_FILES_DIRはバックアップファイルを置くディレクトリ書式の指定。

IGNORE_MOTDはmotdを無視する設定。

No tags for this post.

gripでrip & エンコード

Pocket

CDのrippingとmp3エンコードを一緒にやってくれるツールとしてgripをインストールした。

非常に手軽で良い。夕飯を作りながら215曲、2.2Gのライブラリができた。

FreeBSDであればportsのaudio/gripから。

エンコーダをいろいろと選べるので、pkgではなくportsからインストールしたほうが良いと思う。

とはいっても、俺が結局使うのはスピード重視でgogo(/usr/ports/audio/gogo)。

rippingツールも同じくスピード重視でcdda2wav(/usr/ports/audio/cdda2wav)。

gripのエンコーダ設定で/usr/local/bin/gogoとし、オプション設定でbit rateを192に。

また、DiscDBのセカンダリにはfreedbtest.dyndns.orgを設定して日本のCDもカバーするようにした。

ただ、糞マイナーな安物クラシックCDもたくさんあって、これがCDDBに登録されていないことも多く・・・。

こっちは気合入れてタグ入れないとなあ。

No tags for this post.