デフォルトのシェルをtcshからbashに変更したい。だから私は試しましたが、これは何が起こったのですか:
>Sudo chsh userid
Changing the login Shell for userid
Enter the new value, or press ENTER for the default
Login Shell [/xhbin/tcsh]: /bin/bash
chsh: user 'userid' does not exist in /etc/passwd
実際、私は/ etc/passwdにはいません。理由はわかりません。
私に何ができる?
私のコンピューターは分散認証を使用するネットワークの一部であるため、ユーザーの詳細はローカルの/ etc/passwdファイルに表示されません(ただし、getent passwd useridを使用して表示されます)。 (ありがとう@steeldriver)私の場合、コアマシンでchshを実行する必要がありました。
gnome-terminal
の回避策があります:
bash
をカスタムコマンド(またはfish
など)として指定しますユーザーのシェルを変更する場合は、rootになる必要はありません。次のように入力します:
chsh
Sudo
および引数なし。
man chsh
も参照してください:
chshコマンドは、ユーザーログインシェルを変更します。これにより、ユーザーの初期ログインコマンドの名前 が決まります。 通常のユーザーは自分のアカウントの ログインシェルのみを変更できます;スーパーユーザーは、任意のアカウントのログイン Shellを変更できます。
PAMなどによるLDAP認証を使用している場合は、LDAPサーバーで答えを見つける必要があります。 Microsoft ADを目指しましょう。この場合、ログイン時にドメインアカウントは/etc/passwd
にありませんが、getent passwd | grep user
でADのユーザープロパティを確認できます。
最後に、シェルが/bin/csh
であることが示されている場合、ADにはそのための属性があるためです。したがって、ADの管理者アカウントがある場合は、自分で修正できます。それ以外の場合は、AD管理者に、Active Directoryユーザーとコンピューター>(ユーザープロパティ)> UNIX属性のViewタブで高度な機能を有効にするよう指示します。そこで、ログインシェルを/bin/bash
に変更できます。
実行することを忘れないでください:
Sudo /opt/pbis/bin/config LoginShellTemplate /bin/bash
ユーザー名を忘れた場合は、whoami
コマンドを使用して記憶することができます。
だから、試してみてください:
Sudo chsh $(whoami)
実際、/etc/passwd
ファイルにユーザー名で始まる行(説明できないように見える)が存在しない場合は、次のような新しい行を追加できます。
username:x:1000:1000:あなたの本名、、、:/ home /username:/ bin/bash
参照: / etc/passwdファイル形式について 。