前置き
こんにちは!
今回はLinuxOS(Ubuntu)を使ってプロンプトの調査を行います。
きっかけは、コマンドを使って新規ユーザを作ったのですが、その際に/home/直下に作成ユーザのディレクトリがありませんと表示されました。
# 実行コマンド
useradd user1 # ユーザ追加
passwd user1 # ユーザパスワード設定
su - user1 # ユーザ切替
# 出力結果
su: 警告: ディレクトリを /home/user1 に変更できません: そのようなファイルやディレクトリはあ
$
また、画面上に表示されるプロンプトが下記の状態です。
デフォルトユーザではユーザ名やグループ名が表示され、プロンプトが異なることから調査しました。
# user1
$ pwd
/home/user1
$
デフォルトシェルの調査
ユーザに設定されているシェルのタイプを確認します。
# user1で実行'$SHELL'はデフォルトで変数化されています
$ echo $SHELL
/bin/sh
# 既存ユーザで実施した結果
$ echo $SHELL
/bin/bash
#総括
設定されているシェルのタイプに乖離がある
シェルの設定変更
user1のシェルをbashに変更します。
# user1でログインしてchshコマンドで変更
sudo chsh -s /bin/bash
# 実行結果
$ sudo chsh -s /bin/bash
[sudo] user1 のパスワード:
user1 は sudoers ファイル内にありません。この事象は記録・報告されます。
注意
管理者権限で実行できませんでした。
新規にユーザ作った際は、権限を与えておく必要あります。
新規追加ユーザ用の権限付与
権限付与を行います。
上記で紹介したchshコマンドもrootユーザに切り替えてから再度実行します。
# rootユーザへ変更
$ su -
# rootユーザからuser1ユーザのシェル設定を変更(rootユーザ操作時のプロンプトは"$→#"に変わります)
# chsh -s /bin/bash user1
# user1をsudoグループに追加しsudo権限付与
# usermod -aG sudo user1
# user1へユーザ切替
# su - user1
# 出力結果
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
user1@devtech-022:~$
root同様の権限が与えられたといったテキストが表示された後、プロンプトも想定通りのユーザ名とホスト名が表示されるプロンプトへ変更されました。
最後にuser1のシェル設定を確認します
$ echo $SHELL
/bin/bash
設定が変わっていることを確認できました。
今回は新規作成したユーザプロンプトが見慣れたプロンプト表示と異なっていることから調査しました。
結論、設定したシェルの変更等で解決できそうです。