[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[vine-users:026453] bye byeでshutdown!!


私の職場の状況はWindowsがほとんどで、
Linuxは試行的に私のマシンと他に1台入っているだけです。
たとえば私が不在のとき誰かが私のマシンを借りようとして立ち上げたところ、
WindowsにあらずLinuxのログイン画面が出て、
さてどうしてシャットダウンしたものかというような場面を想定しています。

そこでログイン画面でbye, パスワード入力でもbyeと入力すれば
直ちにシャットダウンされるようにします。

1) まずはbyeというユーザーを用意します。パスワードもbyeです。

2) sudoの設定は /etc/sudoers に
bye localhosst = NOPASSWORD: /usr/sbin/shutdown

としておけばlocalhostのbyeから/usr/sbin/shutdownを
パスワードの要求なしで実行できます。
グラフィカルログインのときはターミナルがあてがわれず
パスワードの入力ができないので、
ここでNOPASSWORDとしておかないとエラーで落ちます。

byeでログインすると/home/bye/.bashrcを実行するので、これを
/usr/bin/sudo /usr/sbin/shutdown -h now
とすればよいことになります。

しかしこのままだとリモートターミナルからも切断できることになります。
悪戯でなくとも、telnetを覚え始めた人が練習か好奇心から
私のマシンにbyeでログインしようとするかもしれません。
なにより自分がうっかりログインするかもしれない。

そこでbyeがどこからログインしてきたかを調べます。
ttyというコマンドを実行するとグラフィカルログインでは
'ttyではありません' (Vine Linux 2.0の場合)
ログイン後に仮想ターミナルで実行すると
'tty0' (あるいはtty1,tty2など)
telnetでログインすると
'dev/pst/0' などとなります。

3) これら使って、/home/bye/.bashrc を次のようにします。

### /home/bye/.bashrc
if tty > /dev/null | grep pst
  then
    echo Remote login denied.
    read x
    logout
  else
    /usr/bin/sudo /usr/sbin/shutdown -h now
    logout
fi
### .bashrc ここまで

以上
--
Masaki SHINOMIYA <shino _at_ pos.to>
The Bar Master,
Shino's Bar - Contemporary Art and Spirits
http://Paper.Cup.Com/ 
CAS <master _at_ cup.com>

この情報があなたの探していたものかどうか選択してください。
yes/まさにこれだ!   no/違うなぁ   part/一部見つかった   try/これで試してみる

あなたが探していた情報はどのようなことか、ご自由に記入下さい。特に「まさにこれだ!」と言う場合は記入をお願いします。
例:「複数のマシンからCATV経由でipmasqueradeを利用してWebを参照したい場合の設定について」
Follow-Ups: References: