プログラムは通常、私が実装したいTelnetプログラムです。
クライアント側では、ユーザーは自分のログインとパスワードを送信し、正しい場合はサーバーにコマンドを送信し始めます。
サーバー側では、システムのユーザー認証を確認し、それが真の場合は、ファイルに保存されているデフォルトのシェルを実行してpasswd
コマンドを実行する必要があります。
問題は、system
C関数を使用して彼のシェルを実行しようとすると、シェルが実行されて閉じられることです。ユーザーのために開いたシェルをsystem()
使用fork()
して終了した後に閉じるからです。exec()
プロセス内で新しいシェルを実行し、引き続き実行して次のコマンドを実行するにはどうすればよいですか?
ベストアンサー1
そこに行く前に、Telnetプロトコルの仕様を読んでください(RFC 854、また見てくださいウィキペディアアイテムそのRFCの完全なリストを見るために)リモートログインは非常にこれは、さまざまなオペレーティングシステムと異なる文字エンコーディングを使用するシステムとの間に接続するように設計されているため、複雑なプロトコルです。他にもおすすめですいいえ非常に危険なので使用してください。
リモートでコマンドを実行するには、sshを使用してください。