質問:suを使用せずに「2番目の」ログインを実行したり、suコマンドを実行した後にユーザーにユーザー名を入力するように求める方法を知っている人はいますか?
状況:Linuxサーバーにログインするさまざまな種類のデバイスがあります。その後、ユーザーはメニューのオプションから選択して実行できます。デバイスは、デバイスごとに異なるアカウントを使用してシステムに自動的にログインします。これは、デバイスが維持する設定アカウントの数をデバイスごとに1つに制限するためです。利用可能なsshクライアントは、すべて使用しているデバイスアカウントに自動ログインを接続します(AndroidのJuice sshの例を参照)。各デバイスでアプリケーションごとに40以上のアカウントを維持するにはコストがかかりすぎました。
目的:ユーザーにデバイスログイン(デフォルトログイン)後にセカンダリログインを提供し、ユーザーがユーザーIDとパスワードを入力できるようにします。
私の最初の反応は「su」でしたが、「su」にはコマンドで指定したユーザー名が必要です。それ以外の場合、デフォルトはrootアカウントです。簡単にするために、「su - $ username」などのコマンドを実行する前に、ユーザー名を求めるシェルコードを作成しないようにしてください。
もちろん、ログインしているすべてのアプリケーションにはすでにユーザー名とパスワードが必要ですが、シェルやその他のホームフロー機能を入力するには、ログインを介して認証を行う必要があります。
ベストアンサー1
su - username
ユーザーが何らかの方法でユーザー名とパスワードを入力する必要がある場合、ユーザーにシェルに入力させるのはなぜですか。追加の文字は5文字だけ入力してください:)
ユーザーがそれを受け入れずに単一のスクリプトを作成するのが面倒すぎる場合は、サーバーにインストールし、次のエイリアスを入力してくださいtelnet
。telnetd
/etc/bash.bashrc
alias x='telnet localhost'
修正する: telnetdポート(tcp / 23)へのリモートアクセスを制限することを忘れないでください。ファイアウォール(iptables
)または既存のTCPラッパー(/etc/hosts.allow
、/etc/hosts.deny
- ホスト_アクセス(5)のマニュアルページを参照)を設定できます。