• 締切済み

ログイン状態になっているゾンビユーザ?を消したい

Windows上のtelnet端末からLinuxにログインし、何らかの理由でログアウト不能になってしまい、telnet端末をWindows上で終了してしまった場合など、Linux上でのログイン状態が消えない場合があるようです。 以下がそんな状態だと思われます。 # w 10:52:28 up 21 days, 23 min, 7 users, load average: 0.03, 0.01, 0.00 USER TTY LOGIN@ IDLE JCPU PCPU WHAT turbo :0 16Mar07 ?xdm? 4:57m 0.02s /bin/sh /home/turbo/.xsession turbo pts/0 16Mar07 21days 0.00s 0.19s kdeinit: kwrited turbo pts/2 09:48 32:04 0.02s 0.02s -bash turbo pts/3 09:48 0.00s 0.05s 0.05s -bash turbo pts/4 10:47 27.00s 0.04s 0.04s -bash turbo pts/5 10:48 0.00s 0.03s 0.01s sshd: turbo [priv] # who turbo :0 Mar 16 10:29 turbo pts/0 Mar 16 10:29 turbo pts/1 Mar 27 10:46 (192.168.1.13) turbo pts/2 Apr 6 09:48 (192.168.1.20) turbo pts/3 Apr 6 09:48 (192.168.1.20) turbo pts/4 Apr 6 10:47 (192.168.1.13) turbo pts/5 Apr 6 10:48 (192.168.1.13) wコマンドでは「pts/1」が表示されませんが、whoコマンドでは「pts/1」が残存しているように見えます。 「pts/1」のゾンビユーザ?を消すにはどうしたら良いでしょうか? 今のところ実害は無いですが、このままの状態では何か良くないことはあるのでしょうか? よろしくお願いします。

みんなの回答

  • notnot
  • ベストアンサー率47% (4846/10257)
回答No.2

w コマンドは、プロセスの状態を調べて、ログイン情報を表示します。 who コマンドは、utmp というログイン・ログアウトの記録ファイルの内容を加工して表示します。 何らかの原因でpts/1からのログアウトの記録が utmp に書かれなかったものと思います。特に対処は不要で、次にpts/1を使えば情報は上書きされます。ただ、頻発するようだと「utmp に記録が残らない」の原因が何かあるはずなので、調べたほうがいいでしょうね。 utmp の場所はOSによって異なるので、locate コマンドで探してください。過去の記録は wtmp ファイルにあり、表示するのには last コマンドを使います。

peanuts18
質問者

お礼

コメントありがとうございます。 ご説明もありがとうございます。仕組みが少し理解できました。 次にpts/1を使うのはいつになるのかは不明ということでしょうか? また、ptsは有限で、そのうち一杯になってログインできなくなるような気もします。これが「このままの状態では何かよくないことがあるのでしょうか?」の意図でした。 utmp、wtmpはバイナリファイルのようですね(開いてみました)。 ログアウトの記録ファイル(utmp)をunix上のコマンドで編集することは出来るのでしょうか?もしくはデータベースのようにdeleteを発行するようなことは出来るのでしょうか?

  • scratch
  • ベストアンサー率50% (5/10)
回答No.1

「skill」コマンドを利用してみたら如何でしょうか? 使い方は man skill なり、ネット検索なりで情報は拾えますので、お試しあれ。

peanuts18
質問者

お礼

コメントありがとうございます。 manはどうも英語がわからず、 skill -KILL -v /dev/pts/1 を実行してみましたが、効果が無く、 webで「skill unix 使用法」で検索しましたが、良いページが見当たりませんでした。

関連するQ&A

  • whoコマンド

    whoコマンドでだれがログインしているか調べたら、pts0とpts1があると表示されました。 複数ログインした覚えがないので、wコマンドで調べてみると、pts1が現在の端末ということがわかりました。 pts0は最初にログインした時間だったのですが、whatの項目をみると"-bash"となっていました。 とくに何もしていないはずなのですが、どうしてpts0,1という風に2つあり、whatの項目が"-bash"となっているのでしょうか?

  • Linuxのwコマンドでrootが長期ログイン

    Linuxのwコマンドでrootが長期ログインしているように見えるのですが以下はどのような意味でしょうか? 調べ方が悪いのかwコマンドの説明やbashの説明などを読んでもrootが長期ログインしている理由がわかりません。 宜しければヒントや検索キーワードを教えていただけると助かります。 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 - * 65days 0.06s 0.06s -bash 65日間に渡ってbashを行っているとは一体どういうことか全くわからないのです。

  • Linuxでログインしないユーザーを作成した場合

    Linuxでログインさせたくないユーザーを useradd -s /sbin/nologin XXX の様にして作成した場合、 /home/XXX 以下に .bashrc, .bash_profile, .bash_logout 等のファイルが作成されましたが、 元々シェルは使わせたくないので削除しても問題ないでしょうか?? また、もし問題がないのであれば、 始めから.bash* のファイルを作成させないようなユーザー追加方法はあるのでしょうか? ご教授ねがいまする。

  • ひとつのPCで複数人がログインする方法

    ユーザログイン時の.bashrc,.bash_profileの動作を検証したいと思っています。 そこでXを立ち上げた状態でユーザAからユーザBをログインしたいと思うのですが、可能でしょうか? ユーザAでログインした場合は、いったんログアウトしてxdmまで戻らないとユーザBはログインできないものでしょうか? Suコマンドでユーザを変えた際は、ログインしたことになるのでしょうか?

  • ユーザーについておしえてください

    Red Hat7.2でPerlとProFTPDとapacheを入れました。 useraddで作ったユーザーに、ユーザーによってそれぞれいろいろ制限を与えたいのですが… 1. /home/ユーザー名 に作られるディレクトリの容量制限(ディスクスペース:ジオシティなら12MBまでのような) 2. telnetでログインしたときのコマンド制限(許可してもいいだろうと思われるコマンドと、これは許可しない方がいいコマンド) 3. 第3者であるユーザーからは見えると好ましくないLinuxのディレクトリの制限 4. ユーザーによってCGIを許可するかどうか 以上についてどうすればいいか詳しく教えて頂けないでしょうか?経験者の方の意見は参考にさせて頂きます。

  • リモートからログインできないようにする

    linuxではtelnetデーモンなるものが起動しているらしく、リモートからログインしたりコマンドの実行をできないようにしたいのですがどうやって設定しますか?

  • ログインした時の現在時刻を知るには?

    telnetでログインした後 Linux機の現在時刻を知るには どうゆうコマンドを打てばいいでしょうか?

  • ログインするときにユーザー名がでない。

    ログインするときにユーザー名がでない。 ログインするときにユーザー名を選択すると思いますが、postgresという名のユーザー名が 選択できません。(他のユーザー名はちゃんと表示もされますし、選択もできます。) 端末からのコマンドでは「su - postgres」でユーザーを変更できますが、 GUIのデスクトップ環境で最初からpostgresユーザーでログインしたいと思っております。 どうかご教示お願い致します。 OSはfedora10 デスクトップ環境はGnome2.24.0です。

  • CentOS7でユーザーを取得する方法を教えて下さ

    CentOS7でユーザーを取得する方法を教えて下さい コマンド、またはbash上で、フルネームとユーザー名を取得したいです。 添付しているのはGUI上の『ユーザーの追加』画面です。 ここで追加したユーザーのフルネームとユーザー名をコマンド、またはbash上で、一覧ではなく、ログインしている全ユーザーではなく、カレントユーザーの情報を取得したいです。 以上、よろしくお願いします。

  • すべてのリモートログインのrootログインを禁止する

    お世話になっております。 現在RedHat Linux Enterprise 5にて検証を行っております。 そこでユーザからの要望で、全てのリモートログインにおける rootユーザログインを禁止したいという要望が出てきました。 すべてというのは、ssh、ftp、telnet、その他のユーザ、パスワードを 指定してログインしてくるセッションのことを指しております。 一般ユーザのみのログインを可能にしたいのです。 sshやftp、telnet等、個別にrootログインの禁止はできますが、 すべてのリモートアクセスを制限する設定などは ありますでしょうか。