サーバーにSSHで接続すると、root以外の場合と同様に、$のみが表示され、パスは表示されません。また、rootとしてSSHで接続しないと、上キーを押してコマンド履歴を表示することもできません。上記のオプションを他のユーザーに提供するにはどうすればよいですか?
これを実現するには2つのステップがあります。
ステップ1)ユーザーがbashシェルを使用していることを確認します。/etc/passwd内の各ユーザーのエントリを調べて、/ bin/bashで終わることを確認します。たとえば、次のように表示されます。
joeuser:x:1234:1234:Joe User:/home/joeuser:/bin/sh
次に、これに変更します。
joeuser:x:1234:1234:Joe User:/home/joeuser:/bin/bash
Bashを使用すると、上矢印の問題が修正され、次のステップが有効になります。
ステップ2)それでも現在の作業ディレクトリでプロンプトが表示されない場合は、bashにそれが必要なことを伝えます。これを行うには2つの方法があります。次の行を追加します。
export PS1='\w> '
どちらかに
.bash_profile
ファイル。 [〜#〜]または[〜#〜]/etc/profile
ファイルこの行は、メインのシェルプロンプトを表すPS1
変数を割り当てます。 /etc/profile
に入れることをお勧めします。これは簡単で、すべてのユーザーに役立つプロンプトを提供するからです。ユーザーがプロンプトに何か他のものが必要な場合は、いつでも自分の.bash_profile
ファイルを編集できます。
注:システムに/etc/bash.bashrc
がある場合は、/etc/profile
の代わりにその行を配置してください。
私のpasswd(5)
のマニュアルページには、「コマンドインタープリター」と呼ばれる/etc/passwd
エントリの最後のフィールドについて書かれています。
コマンドインタープリターフィールドは、ユーザーのコマンド言語インタープリターの名前、または実行する最初のプログラムの名前を提供します。ログインプログラムは、この情報を使用して$ Shell環境変数の値を設定します。このフィールドが空の場合、デフォルトの値は/ bin/shです。
したがって、オプションは次のようになります。
/etc/passwd
ファイルに入れます。/bin/sh
を他のシェルにリンクします。プログラムは既存の/bin/sh
の動作に依存している可能性が高いため、これはお勧めしません。これは非常に奇妙に聞こえます。デフォルトでは、root以外のユーザーは、説明した基本的な機能を使用できるはずだからです。そうは言っても、この問題はおなじみのように聞こえます。 Ubuntu(Debian)でユーザーをセットアップするときはいつでも、 adduser
を使用します。これは正常に機能します。しかし、私はいつも useradd
で問題を抱えていました。 useradd
の公式マニュアルページに記載されているとおり:
useradd
は、ユーザーを追加するための低レベルのユーティリティです。 Debianでは、管理者は通常、代わりにadduser
(8)を使用する必要があります。
その理由は、useradd
が最終的には低レベルのシステムバイナリであり、新しいユーザーのパスとシェル情報を追加するために、ユーザー名だけでなく多くのコマンドを必要とするという事実に要約されます。対照的に、adduser
はuseradd
のPerlスクリプトラッパーであり、あまり考えずにシステムに新しいユーザーを作成するための、より優れたユーザーフレンドリーなワークフローを提供します。 adduser
をuseradd
の「ウィザード」セットアップと考えてください。
したがって、useradd
を介してユーザーを追加した場合、コマンドラインオプションの構成設定を見逃している可能性があります。したがって、技術的には、ユーザーをシステムに追加しましたが、システム構成に関してはそれほど多くはありませんでした。対照的に、adduser
は、さまざまな基本事項をすべて処理するように設計されています。
それを知って、私がお勧めするのは、このようにすでに作成したユーザーを削除することです。もちろん変更[username]
実際のユーザー名へ:
Sudo deluser --remove-home [username]
次に、次のようにadduser
を使用してそのユーザーを再作成します。
Sudo adduser [username]