home «前の日記(2006-01-10) 最新 次の日記(2006-01-13)»

いろいろ
Seize the day.

2004|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|07|09|10|

2006-01-11 [長年日記]

[comp] passwd ファイルにコメント行や空行は許されるか

Solaris 7 で,NIS の passwd ファイルに「#」でコメント行をつけてからマップを make しようとしたらエラーが出た (ちなみに最終行の場合はエラー出なかった.謎).あれ,コメント行ってダメなんだっけ?

調べてみたところ,/etc/passwd に関してはコメント行 OK だという OS とダメという OS がある.NIS の passwd についての記述は見当たらなかったけど,/etc/passwd に準ずると考えていいのかな?
さらに,コメント行がダメな場合,空行もダメらしい! 不正な行と見なされるんだそうだ.なぬー,知らんかった(ぉ

結局真相はよくわからないのだが,空行,コメント行は入れないに越したことはないのかも.

以下,コメント行,空行 OK だお派.FreeBSD passwd(5).
Lines whose first non-whitespace character is a pound-sign (#) are comments, and are ignored. Blank lines which consist only of spaces, tabs or newlines are also ignored.
最初の空白文字でない文字がポンド記号 (#) であるような行は注釈であり、無視されます。スペース、タブ、改行だけからなる空行もまた無視されます。
ちなみに FreeBSD 4.4 で getpwent(3) すると
/etc/passwd A Version 7 format password file
となる.が,Version 7 UNIX の passwd(5) には特に空行やコメント行の記述はない.
コメント行,空行ダメだお派.Sun Solaris 9 の passwd(4) には
Blank lines are treated as malformed entries in the passwd file and cause consumers of the file , such as getpwnam(3C), to fail.
とある.ただし,Solaris 8 以前の man には一切そのような記述はなかった.
また,SCO UnixWare 7 の場合,passwd(4) には以下のように書いてある.
Comment lines (lines preceded by the # (hash) character) are not allowed in the /etc/passwd file.
以下のメーリングリストアーカイブでは,
Blank lines are a definite no-no.
とある.また,コメント書きたいなら GCOS 欄があるじゃんってことらしい.
以下のサイトでは,不正アクセスに対するチェック事項の一つとして,/etc/passwd の空行を調べるようにとある.
/etc/passwd ファイルが変更されていないかを調べます。 知らないユーザまたは空行が加えられていないか。
ただし,このチェックリストのオリジナル版と思われる以下の文書には,空行云々は書いてないので,日本語版の空行云々の根拠は不明.
Examine the /etc/passwd file on the system and check for modifications to that file. In particular, look for the unauthorized creation of new accounts, accounts with no passwords, or UID changes (especially UID 0) to existing accounts.
Linux では,passwd をコメントアウトした時の謎の挙動が報告されている.
しかし、今回、私がこの作業を行ってわかった単純なミスがあったので紹介したいと思います。 これが直接の原因でLDAPを使って認証できなかったのではないかもしれないのですが・・・ /etc/passwd が '#' でコメントアウトできないということ。 私が勝手に勘違いしていたのですが http://www.linux.or.jp/JM/html/shadow/man5/passwd.5.html とか見ても/etc/passwd は'#' でコメントアウトできると書いてありません。 私は、LDAPだけの認証でログインしようとするとき、 /etc/passwd にあるユーザを'#' でコメントアウトしてからログインしていたのですが それでは今までログインできませんでした。 そこで思い切って/etc/passwd ごと消してしまったら見事にログインできました。 なのですが、1回ログインできるようになってから同じように /etc/passwd にあるユーザを'#' でコメントアウトしてログインしてもちゃんとログインできてしまいました。 なのでこれが原因であるかは謎です・・・
Mandriva Linux のドキュメントにはこうある.
vi /etc/passwd Have a look at this file. It mustn't contain any blank lines, comments or non-ASCII characters. If you find them, delete them.
さらに調べて行くと,決定的な文書を発見.
Blank lines in password file could cause system operation problems
適用されるプラットフォームは Various: Unix Any version だそうだ.一応 "Low Risk" らしいが….

うーむ.悩ましいな.

[misc] 戸籍のトリビア

なんつーかいろいろとびっくりだ.
【誤】北方領土に本籍は置けない 【正】これだけは例外で、置くことが可能である。
祖父が孫を養子にした場合を除き、祖父と孫は同じ戸籍に入れない(三代戸籍の禁止)。
全員の除籍により誰もいなくなった戸籍は除籍簿に入れられ、80年以上保存される。
このエントリーをはてなブックマークに追加 はてなブックマーク数 はてなブックマークコメント   このエントリーを livedoor クリップに追加 livedoor クリップ数 このエントリーを del.ici.ous に追加 このエントリーを buzzurl に追加 buzzurl クリップ数

お名前:
E-mail:
コメント:
[TrackBack URL: http://nao.s164.xrea.com/td/tb.rb/20060111]
[(注) スパム対策のため,言及リンクのないトラックバックは受け付けていません.]
本日のリンク元
検索

以下の広告はサーバによって自動的に挿入されています.


Copyright © 2004-2006, nao. All rights reserved.