5.5. 覆盖 LDAP shell 属性

作为管理员,您可以将现有主机配置为使用 LDAP 中的帐户。但是,LDAP 中用户(名称、UID、GID、主目录、shell)的值与本地系统中的值不同。您可以通过按照以下步骤定义不同的 shell 来覆盖 LDAP shell 属性。

先决条件

  • root 访问权限
  • 已安装 sssd-tools

流程

  1. 显示用户当前的 shell:

    # getent passwd user-name
    user-name:x:XXXX:XXXX::/home/home-directory:/bin/bash

    使用用户名称替换 user-name

  2. 覆盖用户的 shell:

    # sss_override user-add user-name -s new-shell

    使用用户名替换 user-name,并使用新 shell 替换 new-shell

  3. 重启 SSSD 以使更改生效:

    # systemctl restart sssd

验证步骤

  • 验证是否定义了新 shell:

    # getent passwd user-name
    user-name:x:XXXX:XXXX::/home/home-directory:new-shell
  • 可选。显示用户的覆盖:

    # sss_override user-show user-name
    user@ldap.example.com::::::new-shell:

    例 5.5. 覆盖用户的 shell

    将用户 sarah 的 shell 从 /bin/bash 改为 sbin/nologin

    1. 显示用户 sarah 的当前 shell:

      # getent passwd sarah
      sarah:x:1001:6003::sarah:/bin/bash
    2. 使用新的 /sbin/nologin shell 覆盖用户 sarah 的 shell:

      # sss_override user-add sarah -s /sbin/nologin
    3. 重启 SSSD 以使更改生效:

      # systemctl restart sssd
    4. 验证新 shell 是否已定义并正确覆盖用户显示:

      # getent passwd sarah
      sarah:x:1001:6003::sarah:/sbin/nologin
      
      # sss_override user-show user-name
      user@ldap.example.com::::::/sbin/nologin:

其它资源

  • sss_override man page