コマンドを実行しようとするとlogin
失敗します。
SSH経由でrootとして以下を取得します。
root@server:~# login
Connection to 192.168.0.50 closed.
SSH接続が終了しました。 「物理的」TTYでは、セッションが閉じてログイン画面に戻ります。
sudoを使用する一般ユーザーとして:
bilbax@server:~$ sudo login
Password:
[1]+ Stopped sudo login
このエラーが発生する直前に、通常どおりコマンドを試してみましたが、うまくいき、login
パスワードを要求しました。タイプミスを出して再試行しましたが、コマンドが停止しました。私は^ Cを試しましたが、成功しませんでした。だからルートとして私は役に立たkillall login
なかった。システムを再起動しましたが、上記のエラーを修正する必要があります。
killコマンドに何か問題がありましたか?
私はArch Linux x86_64(カーネル3.4.7-1-ARCH)を使用しています。
答え1
問題は、su
ttyを新しいユーザーに切り替えないことです。ルートを訴えるときは問題ではありませんが、ttyを所有していない他のユーザーには困難を招く可能性があります。
以前は、シェルで実行するのがlogin
一般的な(または少なくとも許容可能な)操作でした。シェルはこれを特別に処理し、それを暗黙的に実行しますexec
。現代のシェルはこれ以上これをやっていないようです。明示的に実行すると役に立ちexec login
ます。追加することも-f username
試してみるべきことです。
root以外のユーザーとしてこれを行うと、これはlogin
標準でしたが、もはや一般的ではないsetuid rootの場合にのみ機能します。sudo
以前のバージョンがある場合、exec
sudoがそれを避けるのに十分スマートであると仮定すると、このバージョンも機能することができます(つまり、fork + exec + waitの代わりにexec自体を直接実行します)。
結局、なぜssh host -l minecraft
中間子を切り取らないのだろうか。