6.5. 覆盖 LDAP shell 属性
作为管理员,您可以将现有主机配置为使用 LDAP 中的帐户。但是,LDAP 中用户(名称、UID、GID、主目录、shell)的值可能与本地系统上的值不同。您可以通过定义不同的 shell 来覆盖 LDAP shell 属性。
先决条件
-
root访问权限 -
已安装
sssd-tools
流程
显示本地存储的用户的当前 shell:
getent passwd <ldap_username>
# getent passwd <ldap_username> <ldap_username>:x:XXXX:XXXX::/home/<home_directory>:_<currentshell>_Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<ldap_username>替换为用户的名称。覆盖用户的 shell:
sss_override user-add <ldap_username> -s <new_shell>
# sss_override user-add <ldap_username> -s <new_shell>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<ldap_username>替换为用户的名称,将<new_shell>替换为新的 shell。重启 SSSD 以使更改生效:
systemctl restart sssd
# systemctl restart sssdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证是否定义了新 shell:
getent passwd <ldap_username>
# getent passwd <ldap_username> <ldap_username>:x:XXXX:XXXX::/home/<home_directory>:_<new_shell>_Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:显示用户的覆盖:
sss_override user-show <ldap_username>
# sss_override user-show <ldap_username> user@ldap.example.com::::::_<new_shell>_:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例如,要将用户
sarah的 shell 从/bin/bash更改为sbin/nologin:显示用户
sarah的当前 shell:getent passwd sarah
# getent passwd sarah sarah:x:1001:6003::sarah:/bin/bashCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用新的
/sbin/nologinshell 覆盖用户 sarah 的 shell:sss_override user-add sarah -s /sbin/nologin
# sss_override user-add sarah -s /sbin/nologinCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重启 SSSD 以使更改生效:
systemctl restart sssd
# systemctl restart sssdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证新 shell 是否已定义并正确覆盖用户显示:
getent passwd sarah sss_override user-show sarah
# getent passwd sarah sarah:x:1001:6003::sarah:/sbin/nologin # sss_override user-show sarah user@ldap.example.com::::::/sbin/nologin:Copy to Clipboard Copied! Toggle word wrap Toggle overflow