Skip to Content

How to generate user reports as CSV files in Ezeelogin?

Exporting Remote Server Access, Access Control, and User Group–Server Group Reports as CSV Files


Overview: This article explains how to generate CSV reports of gateway users, detailing their remote server access, access control permissions and usergroup-servergroup access.



A) How to generate an remote server access report for a gateway user?

A.1.Run the following script on gateway server to generate reports for all users

root@gateway:# php  /usr/local/ezlogin/eztool.php -user_report -out filename.csv

A.2. Run the following script on gateway server to generate the report for a single user

root@gateway:# php  /usr/local/ezlogin/eztool.php -user_report username -out filename.csv

A.3. Run the following script on gateway server to generate the report for multiple users

root@gateway:# php  /usr/local/ezlogin/eztool.php -user_report username1,username2 -out filename.csv

For example, the following script generates the report for all users in Ezeelogin to the allreport.csv file.  

root@gateway:#  php /usr/local/ezlogin/eztool.php -user_report -out allreport.csv

#########################
# Ezeelogin Tool        #
#########################

Checking environment... The memory limit is less than 4 GB. If the script crashes abruptly without any errors, try increasing the PHP memory limit.
done (1736)
Checking license... done (1991)

Enter the Ezeelogin administrator password: Admin!2345

Note: Running the below scripts will prompt for the Ezeelogin administrator password. The Ezeelogin administrator password (super admin user) is the user's password created at the time of installation.

The content of the allreport.csv file is shown below. 

root@gateway:# cat allreport.csv


username,firstname,lastname,email,usergroup,status,last_login_at,last_login_from,user_created,user_expiry,servername,IP,description,servergroup,ssh_user

admin,Administrator,,,Admins,Active,"2021-12-10 04:50:15",192.168.29.29,"2021-12-01 06:26:09",Never,gw.ezee.co,192.168.29.178,,linux-servers,tech
admin,Administrator,,,Admins,Active,"2021-12-10 04:50:15",192.168.29.29,"2021-12-01 06:26:09",Never,sub-jake-linu16,192.168.29.254,,linux-servers,root
admin,Administrator,,,Admins,Active,"2021-12-10 04:50:15",192.168.29.29,"2021-12-01 06:26:09",Never,Ad-wind-RDP,192.168.29.79,,RDP-machine,Administrator
monica,monica,,monica@lew.co,Dummy,Active,"2021-12-01 07:29:04",127.0.0.1,"2021-12-01 07:27:47",Never,gw.ezee.co,192.168.29.178,,linux-servers,jake
monica,monica,,monica@lew.co,Dummy,Active,"2021-12-01 07:29:04",127.0.0.1,"2021-12-01 07:27:47",Never,sub-jake-linu16,192.168.29.254,,linux-servers,jake
decker,decker,,decker@lew.co,Dummy,Active,"2021-12-01 07:46:24",127.0.0.1,"2021-12-01 07:31:44",Never,sub-jake-linu16,192.168.29.254,,linux-servers,root

The following example shows how to view the list of servers that a user has.

root@gateway:#  php /usr/local/ezlogin/eztool.php -user_report ezadmin -out ezadmin_report.csv

root@gateway:# cat ezadmin_report.csv

username,firstname,lastname,email,usergroup,status,last_login_at,last_login_from,user_created,user_expiry,servername,ip,description,servergroup,ssh_user

ezadmin,Administrator,,,Admins,Active,"2022-12-08 06:44:01",192.168.1.3,"2022-12-06 11:12:30",Never,centos.server,192.168.1.2,,production.server,root
ezadmin,Administrator,,,Admins,Active,"2022-12-08 06:44:01",192.168.1.3,"2022-12-06 11:12:30",Never,ubuntu.server,192.168.1.1,,production.server,root

User report can be generated with the last modified date and modified by username, available from Ezeelogin version 7.45.0How to upgrade the Ezeelogin version to the latest?

Example:

php /usr/local/ezlogin/eztool.php -user_report -out filename.csv

username,firstname,lastname,email,usergroup,status,last_login_at,last_login_from,user_created,last_modified,last_modified_by,user_expiry,servername,ip,description,servergroup,ssh_user
ezadmin,Administrator,,admin@ez.com,Admins,Active,"2026-03-04 06:44:09",192.168.0.178,"2026-03-05 00:20:18",,,Never,cred,10.10.1.40,,"production servers",nesvin
ezadmin,Administrator,,admin@ez.com,Admins,Active,"2026-03-04 06:44:09",192.168.0.178,"2026-03-05 00:20:18",,,Never,sevv,10.10.1.24,,"production servers",root
alex,alex,user,alex@ez.com,Dummy,Active,"2026-03-03 09:09:26",10.10.1.23,"2026-03-03 06:43:09",,,Never,,,,,
john,john,user,john@ez.com,Dummy,Active,,,"2026-03-03 07:38:15","2026-03-04 06:57:26","ezadmin (1)",Never,,,,,

Run below MySQL command on gateway server to generate csv file with user login details.

root@gateway:#  mysql -u root -p -e "USE $(grep -oP 'db_name\s+\K\S+' /usr/local/etc/ezlogin/ez.conf); select id,firstname,username,last_login_at,last_login_from from $(grep -oP 'db_prefix\s+\K\S+' /usr/local/etc/ezlogin/ez.conf)users;" --batch --raw | sed 's/\t/,/g' > user_login_details.csv


B) How to generate an access control report for a gateway user (User  - Actions)?

This is available from Ezeelogin version: 7.43.0

B.1. Run the following script on gateway server to generate reports for all users

root@gateway:# php /usr/local/ezlogin/eztool.php -user_capability_report -out allreport.csv

B.2. Run the following script on gateway server to generate reports for single user

root@gateway:# php /usr/local/ezlogin/eztool.php -user_capability_report username -out user_report.csv

B.3. Run the following script on gateway server to generate reports for multiple users

root@gateway:# php /usr/local/ezlogin/eztool.php -user_capability_report user1,user2 -out user_report.csv

For example, the following script generates the report for single users in Ezeelogin to the allreport.csv file.  

root@gateway:#  php /usr/local/ezlogin/eztool.php -user_report alex -out alex_report.csv

#########################
# Ezeelogin Tool        #
#########################

Checking environment... The memory limit is less than 4 GB. If the script crashes abruptly without any errors, try increasing the PHP memory limit.
done (1736)
Checking license... done (1991)

Enter the Ezeelogin administrator password: Admin!2345

The content of the alex_report.csv file is shown below. 

root@gateway:# cat alex_report.csv

username,firstname,lastname,email,usergroup,status,last_login_at,last_login_from,user_created,user_expiry,module,feature

alex,alex,,alex@ez.ocm,Dummy,Active,"2025-06-25 07:00:33",192.168.56.1,"2025-06-03 09:21:38",Never,"Gateway (aka Bastion Host)","Ezsh Shell"
alex,alex,,alex@ez.ocm,Dummy,Active,"2025-06-25 07:00:33",192.168.56.1,"2025-06-03 09:21:38",Never,"Gateway (aka Bastion Host)","Allow Mosh (https://mosh.org)"
alex,alex,,alex@ez.ocm,Dummy,Active,"2025-06-25 07:00:33",192.168.56.1,"2025-06-03 09:21:38",Never,"Gateway (aka Bastion Host)","Allow SCP"
alex,alex,,alex@ez.ocm,Dummy,Active,"2025-06-25 07:00:33",192.168.56.1,"2025-06-03 09:21:38",Never,"Gateway (aka Bastion Host)","Allow SFTP"


C) How to generate a report of the ACLs showing user group–action mappings (Usergroup - Actions)?

This is available from Ezeelogin version: 7.43.0

C.1. Run the following script on gateway server to generate reports for all usergroups

root@gateway:# php /usr/local/ezlogin/eztool.php -usergroup_capability_report -out allreport.csv

C.2. Run the following script on gateway server to generate reports for single usergroup

root@gateway:# php /usr/local/ezlogin/eztool.php -usergroup_capability_report usergroup_name -out user_report.csv

C.3. Run the following script on gateway server to generate reports for multiple usergroup

root@gateway:# php /usr/local/ezlogin/eztool.php -usergroup_capability_report usergroup_name1,usergroup_name2-out user_report.csv

For example, the following script generates the report for all users in Ezeelogin to the sysadmins_report.csv file.  

root@gateway:#  php /usr/local/ezlogin/eztool.php -usergroup_capability_report sysadmins -out sysadmins_report.csv

#########################
# Ezeelogin Tool        #
#########################

Checking environment... The memory limit is less than 4 GB. If the script crashes abruptly without any errors, try increasing the PHP memory limit.
done (1736)
Checking license... done (1991)

Enter the Ezeelogin administrator password: Admin!2345

The content of the sysadmins_report.csv file is shown below. 

root@gateway:# cat sysadmins_report.csv

usergroup,description,module,feature

sysadmins,"sysadmins Group",Cluster,All
sysadmins,"sysadmins Group","Web Portals","Web Portal List"
sysadmins,"sysadmins Group","Web Portals","View Portal"
sysadmins,"sysadmins Group","Web Portals","Add Portal"
sysadmins,"sysadmins Group","Web Portals","Edit Portal"
sysadmins,"sysadmins Group","Web Portals","Delete Portal"
sysadmins,"sysadmins Group","Web Portals","Export Portals"
sysadmins,"sysadmins Group","Web Portals","Web Portal Login"


D) How to generate a report that shows the access control mapping between user groups and server groups (Usergroup - Servergroup)?

This is available from Ezeelogin version: 7.43.0

D.1. Run the following script on gateway server to generate reports for usergroups-servergroup

root@gateway:# php /usr/local/ezlogin/eztool.php -usergroup_report -out allreport.csv

D.2. Run the following script on gateway server to generate reports for single usergroup

root@gateway:# php /usr/local/ezlogin/eztool.php -usergroup_report usergroup_name -out user_report.csv

D.3. Run the following script on gateway server to generate reports for multiple usergroup

root@gateway:# php /usr/local/ezlogin/eztool.php -usergroup_report usergroup_name1,usergroup_name2 -out user_report.csv

For example, the following script generates the report for all users in Ezeelogin to the sysadmins_report.csv file.  

root@gateway:#  php /usr/local/ezlogin/eztool.php -usergroup_report sysadmins -out sysadmins_report.csv

#########################
# Ezeelogin Tool        #
#########################

Checking environment... The memory limit is less than 4 GB. If the script crashes abruptly without any errors, try increasing the PHP memory limit.
done (1736)
Checking license... done (1991)

Enter the Ezeelogin administrator password: Admin!2345

The content of the sysadmins_report.csv file is shown below. 

root@gateway:# cat sysadmins_report.csv

usergroup,usergroup_description,servergroup,servergroup_description

sysadmins,"sysadmins Group","production servers",

sysadmins,"sysadmins Group","staging servers",

sysadmins,"sysadmins Group","developement servers",

sysadmins,"sysadmins Group","eur_servers",

sysadmins,"sysadmins Group","server_CA",


E) How to get the list of users that have access to a user group ?
E.1. Run the following command to display the list of all gateway users along with their assigned user group:

root@gateway:# mysql -u root -p -e "USE $(grep -oP 'db_name\s+\K\S+' /usr/local/etc/ezlogin/ez.conf); SELECT u.username, ug.name AS usergroup, u.created, u.last_login_at, u.status FROM $(grep -oP 'db_prefix\s+\K\S+' /usr/local/etc/ezlogin/ez.conf)users u JOIN $(grep -oP 'db_prefix\s+\K\S+' /usr/local/etc/ezlogin/ez.conf)usergroups ug ON u.usergroup_id = ug.id ORDER BY ug.name, u.username;"

Enter password:

+----------+-----------+---------------------+---------------------+--------+
| username | usergroup | created             | last_login_at       | status |
+----------+-----------+---------------------+---------------------+--------+
| ezadmin  | Admins    | 2026-03-05 00:20:18 | 2026-03-04 06:44:09 | 1      |
| alex     | Dummy     | 2026-03-03 06:43:09 | 2026-03-03 09:09:26 | 1      |
| john     | Dummy     | 2026-03-03 07:38:15 | NULL                | 1      |
+----------+-----------+---------------------+---------------------+--------+

E.2. Run the following command to display the list of all gateway users have access to specfic user group. Replace user_group_name with correct user group name:

root@gateway:# mysql -u root -p -e "USE $(grep -oP 'db_name\s+\K\S+' /usr/local/etc/ezlogin/ez.conf); SELECT u.username, ug.name AS usergroup, u.created, u.last_login_at, u.status FROM $(grep -oP 'db_prefix\s+\K\S+' /usr/local/etc/ezlogin/ez.conf)users u JOIN $(grep -oP 'db_prefix\s+\K\S+' /usr/local/etc/ezlogin/ez.conf)usergroups ug ON u.usergroup_id = ug.id WHERE ug.name = 'user_group_name';"

Example:

root@gateway:# mysql -u root -p -e "USE $(grep -oP 'db_name\s+\K\S+' /usr/local/etc/ezlogin/ez.conf); SELECT u.username, ug.name AS usergroup, u.created, u.last_login_at, u.status FROM $(grep -oP 'db_prefix\s+\K\S+' /usr/local/etc/ezlogin/ez.conf)users u JOIN $(grep -oP 'db_prefix\s+\K\S+' /usr/local/etc/ezlogin/ez.conf)usergroups ug ON u.usergroup_id = ug.id WHERE ug.name = 'Dummy';"

Enter password:

+----------+-----------+---------------------+---------------------+--------+
| username | usergroup | created             | last_login_at       | status |
+----------+-----------+---------------------+---------------------+--------+
| alex     | Dummy     | 2026-03-03 06:43:09 | 2026-03-03 09:09:26 | 1      |
| john     | Dummy     | 2026-03-03 07:38:15 | NULL                | 1      |
+----------+-----------+---------------------+---------------------+--------+


F) How to get the list of usernames and user group names that have access to a server group (UserGroup - ServerGroup)?

This is available from Ezeelogin version: 7.46.0

F.1. Run the following command to generate reports for all server group.

root@gateway:# php /usr/local/ezlogin/eztool.php -servergroup_access_report -out report.csv

F.2. Run the following command to generate reports of one server group.

root@gateway:# php /usr/local/ezlogin/eztool.php -servergroup_access_report 'server group name' -out report.csv

F.3. Run the following command to generate reports of multiple server group.

root@gateway:# php /usr/local/ezlogin/eztool.php -servergroup_access_report 'server group name 1','server group name 2' -out report.csv

For example, the following script generates the report for all one server group in Ezeelogin to the report.csv file.

root@gateway:# php /usr/local/ezlogin/eztool.php -servergroup_access_report 'development servers' -out report.csv

#########################
# Ezeelogin Tool        #
#########################

Checking environment... The memory limit is less than 4 GB. If the script crashes abruptly without any errors, try increasing the PHP memory limit.
done (1736)
Checking license... done (1991)

Enter the Ezeelogin administrator password: Admin!2345

The content of the report.csv file is shown below.

root@gateway:# cat report.csv

servergroup,usergroup,username,user_created,user_last_login,acl
"development servers",Admins,ezadmin,"2026-04-23 10:48:17","2026-05-27 05:03:01","usergroup - servergroup"


G) How to get detailed information about user modification activities?

This is available from Ezeelogin version: 7.46.0

Detailed information will be shown only if the Detailed Audit Log option is enabled. Refer to the detailed audit log article for more information.

Run the following script on gateway server to generate reports for user.

root@gateway:~# php /usr/local/ezlogin/eztool.php -user_modifications username -out report.csv

For example, the following script generates the report for all users in Ezeelogin to the report.csv file.

root@gateway:~# php /usr/local/ezlogin/eztool.php -user_modifications tony -out report.csv

#########################
# Ezeelogin Tool        #
#########################

Checking environment... The memory limit is less than 4 GB. If the script crashes abruptly without any errors, try increasing the PHP memory limit.
done (1736)
Checking license... done (1991)

Enter the Ezeelogin administrator password: Admin!2345

The content of the report.csv file is shown below.

root@gateway:# cat report.csv

updated_at,updated_by_user_id,updated_by_username,objective,description
"2026-05-27 10:55:35",1,ezadmin,"Updated: tony (25)",
"2026-05-27 10:56:07",1,ezadmin,"Updated: tony (25)",
"2026-05-27 10:59:17",1,ezadmin,"Updated: tony (25)","CHANGES:

status:
FROM:
0
TO:
1

change_pw:
FROM:
0
TO:
1
"