在Active Directory域中的Linux系统上覆盖模板shell?

有没有简单的方法来覆盖每个用户的Samba“模板shell = / bin / bash”设置?

这适用于joinActive Directory域的Linux系统。 有些用户需要/ bin / bash。 其他人包括我自己想/ bin / zsh。 我可以设置一些AD属性吗?

任何我通过googlesearch发现似乎hackish充其量(写一个脚本来取代/ bin / sh – 维护麻烦)。

一个类似的服务器故障问题覆盖LDAP shell似乎面向OpenLDAP(但是如果有人知道如何使它与AD工作,请这么说)。

如果您使用winbind,则可以执行以下操作:

  1. 像Christophbuild议的那样安装IDMU。 如果您有2003 R2或更高版本, 则已经安装了必要的RFC 2307模式 ,因此您可以跳过此步骤。

  2. 根据Samba wiki将以下内容添加到smb.conf中:

    winbind nss info = rfc2307 

    再说一遍,如果你使用winbind,这只会起作用。 重新启动它,一旦你做出了改变。

  3. 在Active Directory中设置用户的loginShell属性。 winbind将在下一次刷新时遵守该设置。

如果你有大量使用AD的Linux系统,这可能不是有效的,但是对于less数系统来说,最简单的方法是在Linux机器上运行以下代码:

 getent passwd ADUSER >> /etc/passwd 

然后在/ etc / passwd中编辑相应的行以反映首选的shell(或者更好的是,在追加到/ etc / passwd之前,使用sed来更改shell条目)。 正如其他人所build议的,IDMU可能是多主机最优雅的解决scheme,但是如果您只是想在几个系统上这样做,上面的例子就可以完成这项工作。

如果您在AD服务器上安装了Identity Management for Unix (IDMU),则可以扩展LDAP模式以存储Unix属性,并且可以在(用户)对象属性的“Unix属性”选项卡中设置loginshell。