How To: Manage SSH Shell Users

The InterWorx Control Panel allows server administrators the ability to easily manage SSH shell users from within NodeWorx. From the Shell Users page, it is possible to enable and disable shell users, change both the default and a user’s shell, change shell users’ passwords, and set jailed users.

It is recommended to exercise discretion when giving out shell access, even jailed shell access, to end users in shared hosting environments.

To Change the Default Shell

Note

This will change the default shell for all newly enabled accounts. It will not affect existing enabled shell users.

  1. Log into NodeWorx from the browser (https://ip.ad.dr.ess:2443/nodeworx)

  2. From NodeWorx, navigate to SiteWorx > Shell Users

    shell users list
  3. At the bottom of the page, under More Options, click Default Shell. This opens the Shell Account Options form

  4. Select the desired shell from the Default Shell dropdown

    default ssh shell
  5. Click Update

To Enable a Shell User

From the User List

When enabling a user’s shell, three distinct operations are performed:

  • The shell user’s password is set to the SiteWorx account password

  • The user’s shell is updated to the default shell setting

  • The account is enabled

  1. Log into NodeWorx from the browser (https://ip.ad.dr.ess:2443/nodeworx)

  2. From NodeWorx, navigate to SiteWorx > Shell Users

    shell users list
  3. Click the checkmarked person next to the shell user. This opens the Confirmation form

    enable shell user enable confirmation form
  4. Click Enable to confirm

From the With Selected Dropdown

  1. Log into NodeWorx from the browser (https://ip.ad.dr.ess:2443/nodeworx)

  2. From NodeWorx, navigate to SiteWorx > Shell Users

    shell users list
  3. Select the checkbox next to the user(s)

    • Selecting the checkbox next to the With Selected dropdown will automatically select all accounts

  4. Select Enable from the With Selected dropdown

    enable dropdown
  5. Click Go. This opens the Confirmation form

    enable confirmation form
  6. Click Enable to confirm

To Change a Shell User’s Shell

From the User List

  1. Log into NodeWorx from the browser (https://ip.ad.dr.ess:2443/nodeworx)

  2. From NodeWorx, navigate to SiteWorx > Shell Users

    shell users list
  3. If the shell user is not already enabled, see To Enable a Shell User

  4. Click the three vertical dots next to the account. This opens an options form

    shell change options dropdown
  5. Select Change Shell. This opens the Change Shell form

    change user ssh shell
  6. Select the desired shell from the Shell dropdown

  7. Click Update

From the With Selected Dropdown

  1. Log into NodeWorx from the browser (https://ip.ad.dr.ess:2443/nodeworx)

  2. From NodeWorx, navigate to SiteWorx > Shell Users

    shell users list
  3. If the shell user is not already enabled, see To Enable a Shell User

  4. Select the checkbox next to the user(s)

    • Selecting the checkbox next to the With Selected dropdown will automatically select all users

    change shell dropdown
  5. Select Change Shell from the With Selected dropdown

  6. Click Go. This opens the Change Shell form

    change user ssh shell
  7. Select the desired shell from the Shell dropdown

  8. Click Update

To Set a Jailed User

A jailed user has a very limited view of the file system and available Linux commands when logged in.

From the User List

  1. Log into NodeWorx from the browser (https://ip.ad.dr.ess:2443/nodeworx)

  2. From NodeWorx, navigate to SiteWorx > Shell Users

    shell users list
  3. If the shell user is not already enabled, see To Enable a Shell User

  4. Click the three vertical dots next to the account. This opens an options form

    shell change options dropdown
  5. Select Change Shell. This opens the Change Shell form

    change user ssh shell
  6. Select /usr/sbin/jk_chrootsh from the Shell dropdown

  7. Click Update

From the With Selected Dropdown

  1. Log into NodeWorx from the browser (https://ip.ad.dr.ess:2443/nodeworx)

  2. From NodeWorx, navigate to SiteWorx > Shell Users

    shell users list
  3. If the shell user is not already enabled, see To Enable a Shell User

  4. Select the checkbox next to the user(s)

    • Selecting the checkbox next to the With Selected dropdown will automatically select all users

    change shell dropdown
  5. Select Change Shell from the With Selected dropdown

  6. Click Go. This opens the Change Shell form

    change user ssh shell
  7. Select /usr/sbin/jk_chrootsh from the Shell dropdown

  8. Click Update

To Change a Shell User’s Password

  1. Log into NodeWorx from the browser (https://ip.ad.dr.ess:2443/nodeworx)

  2. From NodeWorx, navigate to SiteWorx > Shell Users

    shell users list
  3. If the shell user is not already enabled, see To Enable a Shell User

  4. Click the three vertical dots next to the account. This opens an options form

    shell change options dropdown
  5. Select Change Password. This opens the Change Shell Password form

    change password form
  6. Update the Password and Confirm Password fields with the new password

    • Alternately, click the Magic Wand to automatically generate a new password

  7. Click Update

To View a Shell User’s History

  1. Log into NodeWorx from the browser (https://ip.ad.dr.ess:2443/nodeworx)

  2. From NodeWorx, navigate to SiteWorx > Shell Users

    shell users list
  3. Click View next to the shell user. This opens a new window with the complete shell history of the shell user

To Disable a Shell User

From the User List

  1. Log into NodeWorx from the browser (https://ip.ad.dr.ess:2443/nodeworx)

  2. From NodeWorx, navigate to SiteWorx > Shell Users

    shell users list
  3. Click the crossed out person next to the shell user. This opens the confirmation form

    disable shell user disable confirmation form
  4. Click Disable to confirm

From the With Selected Dropdown

  1. Log into NodeWorx from the browser (https://ip.ad.dr.ess:2443/nodeworx)

  2. From NodeWorx, navigate to SiteWorx > Shell Users

    shell users list
  3. Select the checkbox next to the user(s)

    • Selecting the checkbox next to the With Selected dropdown will automatically select all

    disable dropdown
  4. Select Disable from the With Selected dropdown

  5. Click Go. This opens the Confirmation form

    disable confirmation form
  6. Click Disable to confirm

To Configure Multiple SSH Users per SiteWorx Account

InterWorx allows for the ability to have more than one SSH user per SiteWorx account. The SiteWorx account must have shell access in order to use this feature.

Enabling Multiple SSH Users

On AlmaLinux 8

  1. Log in to the server at the CLI as root, either via SSH or from the terminal

  2. Run the following commands to install libnss-mysql and set the config options to allow multiple SSH users per SiteWorx account:

    yum install libnss-mysql
    ~iworx/bin/config.pex --global --set --name SITEWORX_SSH_FEATURE --value 1
    ~iworx/bin/sshd.pex --init-libnss-mysql
    
  3. Using a text editor, open /etc/nsswitch.conf. The following example uses the vim text editor:

    vim /etc/nsswitch.conf
    
  4. Append mysql to the passwd, shadow, and group lines. The edited section should be similar to the following:

    # In order of likelihood of use to accelerate lookup.
    passwd:      files sss systemd mysql
    shadow:     files sss mysql
    group:       files sss systemd mysql
    hosts:      files dns myhostname
    services:   files sss
    netgroup:   sss
    automount:  files sss
    
    aliases:    files
    ethers:     files
    gshadow:    files
    
  5. Save and exit the text editor

On Rocky Linux 8

  1. Log in to the server at the CLI as root, either via SSH or from the terminal

  2. Run the following commands to install libnss-mysql, set the config options to allow multiple SSH users per SiteWorx account, and create a custom autoselect profile:

    yum install libnss-mysql
    ~iworx/bin/config.pex --global --set --name SITEWORX_SSH_FEATURE --value 1
    ~iworx/bin/sshd.pex --init-libnss-mysql
    authselect create-profile libnss-mysql -b minimal
    
  3. Using a text editor, open /etc/authselect/custom/libnss-mysql/nsswitch.conf. The following example uses the vim text editor:

    vim /etc/authselect/custom/libnss-mysql/nsswitch.conf
    
  4. Append mysql after the word files on the passwd, shadow, and group lines. The edited section should be similar to the following example:

    aliases:    files                                       {exclude if "with-custom-aliases"}
    automount:  files                                       {exclude if "with-custom-automount"}
    ethers:     files                                       {exclude if "with-custom-ethers"}
    group:      files mysql {if "with-altfiles":altfiles }systemd {exclude if "with-custom-group"}
    hosts:      files dns myhostname                        {exclude if "with-custom-hosts"}
    initgroups: files                                       {exclude if "with-custom-initgroups"}
    netgroup:   files                                       {exclude if "with-custom-netgroup"}
    networks:   files                                       {exclude if "with-custom-networks"}
    passwd:     files mysql {if "with-altfiles":altfiles }systemd {exclude if "with-custom-passwd"}
    protocols:  files                                       {exclude if "with-custom-protocols"}
    publickey:  files                                       {exclude if "with-custom-publickey"}
    rpc:        files                                       {exclude if "with-custom-rpc"}
    services:   files                                       {exclude if "with-custom-services"}
    shadow:     files mysql                                 {exclude if "with-custom-shadow"}
    
  5. Save and exit the text editor

  6. Run the following to enable the profile:

    authselect select custom/libnss-mysql
    

On EL9 Servers

Note

The following commands will update all files in /etc/pam.d/, as well as /etc/nsswitch.conf. It is recommended to back up any customizations that may have been made to those files before running the commands, below.

  1. Log in to the server at the CLI as root, either via SSH or from the terminal

  2. Run the following commands to install libnss-mysql and set the config options to allow multiple SSH users per SiteWorx account:

    yum install libnss-mysql
    ~iworx/bin/config.pex --global --set --name SITEWORX_SSH_FEATURE --value 1
    ~iworx/bin/sshd.pex --init-libnss-mysql
    authselect select libnss-mysql --force
    

Configuring the SSH Users

Once enabled, the secondary SiteWorx user will be able to use their SiteWorx password to access the server over SSH.

Note

Information on how to create secondary SiteWorx users can be found here.

  1. Log into SiteWorx from the browser (https://ip.ad.dr.ess:2443/siteworx)

  2. In SiteWorx, navigate to Adminstration > User Accounts

    secondary user list
  3. Click the Pencil next to the SiteWorx user that should have secondary SSH access. This opens the Edit SiteWorx User form

    multiple ssh user enable options
  4. Select Yes next to SSH Enabled

  5. If desired, update the SSH Public Key field with the User’s Public Key (Optional)

  6. Click Save