質問: sshコマンドと非インタラクティブ、非ログインシェル 以下の投稿に文章があります。 ログインシェルと非ログインシェルの違い? 焦点はここにあります: 非インタラクティブログインシェルを取得する別の方法は、端末ではない標準入力を介して渡されるコマンドを使用してリモートでログインすることです。 ssh example.com <my-script-which-is-stored-locally(とは対照的に ssh example.com my-script-which-is-on-the-remote-machine、非インタラクティブ、非ログインシェルを実行します)。著者は、上記の説明から2つの結論に達しています。 非インタラクティブログインシェル ssh example.com <my-script-which-is-stored-locally 非インタラクティブ、非ログインシェル ssh example.com my-script-which-is-on-the-remote-machine 2番目の結論が正しいとは思いません。 実行するタイミングssh example.com my-script-which-is-on-the-remote-machine、アカウント名とパスワードはローカルで入力するよう求められます。 非対話型のログインシェルです。ログインシェル:ログインシェルは、指定されたユーザーとしてシステムにログインします。これに必要なのはユーザー名とパスワードです。 ウェブによると ログインシェルの説明 非インタラクティブな非ログインシェルの場合は、ここに例を示します。mysqldやapache2などのデーモンは、すべて非インタラクティブな非ログインシェルです。あなたの番です:trueまたはfalse?
回答: ログインは、専門用語の中核となる概念であるログインシェルです。 linuxの作業を説明するために抽象化された4つの段階があります:init、getty、login、shell。 ここでのログインは、ユーザー名をパラメーターとして取得し、ユーザーにパスワードの入力を求めるプログラムです。 ローカル側:vim /tmp/shell.sh shopt login_shell サーバー側(私のvpsサーバー):vim /tmp/shell.sh shopt login_shell 1.非対話型ログインシェル 一般的な形式:ssh example.com <my-script-which-is-stored-locallyssh root@vps_ip < /tmp/shell.sh pseudo-terminal will not be allocated because stdin is not a terminal. login_shell on より明確にssh -t -t root@vps_ip < /tmp/shell.sh last login: wed mar 8 03:16:00 2017 from vps_ip root@localhost:~$ root@localhost:~$ shopt login_shell login_shell on ローカルサイドブレークのインタープリターssh -t -t root@vps_ip < /tmp/shell.shを2つの部分に分割します。 1.ssh -t -t root @ vps_ip loginプログラムは、ログインしたvpsでrootをユーザーとして受け入れます。 2./tmp/shell.sh ローカル側のスクリプトがパラメーターとしてリモート側のインタープリターに渡され、実行されました。これは、プロセス中の非対話型ログインシェルです。2.非インタラクティブ非ログインシェル 一般的な形式:ssh example.com my-script-which-is-stored-on-remote-machinedebian8@hwy:~$ssh root@vps_ip '/bin/bash /tmp/shell.sh' login_shell off debian8@hwy:~$ これは、プロセス中は非対話型の非ログインシェルです。いくつかのハックトリックは、ログインシェルとして表示させることができます。debian8@hwy:~$ssh root@vps_ip '/bin/bash --login /tmp/shell.sh' login_shell on debian8@hwy:~$ コマンド全体ssh root @ vps_ip '/ bin/bash --login /tmp/shell.sh'が実行された後、vpsサーバーにログインしません。 login_shell onは意味を表示しませんでしたが、ログインしましたが、vpsサーバーが接続を閉じました、ログアウトしました。 非インタラクティブログインシェルおよび非インタラクティブ非ログインシェル に関するジルの結論は正しいです。