.. vaq1552681912484 .. _create-ldap-linux-accounts: ========================== Create LDAP Linux Accounts ========================== |prod| includes a script for creating |LDAP| Linux accounts. .. rubric:: |context| .. note:: For security reasons, it is recommended that ONLY admin level users be allowed to |SSH| to the nodes of the |prod|. Non-admin level users should strictly use remote CLIs or remote web GUIs. The :command:`ldapusersetup` command provides an interactive method for setting up |LDAP| Linux user accounts. Centralized management is implemented using two |LDAP| servers, one running on each controller node. |LDAP| server synchronization is automatic using the native |LDAP| content synchronization protocol. A set of |LDAP| commands is available to operate on |LDAP| user accounts. The commands are installed in the directory /usr/local/sbin, and are available to any user account in the sudoers list. Included commands are :command:`lsldap`, :command:`ldapadduser`, :command:`ldapdeleteuser`, and several others starting with the prefix :command:`ldap`. Use the command option --help on any command to display a brief help message, as illustrated below. .. code-block:: none $ ldapadduser --help Usage : /usr/local/sbin/ldapadduser <username> <groupname | gid> [uid] $ ldapdeleteuser --help Usage : /usr/local/sbin/ldapdeleteuser <username | uid> .. rubric:: |prereq| For convenience, identify the user's Keystone account user name in |prod-long|. .. rubric:: |proc| #. Log in as **sysadmin**, and start the :command:`ldapusersetup` script. .. code-block:: none controller-0: ~$ sudo ldapusersetup #. Follow the interactive steps in the script. #. Provide a user name. .. code-block:: none Enter username to add to LDAP: teamadmin .. code-block:: none Successfully added user teamadmin to LDAP Successfully set password for user teamadmin Warning : password is reset, user will be asked to change password at login #. Specify whether the user should have sudo capabilities or not. Enabling ``sudo`` privileges allows the LDAP users to execute the following operations: - ``sw_patch`` to unauthenticated endpoint - ``docker`` and/or ``crictl`` commands to communicate with the respective daemons - Utilities ``show-certs.sh`` and ``license-install`` (recovery only) - IP configuration for local network setup - Password change of local openldap users - Access to restricted files, example: restricted logs - Manual reboots .. code-block:: none Add teamadmin to sudoer list? (yes/NO): yes Successfully added sudo access for user teamadmin to LDAP #. Specify a secondary user group for this |LDAP| user. For example, ``sys_protected group``. The purpose of having OpenLDAP/WAD users as a part of the ``sys_protected`` group on the |prod| platform is to allow them to execute the |prod| system operations via ``source/etc/platform/openrc``. The LDAP user in the ``sys_protected`` group will be equivalent to the special ``sysadmin`` bootstrap user, and will have the following: - Keystone admin/admin identity and credentials - Kubernetes ``/etc/kubernetes/admin.conf`` credentials .. code-block:: none Add teamadmin to secondary user group? (yes/NO): yes Secondary group to add user to? [sys_protected]: Successfully added user teamadmin to group cn=sys_protected,ou=Group,dc=cgcs,dc=local #. Change the password duration. .. code-block:: none Enter days after which user password must be changed [90]: .. code-block:: none Successfully modified user entry uid=ldapuser1, ou=People, dc=cgcs, dc=local in LDAP Updating password expiry to 90 days #. Change the warning period before the password expires. .. code-block:: none Enter days before password is to expire that user is warned [2]: .. code-block:: none Successfully modified user entry uid=teamadmin,ou=People,dc=cgcs,dc=local in LDAP Updating password expiry to 2 days On completion of the script, the command prompt is displayed. .. code-block:: none controller-0: ~$ .. rubric:: |result| The Local |LDAP| account is created. For information about the user login process, see :ref:`For StarlingX and Platform OpenStack CLIs from a Local LDAP Linux Account Login <establish-keystone-credentials-from-a-linux-account>`. For managing composite Local |LDAP| Accounts (i.e. with associated Keystone and Kubernetes accounts) for a standalone cloud or a distributed cloud, see :ref:`Manage Composite Local LDAP Accounts at Scale <manage-local-ldap-39fe3a85a528>`.