このコマンド:chsh
は説明したように動作しないため、少なくとも私は新しいコマンドを学びました。
次のように機能すると説明されています。
cat /etc/shells
知っておくべきことは、どのシェルがインストールされているかを知るためです。echo $Shell
を実行して、使用しているシェルを確認します。chsh -s /path/to/Shell
と入力しますecho $Shell
を使用して、新しいシェルにいることを確認します。これを実行しましたが、パスワードの入力時にエラーメッセージは表示されませんでしたが、同じシェルにいました。
% echo $Shell
/bin/bash
% cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
% chsh -s /bin/sh
Password:
% echo $Shell
/bin/bash
ログアウトして、再度ログインします。
chsh
コマンドは/etc/passwd
ファイルを更新しますが、現在のシェルのcurrentシェルも$Shell
変数の値も変更しません(それはそれを行う方法はありません)。これが、再度ログインする必要がある理由です。変更を有効にするには、新しいログインセッションを開始する必要があります。
sermodユーティリティコマンドを使用すると、私の場合はうまくいきました。 ubuntu 18.04で実行しています。
grep nameofuser /etc/passwd
Sudo usermod --Shell /bin/bash nameofuser
grep nameofuser /etc/passwd