« 無理なく続けられる年収10倍アップ時間投資法 | トップページ | レバレッジ時間術 »

2007年10月27日 (土)

Fedora7で知ったこと

今日はFedora7でいろいろ発見があったので、メモ

■ログイン時の初期化スクリプトについて

Fedora7 on coLinuxで、ログインするたびに、

$SHELL -c "echo > /dev/tcp/10.0.2.2/7000" 2>>/dev/null

と謎のエラーが出ていた理由が分った。

■ユーザを一括大量登録する方法

# newusers userlist.txt

■ログインパスワードの算出方法

crypt(3)関数を用いているらしいのだが、その仕様について

■newusersコマンド

 newusersコマンドを用いると、/etc/passwdライクなテキストファイルを引数で与える
ことで、ユーザを一気に登録することができる。ただし、グループは作成しておくこと。
作成される各ユーザのホームディレクトリが空であること。に注意。

/etc/passwdライクなテキストファイルについての解説は後で書く。

 なお、newusersコマンドはfedora-usermgmt-shadow-utils.noarchパッケージに含ま
れていた。

■bashの初期化スクリプトの動作

ログインシェルをbashにしてある場合、ログイン時には初期化処理が以下のように走る。

  /etc/profile
  →/etc/profile.d/*.sh
  ~/.bash_profile
    →~/.bashrc
      →/etc/bashrc

矢印は、スクリプトがスクリプトを呼ぶのを表現している。
ただし、非ログイン時(su - lucy(?))には、~/.bashrc以降が呼ばれる。
http://www.stackasterisk.jp/tech/engineer/lpic03_01.jsp

■Fedora 7 on coLinuxでログイン時に出力される謎のエラー

謎のエラーは、/etc/profile.d/espeaker.shが出力していた。ので、このファイルを
リネームし、espeaker.sh_MOVEDなどとすると、/etc/profileから起動されず、
エラーは出力されなくなった。

■/etc/shadowに保存されるユーザパスワードのハッシュ値

これは、crypt(3)関数によって生成されるのだが、入力された平文パスワードの他に、
引数saltによってばらつきがもたらされる。そのため、同じパスワードを入力しても
違うハッシュ値が生成される。

crypt(3)関数はmanによると

$ man crypt
CRYPT(3)                       Library functions                      CRYPT(3)

NAME
       crypt - password and data encryption

SYNOPSIS
       #define _XOPEN_SOURCE
       #include <unistd.h>

       char *crypt(const char *key, const char *salt);

■もともとの仕様
・keyが指し示すアドレスから、下位7bitずつ8character分合計56bitをキーとして用いる。
・saltが指し示すアドレスから、[a-zA-Z0-9./]の文字セット2character分、をsaltと
 して、すなわち64x64=4096通り分アルゴリズムをばらつかせるために用いる。

・cryptは、固定文字列(通常はall-zeros)を56bitのキーを使って繰り返し暗号化し、
 結果を13文字のpritable ASCII charactersとして、crypt(3)内のstaticな変数に
 格納し、そこへのポインタを返す。なお13文字中の最初の2文字はsaltを表している。

■GNU拡張(passwdコマンドではこれが使われる模様)
glibc2バージョンでは、以下の拡張が行われている。
・saltの指し示す最初の3文字が"$1$"で始まり、それ以降最大8文字が続き、"$"で終わる場合は、DESではなく、MD5に基づいたアルゴリズムを用いる。

・この場合、staticな領域に書き込まれるのは"$1$<salt>$<encoded>"である。
 <salt>は最大8文字、<encoded>は最大22文字である。<salt>も<encoded>も
 [a-zA-Z0-9./]の文字セットからなる。

・keyは8byteでは無く、もっと用いられる。

・また、

       Programs using this function must be linked with -lcrypt.

とのこと。

|

« 無理なく続けられる年収10倍アップ時間投資法 | トップページ | レバレッジ時間術 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/207693/16884559

この記事へのトラックバック一覧です: Fedora7で知ったこと:

« 無理なく続けられる年収10倍アップ時間投資法 | トップページ | レバレッジ時間術 »