ユーザーがソケットを介してコマンドに接続すると、コマンドを実行および受信するすべてをランチャーにリダイレクトするサービスがあります。
bashなどのシェルと一緒に使用して、ユーザーにリモートシェルを提供できます。
bashやshをフォークしたくありませんが、代わりにユーザーとパスワードが必要なタスクを実行したいと思います。/bin/login
これが実行する正しいコマンドですか?ルート以外のサービスで同じことを行うために使用できるものはありますか?getty
呼び出しがあるようですが、/bin/login
ユーザーとして実行できますか?
telnetdをインストールしてそこにリダイレクトできるようですが、telnet localhost
Telnetサーバーを実行したくありません。
答え1
パスワードをどのように要求しますか?
print $prompt
read $response
ユーザーを認証する方法を知りたい場合は、pamをサポートするプログラムを作成し、インターネットで利用可能なpam開発者ガイドの1つに従ってください。例は次のとおりです。http://www.linux-pam.org/Linux-PAM-html/Linux-PAM_ADG.html。また、unix_chkpwdなど、この目的に使用できるヘルパープログラムもシステムに存在する可能性があります。このプログラムは、子プロセスを作成してターゲットユーザーに切り替えて使用できます。しかし、pamアプリケーション開発者インターフェースは非常に簡単なので、自分を認証するのは合理的かもしれません。