Linux:chsh 和 ypchsh 均不起作用,我可以更改我的 shell 吗?

Linux:chsh 和 ypchsh 均不起作用,我可以更改我的 shell 吗?

我是一个老派的 Unix 爱好者,所以我的 Linux 技能可能有点过时了。但这似乎应该足够简单。

在我没有 root 权限的 Red Hat Linux 系统上(该系统由公司 IT 部门管理),我希望能够更改我的登录 shell。运行 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

发生了什么事?有人有其他想法吗?

答案1

  • 新独立国家: ypchsh

  • LDAP:

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

    您的 DN可能是这样的形式uid=$USER,ou=people,dc=example,dc=org;试着ldapwhoami看看)

  • 赫西奥德:询问系统管理员。

  • 活动目录:询问系统管理员。

答案2

我使用了一种解决方法来在登录时更改我的 shell。我刚刚将bash用于更改 shell 的内容放入我的.profile文件中。

.profile您可以在用户的​​主目录中找到– 使用ls -la来查看它。

你的.profile文件可能有如下内容:

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

答案3

因此,在我看来,真正的答案是系统管理员 (IT) 想要锁定标准配置,所以你必须询问他们。但在此过程中,我发现了一些更有用的命令,可以确定你的 LDAP 配置(如果你的配置恰好是这样),以防你的系统报告相同的 SASL 错误“ldap_sasl_interactive_bind_s:未知身份验证方法 (-6) 附加信息: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

查看最佳答案的凭证的另一种方法是ldapsearch -x

ldapsearch -x uid=$(whoami)

相关内容