端末のユーザーを切り替える

端末のユーザーを切り替える

次のコマンドを使用してユーザーを切り替えます:

sudo su - userName

私の端末には常に次のものがあります:

user@user directory $ (some command)

しかし、ユーザーを切り替えると、次のものだけが表示されます:

$ (some commands)

何を意味しているかを説明するのは難しいのですが、私は Linux 初心者で、他の質問ではこれを見つけられませんでした。再ログイン後に $ 記号の前のこのデータ全体を保持するにはどうすればよいでしょうか?

編集: OK、私の場合はうまくいきました。コマンドadduser nameを使用してユーザーを再作成しました。

しかし、別の質問があります。このコマンドは /home ディレクトリを作成しますが、空です。新しいユーザー用に /home を初期化するコマンドはありますか?

答え1

しかし、別の質問があります。このコマンドは /home ディレクトリを作成しますが、空です。新しいユーザー用に /home を初期化するコマンドはありますか?

2 番目の質問の解決策は、最初の質問の解決策にもなります。新しいユーザーのホーム ディレクトリには、すべてのデフォルト構成ファイルがないため、新しいシェルには派手なプロンプトなどが表示されません。

新しいユーザーを作成するための標準コマンドそして次の内容を使用してホーム ディレクトリを初期化します/etc/skel

useradd -m

また、すでに述べたように、一部のディストリビューションではデフォルトが間違っているため、さらにオプションを追加する必要があるかもしれません。

useradd -m -s /bin/bash

詳細については、以下を参照してください。

man useradd

ディストリビューション固有の、高度なツールがいくつかあります。Debian などで使用されている 1 つの例は、あなたの質問に対するコメントですでに言及されています。

adduser

useraddまた、/etc にはとして動作させることができる設定がありますが、異なるインストールやディストリビューションの影響を受けないようにするには、常にuseradd -mを使用するように学習する方がよいと思います。-m

-D上記のコメントから、引数を使用してデフォルトを設定することが可能ですuseradd

useradd -D -s /path/to/default/shell

答え2

通常のユーザーに切り替えていますが、このユーザーには $PS1 が設定されていませんが、私の意見では、Debian Based では useradd コマンドを使用してこのユーザーを追加します。デフォルトでは、useradd を使用するときのシェルは sh なので、次を試すことができます。

chsh -s /bin/bash userName

このコマンドは、userName のシェルを /bin/bash に変更します。その後、そのユーザーに対して再度切り替えを試みます。useradd を使用してユーザーを追加するときに bash のデフォルト シェルを変更する場合は、ファイル /etc/default/useradd を変更します。

sed -i -e "s@\(^SHELL\).*@\1=/bin/bash@g" /etc/default/useradd

答え3

ある通常ユーザー (あなた) から別の通常ユーザー (たとえば joe) に切り替えているのですね?
以下は、環境変数 PS1 で定義されているシェル プロンプトです。

user@user directory $

joe に切り替えると、joe のシェル プロンプトが表示されます。joe はプロンプトに特別なものを表示するように設定していないため、次のようなデフォルトのプロンプトのみが表示されます。

$

2 番目はプレーン シェル プログラムのデフォルトであり、これはおそらく Linux ディストリビューションのデフォルトです。

PS1 を自分のアカウントと同じ設定にしてみてください。これで問題が解決するはずです。

user@usersBox directory $ エコー "$PS1"

以降

$ PS1="……"
joe@usersBox directory $

......を上記で示した値に置き換えますecho

「@」の後の単語は通常、コンピュータの名前なので、セットアップ時にユーザー名と同じ名前をコンピュータに付けたと考えられます。
例では、混乱を避けるために、コンピュータ名を「usersBox」に変更しました。

おそらく、彼はあなたが持っているバリアントを意図的に削除したのでしょう。しかし、おそらく、それは何らかのランダムな小さな技術的問題によって引き起こされたものであり、彼が使用しているシェルの種類に応じて、彼のスタートアップ ファイル (~/.bashrc など) を変更しても彼は問題ないでしょう。

関連情報