私の職場の状況は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>
Follow-Ups:
- [vine-users:026530] Re:bye byeで shutdown!!(修正板)Masaki SHINOMIYA
- [vine-users:026403] root以外でshutdown!!N.adachi
- [vine-users:026411] Re: root以外でshutdown!!OOSATO,Kazzrou
- [vine-users:026414] Re:root以外でshutdown!!Hideya Hane
- [vine-users:026421] Re: root以外でshutdown!!四宮雅樹
- Prev by Subject: [vine-users:026452] ノートマシンのネットワークカード認識
- Next by Subject: [vine-users:026454] Re:二枚目のNICが上手く動作しない
- Previous by thread: [vine-users:026444] Re:root以外でshutdown!!
- Next by thread: [vine-users:026530] Re:bye byeで shutdown!!(修正板)
- Indexes:[Main][Thread]