回答:
sshあなたは(から入手したリモートユーザーのシェルで提供したコマンドを実行します/etc/passwdから見えるように、)ソースコード:
argv[0] = (char *) shell0;
argv[1] = "-c";
argv[2] = (char *) command;
argv[3] = NULL;
execve(shell, argv, env);
したがって、リモートサーバーで例として実行される各コマンドは次のとおりです。
bash -c declarebash -c mount両方ともに渡され、bash評価されます。組み込みは内部で評価され、外部コマンドは、ローカルコマンドラインプロンプトから実行するかのように呼び出されます。
-tスイッチによってインタラクティブ機能を強制できますが、rcファイルはロードされません。
sshdではなく、ssh(サーバー)がこれを行っていることに注意してください。
/etc/passwd。これはに保存されています。それはだ場合/usr/sbin/nologin、あなたはログインできません。