web-dev-qa-db-ja.com

ドメインアカウントの既定のシェルを変更する方法

私は私のラップトップにログインするためにsamba4ドメインアカウントを使用します。 zshを試してみたかったのですが、ユーザーが/etc/passwdに住んでいないため、chshがユーザーを見つけられないことがわかりました。誰かがlogin_Shellを変更する方法をアドバイスできますか?

私のldap.confnssswitch.conf、または/etc/pam.dの何も助けにならなかった...

ドメインコントローラーを見ると、おそらくsamba-toolを使用できると思いましたが、正しい方向に向ける助けが何も見当たりませんでした...

13
Rumbles

Freenodeの#suseチャネルでこれについて尋ねると、MiukuはArulと同じことを提案しましたが、Windowsドメインを使用している場合は、loginShell属性を設定できるという2つのことを述べました。

悲しいことに、私はSambaドメインにいるので、それは役に立ちませんでした。しかし、彼の最終的な提案は完璧でした。

getent passwd USERNAME

これにより、/ etc/passwdにユーザーと同等の有効なエントリが作成されます。これを取得して、/ etc/passwdに貼り付け、使用するシェルの有効なパスの最後のシェルを更新します。この方法では、すべてのユーザーの設定が変更されることはありません。変更を行う前に、シェルを構成しているマシン上にシェルがあることを確認できます。

24
Rumbles

私はまったく同じ問題を抱えていました。ドメイン内のすべてのマシンにzshがインストールされているわけではなく、すべてのユーザーに影響を与えたくなかったため、結局.bashrcに入れました。

if [ -x /usr/bin/zsh ]; then
  echo 'starting zsh'
  # export Shell=/bin/zsh #edit: this is probably not what you want, see the comment.
  exec /usr/bin/zsh
fi

これは洗練されていないかもしれませんが、少なくとも仕事は完了です。

5
Matteo Giani

Sambaドメインコントローラーの構成を編集するアクセス権がある場合は、次のプロパティを設定して、シェルを smb.conf に設定できます。

template Shell    = /bin/zsh

Zshがインストールされていないマシンにログインするとどうなるかわかりません(すべてのディストリビューションにデフォルトでzshがインストールされているわけではありません)。ディストリビューションのデフォルトシェルが呼び出されると思います。

単に試してみたい場合は、zshと入力してサブシェルを取得します。サブシェルはすでに知っているはずです。

2
Arul Selvan