Fedora 34をインストールし、会社のログイン(ドメインユーザー)がありました。
chsh
ユーザーが存在しないため、ユーザーのデフォルトシェルをzshに変更することはできません。 (/etc/passwd
ローカルユーザーではないため存在しません)
/etc/passwd
追加するユーザー文字列を取得しようとしましたが、文字列にシンボルがgetent passwd $USER
あり、ログインが中断されるため機能しません。@
どんなアイデアがありますか?
答え1
ユーザーがサーバーに参加しているActive Directoryにいる場合、ユーザーにデフォルトのシェルを直接割り当てることはできません。適切なコマンドを使用してサーバーでこれを変更または上書きしようとすることができますが、これはすべてのユーザーに影響します。統合にSSSDを使用している場合は、Fedoraシステムで/etc/sssd/sssd.confを編集して追加できます。
[domain/YOUR_DOMAIN]
override_shell = /bin/zsh
ドメインが配置されているサーバーで常に変更することをお勧めします。これにより、今後多くの問題が解決します。
答え2
ユーザーのパスワードを変更するには、サーバーに指示する必要があります。私が知る限り、LDAP / ADの場合、chsh
コマンドはこれを行う方法がわからないので、次のように呼び出す必要があります。個別包装注文するchsh.ldap
。
これにより、このネットワークアカウントを使用するすべてのシステムのシェルが変更されます。これは、zshがインストールされていない(または別の場所にインストールされている)システムにログインできないことを意味します。
/bin/sh
別のログインシェルを選択する別の方法は、実際のログインシェル(どこにも存在する)を維持しながら~/.profile
。
# ~/.profile
…
if [ -x /bin/zsh ]; then
export SHELL=/bin/zsh
exec $SHELL
fi