[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:18148] Re: utmp warning



沼尻です。

At Mon, 4 Oct 1999 13:35:56 +0900,
Yuusuke Tahara <m5021212@xxxxxxxxxxxx> wrote:
> 
> たはら@会津大です.

  (省略) 

> これは,たぶん「getlogin() で utmp のエントリーが得られないから,代り
> に LOGNAME を使うよ」と言っているのではないかと思うのですが..つまり,
> LOGNAME はセットされているけど getlogin() が効いてないんだと思います.

すいません、勘違いしていました (^^;
man utmp(5), man getlogin(3) を見ると、getlogin は utmp を参照するけど X から
ログインする場合は(xdm を用いてログインする場合は) utmp じゃなく wtmp を作る
べきと書かれているので、この違いの影響を受けているみたいですね。 
# でも、この getlogin は perl じゃなくて C なんだよな・・・
 
> 私の環境だと,コンソールからログインしても変りませんでした.
> したがって,沼尻さんの状況とは異なるのかも知れません.
> # なんとなく原因は fakeroot 関係のような気がしてます.

で、これを調べてみようと思ったら fakeroot が

ii  fakeroot        0.0-17.5       Gives a fake root environment.

という、いつインストールしたのか分からないぐらい古いものなので (^^;
新しいバージョンのものをいれてから試してみます。
 
> とりあえず,getlogin() について Perl 本には
> 「/etc/utmp から,(もし見つかれば)現在のログイン名を返す.
>   偽が返されたら,getpwuid を試してみれば良い.」
> とありましたので,/usr/lib/dpkg/controllib.pl の最初の方で
> 
> $getlogin = getlogin();
> 
> とあるのを,Perl 本の通りに
> 
> $getlogin = getlogin() || (getpwuid($<))[0];
> 
> に変更したら,警告は出なくなりました.

エラーの示す部分が単にユーザー名が欲しいだけなら、メンテナさんに
このように直してもらったほうが良さそうですね。