Solaris 11.4 has a new tool to ease the administration of user accounts. It's called useradm. It can be used to add,modify, delete and list users themself and the configuration properties of this users.

For example you can list the properties like this:
root@solaris114:~# useradm  list jmo
userID = 100
groupName = staff
Minimum Label = ADMIN_LOW
defaultShell = /usr/bin/bash
username = jmo
description = jmo
Session Annotation = yes
Roles  =
Authenticated Profiles  =
        System Administrator
Lock After Retries = no
accountStatus = Password
homeDirectory = /export/home/jmo
Clearance = ADMIN_HIGH
groupID = 10
However possibly most interesting the the ncurses based interactive interface to useradm add and useradm modify

It's not just interesting that you can do administrative task with it, but that it shows many of the features of Solaris configurable per user at one place. In case you want to try it, you have to install it with pkg install useradm. In case you see an error message when adding a user, please start again and commit the user first before trying to change the setting which led to the error message.

Do you want to learn more?

Managing User Accounts and User Environments in Oracle® Solaris 11.4 - About the useradm Application



  • siedlas  
    It doesn't work perfeclty.
    I tried

    useradm add siedlas

    When I have chosen Labels > Minimum Labels i have got output like this:

    root@T8-2-1:~# useradm add siedlas
    Traceback (most recent call last):
    File "/usr/sbin/useradm", line 1434, in
    File "/usr/sbin/useradm", line 1425, in main
    menu_main, userAttrs, user, 0, 2)
    File "/usr/lib/python2.7/vendor-packages/useradm/", line 595, in run_topmenu
    File "/usr/sbin/useradm", line 639, in userLabels
    curLabel = label.hexLabelToString(curLabel)
    File "/usr/lib/python2.7/vendor-packages/rad/", line 635, in wrapped_f
    return f(*args, **kwargs)
    File "/usr/lib/python2.7/vendor-packages/rad/bindings/com/oracle/solaris/rad/", line 204, in hexLabelToString
    return self._invoke("hexLabelToString", Type(RADString, None, False), Type(LabelError, None, False), Parameter('hexLabel', hexLabel, Type(RADString, None, False), False))
    File "/usr/lib/python2.7/vendor-packages/rad/", line 733, in _invoke
    (meth, self._rad_get_name(), ex._error), error, self._conn)
    File "/usr/lib/python2.7/vendor-packages/rad/", line 191, in _raise_error
    raise _Errors[ex._error][1](msg, ex, error, conn)
    rad.client.ObjectError: LabelError(errorCode = LabelErrorType(value = BAD_LABEL))
  • Glenn Faden  
    The error occurred because the user account had not been created yet. The code failed to retrieve the current value for the minimum label because there was no entry yet in /etc/passwd or /etc/user_attr . So when adding a new account you need to select Commit before selecting Minimum Label .

Add Comment

Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
Standard emoticons like :-) and ;-) are converted to images.

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.