次のコマンドを使用してユーザーを切り替えています。
sudo su - userName
私の端末には常に次のものがあります。
user@user directory $ (some command)
しかし、ユーザーを切り替えると、次のままになります。
$ (some commands)
どういう意味なのか説明するのは難しいですが、私は初めてLinuxに触れ、他の質問ではこれを見ませんでした。再度ログインした後、$記号より前のデータ全体をどのように保持しますか?
編集:良いです。私の場合は、adduser nameコマンドを使用してユーザーを再作成しました。
しかし、別の質問があります。このコマンドは/ homeディレクトリを作成しますが空です。新しいユーザーのために/ homeを初期化するコマンドはありますか?
答え1
しかし、別の質問があります。このコマンドは/ homeディレクトリを作成しますが空です。新しいユーザーのために/ homeを初期化するコマンドはありますか?
2番目の問題を解決すると、最初の問題も解決されます。新しいユーザーのホームディレクトリにすべてのデフォルト設定ファイルがないため、新しいシェルには素晴らしいプロンプトなどが表示されません。
新しいユーザーを作成するための標準コマンドそして次の内容でホームディレクトリを初期化します/etc/skel
。
useradd -m
すでに指摘したように、一部のディストリビューションには無効なデフォルト値があるため、さらにオプションを追加する必要があります。
useradd -m -s /bin/bash
詳細については、以下を使用してください。
man useradd
いくつかの高度なディストリビューション関連のツールがあります。あなたの質問に対するコメントには、Debian などで使用される例が挙げられます。
adduser
useradd
また、動作が機能するようにする/ etcのいくつかの構成がありますが、私の考えでは、他のインストールや展開の影響を受けないように常にuseradd -m
使用する方法を学ぶことをお勧めします。-m
-D
上記の説明に従って、パラメータを使用してデフォルト値を設定できますuseradd
。
useradd -D -s /path/to/default/shell
答え2
通常のユーザーに切り替えようとしていますが、そのユーザーに$ PS1設定はありませんが、Debianベースのシステムで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のシェルプロンプトが表示されます。そして、彼はプロンプトに表示する素晴らしい項目を設定していないので、次のようにデフォルトのプロンプトだけを表示しました。
$
2番目は一般的なシェルプログラムのデフォルト値であり、あなたがLinuxディストリビューションのデフォルト値であるかもしれません。
PS1をあなたのアカウントと同じものに設定してみてください。役に立ちます:
user@usersBox directory $
エコ「$PS1」
それから
$
PS1="..."
joe@usersBox directory $
...を上記の値に置き換えますecho
。
「@」の後の単語は通常コンピュータ名なので、インストール時にユーザー名と同じ名前をコンピュータに付与したと推測されます。
例では、混乱を減らすためにコンピュータ名を「usersBox」に変更しました。
たぶん彼は意図的にあなたのバリエーションを削除したかもしれません。しかし、ほとんどの場合、これは任意の小さな技術的な問題が原因で発生します。彼のために ~/.bashrc または同様の起動ファイルから変更すると、彼が使用するシェルの種類によって異なります。大丈夫でしょう。