将 LDAP 服务器(而非客户端)的所有 ldap 用户的默认登录 shell 更改为 /bin/bash

将 LDAP 服务器(而非客户端)的所有 ldap 用户的默认登录 shell 更改为 /bin/bash

也许我的 google kungfu 今天表现不佳,但我找到了明显为客户端的每个用户(一个接一个)执行此操作的方法,甚至是使用 ldapmodify 从 ldap 端执行此操作的方法又一一

我想要设置的是基于 ssh 的 LDAP 登录,及其工作原理有点,仍然需要限制为组,但那是另一个话题,但到目前为止,默认 shell 是 /bin/sh。我在 PHPLDAPADMIN 中没有看到 /bin/bash 的选项。

/bin/sh 确实很糟糕,因为没有制表符补全,这是我注意到的第一件事,而且我确信还有更多。

如何从 LDAP 服务器更改所有 PosixAccount 的默认 shell 为 /bin/bash,以便不需要在每个用户或每个客户端的基础上进行配置。如果不可能,我如何在客户端全局更改它。我/我们只管理 50 台服务器,因此将该步骤添加到 LDAP 集成并非不可能,但为了整洁和适当,我认为应该从 LDAP 服务器完成。

答案1

sudo nano /etc/phpldapadmin/templates/creation/posixAccount.xml

主目录实际上并不是问题的一部分:P,但它是我修改的唯一两件事,我想我应该包括它!不过现在效果很好!但是对于已经登录服务器的用户,它没有追溯修复它,即使我更改了 phpldapadmin 中的值,他们仍然得到旧的主目录和 /bin/sh。

<attribute id="homeDirectory">
    <display>Home directory</display>
    <!-- <onchange>=autoFill(homeDirectory;/home/%gidNumber|0-0/T%/%uid|3-%)</onchange> -->
    <order>8</order>
    <page>1</page>
</attribute>
<attribute id="loginShell">
    <display>Login shell</display>
    <order>9</order>
    <page>1</page>
    <!-- <value><![CDATA[=php.PickList(/;(&(objectClass=posixAccount));loginShell;%loginShell%;;;;loginShell)]]></value> -->
    <type>select</type>
    <value id="/bin/sh">/bin/sh</value>
    <value id="/bin/csh">/bin/csh</value>
    <value id="/bin/tsh">/bin/tsh</value>
    <value id="/bin/bash">/bin/bash</value>
</attribute>

相关内容