From 4c92968ce461cdfc6a5d913748b2ce4f148ff4a9 Mon Sep 17 00:00:00 2001 From: Jake Hunsaker Date: Thu, 10 Mar 2022 12:31:49 -0500 Subject: [PATCH] [tigervnc] Update collections for newer versions of TigerVNC First, relaxes the file specifications for collection by capturing the entire `/etc/tigervnc/` directory. Second, adds collection of service status and journal output for each configured vnc server. Collection of `vncserver -list` is kept for backwards compatibility. Finally, add a short docstring for the plugin for --help output. Signed-off-by: Jake Hunsaker --- sos/report/plugins/tigervnc.py | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/sos/report/plugins/tigervnc.py b/sos/report/plugins/tigervnc.py index 1302f6d4..e31aee25 100644 --- a/sos/report/plugins/tigervnc.py +++ b/sos/report/plugins/tigervnc.py @@ -12,17 +12,35 @@ from sos.report.plugins import Plugin, RedHatPlugin class TigerVNC(Plugin, RedHatPlugin): + """ + This plugin gathers information for VNC servers provided by the tigervnc + package. This is explicitly for server-side collections, not clients. + + By default, this plugin will capture the contents of /etc/tigervnc, which + may include usernames. If usernames are sensitive information for end + users of sos, consider using the `--clean` option to obfuscate these + names. + """ short_desc = 'TigerVNC server configuration' plugin_name = 'tigervnc' packages = ('tigervnc-server',) def setup(self): - self.add_copy_spec([ - '/etc/tigervnc/vncserver-config-defaults', - '/etc/tigervnc/vncserver-config-mandatory', - '/etc/tigervnc/vncserver.users' - ]) + self.add_copy_spec('/etc/tigervnc/') + + # service names are 'vncserver@$port' where $port is :1,, :2, etc... + # however they are not reported via list-unit-files, only list-units + vncs = self.exec_cmd( + 'systemctl list-units --type=service --no-legend vncserver*' + ) + if vncs['status'] == 0: + for serv in vncs['output'].splitlines(): + vnc = serv.split() + if not vnc: + continue + self.add_service_status(vnc[0]) + self.add_journal(vnc[0]) self.add_cmd_output('vncserver -list') -- 2.34.3