Authentication#
The ICE ClusterWare™ cluster administrator authentication method is controlled in the
/opt/scyld/clusterware/conf/base.ini
file by the plugins.auth
variable and is initially set to "appauth". The scyld-install
installation adds the current user to the auth.tmpadmins variable in that same
file (unless passed the --no-tools
argument). The
comma-separated list of user names, corresponding to system accounts
on the head node, are allowed in without additional authentication
checks. The auth.tmpadmins variable is only intended to be used
during early installation, for small experimental clusters, or when
recovering from some sort of failure, and is commented out by the
installer during the installation process.
After installation, any administrator can add additional administrators
through the scyld-adminctl command whose arguments match the other
scyld-*ctl
commands as described in ICE ClusterWare Command Line Tools. See
Configure Additional Cluster Administrators for details. In the
event of recovery, we suggest that administrators add accounts for
themselves through this tool, and thereafter comment out or clear the
auth.tmpadmins variable.
The "appauth" plugin executes the command defined in the
appauth.app_path variable as user root.
The default implementation of that command is provided by
/opt/scyld/clusterware/bin/pam_authenticator
.
This implementation interfaces with the PAM authentication system using the
/etc/pam.d/cw_check_user
configuration file.
The contents of this
file initially use local system authentication, although this can be modified to
authenticate against any mechanism available through the PAM system.
For details, see the PAM documentation provided by your distro, the
main PAM project, and the
Red Hat https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system-level_authentication_guide/pluggable_authentication_modules
documentation.
Administrators can provide authentication methods beyond PAM by
implementing a script or application and providing it via the
appauth.app_path variable. Appropriate applications should start
with no arguments, read a username and password separated by a newline
from stdin
, and reply with either yes
or no
followed by a
newline on stdout
. For example, a test run of
pam_authenticator
looks like:
[example@head ~] sudo /opt/scyld/clusterware/bin/pam_authenticator
tester
not_the_password
no
Assign Temporary Permissions#
If an issue occurs and you need to grant temporary administrative permissions to a user or list of users:
SSH into a head node.
Modify the base.ini file:
auth.tmpadmins = <comma-separated list of usernames>
Restart the clusterware service for the change to take effect:
systemctl restart clusterware
The list of users should have FullAdmin privileges.
Fix the issue.
Modify the base.ini file to remove the list of users who should not have FullAdmin privileges.
Restart the clusterware service for the change to take effect.