ben*_*izi 5 linux active-directory samba
是否有一种简单的方法可以基于每个用户覆盖 Samba“模板 shell = /bin/bash”设置?
这适用于加入 Active Directory 域的 Linux 系统。一些用户想要 /bin/bash。其他人包括我自己想要 /bin/zsh。我可以设置一些 AD 属性吗?
我通过谷歌搜索找到的任何东西充其量看起来都是骇人听闻的(编写脚本来替换 /bin/sh ——维护麻烦)。
一个类似的服务器故障问题Override LDAP shell似乎是面向 OpenLDAP 的(但如果有人知道如何让它与 AD 一起工作,请说出来)。
如果您使用的是 winbind,则可以执行以下操作:
按照 Christoph 的建议安装 IDMU。如果您有 2003 R2 或更高版本,则必要的 RFC 2307 架构已经安装,因此您可以跳过此步骤。
根据Samba wiki,将以下内容添加到 smb.conf 中:
Run Code Online (Sandbox Code Playgroud)winbind nss info = rfc2307
同样,这仅在您使用 winbind 时才有效。完成更改后重新启动它。
loginShell
在 Active Directory 中设置用户的属性。winbind 将在下次刷新时遵守该设置。
如果你有大量的 Linux 系统使用 AD,这可能效率不高,但对于少数系统,最简单的方法是在 Linux 机器上运行以下命令:
getent passwd ADUSER >> /etc/passwd
Run Code Online (Sandbox Code Playgroud)
然后编辑 /etc/passwd 中的相应行以反映首选 shell(或者更好的是,在附加到 /etc/passwd 之前使用 sed 动态更改 shell 条目)。正如其他人所建议的那样,IDMU 可能是适用于多个主机的最优雅的解决方案,但如果您只是想在几个系统上执行此操作,则上面的示例可以完成工作。
小智 1
如果您在 AD 服务器上安装Identity Management for Unix (IDMU),LDAP 架构将扩展用于存储 Unix 属性,并且您可以在(用户)对象属性的“Unix 属性”选项卡中设置登录 shell。