Linux:chshもypchshも機能していません。シェルを変更できますか?


8

私は昔ながらのUnixの人なので、私のLinuxスキルはおそらく少し古くなっています。しかし、これは十分に単純なはずです。

rootがいない(会社のIT部門によって管理されている)Red Hat Linuxシステムで、ログインシェルを変更できるようにしたいと考えています。chshを実行すると、次のようになります。

$ chsh -s /bin/bash
chsh: can only change local entries; use ypchsh instead.

したがって、代わりにypchshを実行しました。

$ ypchsh userid
ypchsh: can't find the master ypserver: Internal NIS error

何ができますか?誰か他のアイデアがありますか?


3
あなたは本当に NISを使っていますか?それともLDAPのようなものですか?
Ignacio Vazquez-Abrams、

この時点でNISはかなり時代遅れであるため、私たちのネットワークはLDAPを使用していると確信しています。
Ogre Psalm33

回答:


8
  • NIS: ypchsh

  • LDAP:

    $ ldapmodify <<EOF
    dn: YOUR_DN
    changetype: modify
    replace: loginShell
    loginShell: /bin/bash
    -
    EOF
    

    YOUR_DNの形式の可能性がありますuid=$USER,ou=people,dc=example,dc=orgldapwhoami確認してください)

  • Hesiod:システム管理者に問い合わせてください。

  • Active Directory:システム管理者に問い合わせてください。


同僚がLDAPだと思ったと言ったが、ldapwhoamiは「ldap_sasl_interactive_bind_s:不明な認証方法(-6)追加情報:SASL(-4):使用可能なメカニズムがありません:」と表示するため、この時点ではActive Directoryと推測しています。ITに質問する必要があります。
Ogre Psalm33

@Ogre:/etc/nsswitch.conf(行 'passwd')を確認してください。
user1686

5

ログイン時にシェルを変更するために1つの回避策を使用しました。私はファイルのbashシェルを変更するために使用されるものを入れました.profile

あなたは見つけることができ.profile、ユーザのホームディレクトリに-使用ls -laそれを見るためには。

あなたの.profileファイルには、このようなものを持っていることがあります。

PATH=/usr/bin
export PATH
#Add this to go bash at login
bash
#end

7
これはかなりの回避策です。ただし、1行に/ usr / bin / bashのみを含める方が簡単です。また、新しいシェルを「実行」して現在のプロセスを置き換える方がおそらく良いでしょう。
Peter Jenkins、

.shellrc(正しいファイル名に変更された)でも同じことを行っていますが、環境変数を前に宣言し、exec bash設定されていない場合にのみ、手動でシェルを実行できるようにし、不幸なループを防止しています。これらの操作を実行するために適切なシバンでスクリプトを実行することができるので、特定のシェル方言を使用する必要がないことに注意してください。
MayeulC 2018年

4

したがって、私の場合の本当の答えは、システム管理者(IT)が標準構成をロックダウンしたいということです。ただし、システムが同じSASLエラー「ldap_sasl_interactive_bind_s:Unknown authentication method(-6)additional info :SASL(-4):使用可能なメカニズムはありません: "

システムがサポートするSASL認証方式をリストします。

 ldapsearch -x -LLL -s "base" -b "" supportedSASLMechanisms

結果は次のようになります。

dn:
supportedSASLMechanisms: EXTERNAL
supportedSASLMechanisms: DIGEST-MD5

次に、次のように-Yオプションを使用して、認証方法をLDAPコマンドに渡すことができます。

ldappasswd -Y DIGEST-MD5
ldapmodify -Y DIGEST-MD5

4

別の解決策は、YPシェルを単にオーバーライドすることです。

この行をあなたに追加してください/etc/passwd

+<USERNAME>::::::/bin/bash

例:

+psalm33::::::/bin/bash

そして、あなたに以下を追加してください/etc/nsswitch.conf

passwd: compat

passwd_compat: nis

私が述べたように、私は自分のシステムにrootを持っていません(そのため、/ etc内のファイルは編集の対象外です)。しかし、この回答は、同様の問題を抱えている他の誰かを助けるかもしれません。
Ogre Psalm33 2014

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.