User Management

Currently user management is done on the command line.

Adding User Accounts

Adding users is conveniently performed by invoking the script`/usr/sbin/adduser.sh.`. Example:

0 root@cl-head ~ #
/usr/sbin/adduser.sh -u username -n 'real name'

This script performs all the tasks necessary for creating a new user account. There are a number of options to it, that you can see when invoking it using the -h flag. It reads the configuration file /etc/qlustar/common/adduser.cf for default values.

The user ids of new accounts should be greater than 1000 to avoid a conflict with existing system accounts.

Removing User Accounts

Use the script /usr/sbin/removeuser.sh to remove a user account from the system. Example:

0 root@cl-head ~ #
removeuser.sh username

To recursively remove the user’s home-directory as well add the -r option:

0 root@cl-head ~ #
removeuser.sh -r username

Managing user restrictions

In the default configuration of a Qlustar cluster, all registered users are allowed to login by ssh on the cluster nodes. If this is not wanted, it is easily possible for cluster admins to change the default behavior. Users will then be allowed to ssh only into nodes where one of their jobs is running. To activate this setting for a node, use QluMan to assign the generic property _Limit User Logins with a value yes to it.

Shell Setup

The Qlustar shell setup supports tcsh and bash. There are global initialization files that are used in both shells, so you only have to modify one file for environment variables, aliases and path variables. The global files are:

/etc/qlustar/common/skel/env

Use this file to add or modify environment variables that are not path variables. The syntax of this file is as follows: lines beginning with a hash sign (#) and empty lines are ignored. Every other line consists of a variable name and the value for this variable separated with a space. Example: the following line sets the variable VISUAL to vi:

VISUAL vi

A file ~/.ql-env in a user’s home directory can define personal environment variables in the same manner.

/etc/qlustar/common/skel/alias

Use this file to define shell aliases. It has the same syntax as the file env described above. Again, a personal ~/.ql-alias file can define personal aliases.

/etc/qlustar/common/skel/paths

This directory contains files with a name of the form varname.Linux. The varname is converted to upper case and specifies a ‘PATH like’ environment variable (e.g. PATH, MANPATH, LD_LIBRARY_PATH, CLASSPATH , …​ ). Each line in this file is a directory to add to this environment variable. If the line begins with a ’p’ followed by a space followed by a directory, then this directory is prepended to the path variable otherwise it is appended. A user can create his/her own ~/.paths directory and so can use the same mechanism.

Bash Setup

We provide an extensible bash setup and bash is the recommended login shell. The bash startup consists of global settings and user settings. Global settings are stored in files under /etc/qlustar/common/skel. User settings are stored in files in the corresponding home directory.

/etc/qlustar/common/skel/bash/bashrc

This file sources the other bash files. Do not modify.

/etc/qlustar/common/skel/bash/bash-vars

This file is used for setting bash variables.

/etc/qlustar/common/skel/bash/alias

This file defines bash aliases.

/etc/qlustar/common/skel/bash/functions

You can use this file if you plan to create bash functions available to users.

The file ~/.bashrc also sources the following user specific files which have the same meaning as the global bash files.

  • ~/.bash/env

  • ~/.bash/bash-vars

  • ~/.bash/alias

  • ~/.bash/functions

Tcsh Setup

We provide a similar setup for the tcsh. The following files are used:

/etc/qlustar/common/skel/tcsh/tcshrc

This global tcshrc is sourced first and sources other startup files.

/etc/qlustar/common/skel/tcsh/tcsh-vars

Use this file to set tcsh variables.

/etc/qlustar/common/skel/tcsh/alias

You can use this file to define tcsh aliases.

The file ~/.tcshrc also sources the following use specific files which have the same meaning as the global tcsh files.

  • ~/.tcsh/alias

  • ~/.tcsh/env

  • ~/.tcsh/tcsh-vars