The solution, using existing RBAC was as follows:
Create a user 'halcyon' to operate the Halcyon agent (We had already done this a long time ago on the customer system)
mkuser admin='false' pgrp='staff' groups='staff' su='false' shell='/usr/bin/ksh' gecos='Halcyon User' halcyon
We then made a role called "Halcyon", using the existing RBAC authorisations to the VIOS commands we need access to:
mkrole authorizations='vios.device.manage.list,vios.device.manage.map.phyvirt' dfltmsg='Halcyon role for VIOS' Halcyon
Ensure that the halcyon user has the role "Halcyon" assigned to it:
chuser roles='Halcyon' halcyon
Make sure the "Halcyon role is the default role for the user:
chuser default_roles=Halcyon halcyon
We then update the Kernel to pick up the changes:
setkst
We then switched to the Halcyon user and checked we could access the commands:
su - halcyon
/usr/ios/cli/ioscli lsmap -all
The bit I missed was the setting of the default role, so the halcyon account could operate automatically.
Thanks for everyones ideas and pointers.
------------------------------
Michael Davison
EMEA Support Team Lead
Fortra
Peterborough
------------------------------
Original Message:
Sent: Fri November 21, 2025 08:51 AM
From: Michael Davison
Subject: VIOS RBAC for monitoring
Hi all.
I am deskilled having not worked on VIO for over a decade, so I need help from the community please.
I am trying to give a user the minimum privs to be able to monitor the VIO server.
I need to give them access to the lsmap and the lsnports command from the ios cli command set.
VIOS 4.1.1.10
AIX 7300-03-01-2520
According to this page:
Using role-based access control with the Virtual I/O Server
| Ibm | remove preview |
| | Using role-based access control with the Virtual I/O Server | | With Virtual I/O Server Version 2.2, and later, a system administrator can define roles based on job functions in an organization by using role-based access control (RBAC). | | View this on Ibm > |
|
|
I need to give these authorizations to the user:
vios.device.manage.list
vios.device.manage.map.phyvir
So I created a role:
mkrole authorizations='vios.device.manage.list,vios.device.manage.map.phyvirt' dfltmsg='Monitoring role for VIOS' monrole
and added the role to the user:
chuser roles='monrole' monuser
I still get
"Access to run the command is not valid"
This is for a customer who has no VIOS support and needs to call in a consultant everytime they want something doing so I have no access to the VIO server myself.
Thanks in advance for any and all advice.
------------------------------
Michael Davison
EMEA Support Team Lead
Fortra
Peterborough
------------------------------