#!/bin/bash # SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. set -e USER="dgx-dashboard-service-user" GROUP="dgx-dashboard-service-group" case "$1" in configure) # Create the group if it doesn't already exist if ! getent group "$GROUP" > /dev/null 2>&1; then addgroup --system "$GROUP" fi # Create system user if it doesn't already exist (non-login, no shell) if ! id "$USER" > /dev/null 2>&1; then adduser --system --ingroup "$GROUP" "$USER" else usermod -a -G "$GROUP" "$USER" fi /usr/bin/chown root:root /etc/dbus-1/system.d/com.nvidia.dgx.dashboard.admin1.conf /usr/bin/chmod 644 /etc/dbus-1/system.d/com.nvidia.dgx.dashboard.admin1.conf /usr/bin/chown root:root /etc/systemd/system/dgx-dashboard-admin.service /usr/bin/chmod 600 /etc/systemd/system/dgx-dashboard-admin.service /usr/bin/chown root:root /etc/logrotate.d/dgx-dashboard /usr/bin/chmod 644 /etc/logrotate.d/dgx-dashboard # Set proper permissions for needsrestart config # Ensure the directory exists (in case needrestart isn't installed yet) if [ -d /etc/needrestart/conf.d ]; then if [ -f /etc/needrestart/conf.d/50-dgx-dashboard.conf ]; then /usr/bin/chown root:root /etc/needrestart/conf.d/50-dgx-dashboard.conf /usr/bin/chmod 644 /etc/needrestart/conf.d/50-dgx-dashboard.conf fi fi /usr/bin/chmod 555 /opt/nvidia/dgx-dashboard /usr/bin/chown root:root /opt/nvidia/dgx-dashboard /usr/bin/chown root:root /opt/nvidia/dgx-dashboard/*.sh /usr/bin/chmod 500 /opt/nvidia/dgx-dashboard/*.sh /usr/bin/chown root:root /opt/nvidia/dgx-dashboard/dashboard-admin /usr/bin/chmod 500 /opt/nvidia/dgx-dashboard/dashboard-admin /usr/bin/chmod 555 /opt/nvidia/dgx-dashboard-service /usr/bin/chown "$USER:$GROUP" /opt/nvidia/dgx-dashboard-service /usr/bin/chown "$USER:$GROUP" /etc/systemd/system/dgx-dashboard.service /usr/bin/chmod 644 /etc/systemd/system/dgx-dashboard.service /usr/bin/chown "$USER:$GROUP" /opt/nvidia/dgx-dashboard-service/dashboard-service /usr/bin/chmod 755 /opt/nvidia/dgx-dashboard-service/dashboard-service /usr/bin/chown "$USER:$GROUP" /opt/nvidia/dgx-dashboard-service/ports.env /usr/bin/chmod 500 /opt/nvidia/dgx-dashboard-service/ports.env /usr/bin/touch /opt/nvidia/dgx-dashboard-service/jupyterlab_ports.yaml /usr/bin/chmod 644 /opt/nvidia/dgx-dashboard-service/jupyterlab_ports.yaml /usr/bin/chown "$USER:$GROUP" /opt/nvidia/dgx-dashboard-service/jupyterlab_ports.yaml # Ensure launcher, desktop entry, and icon have correct permissions /usr/bin/chown root:root /usr/bin/dgx-dashboard || true /usr/bin/chmod 755 /usr/bin/dgx-dashboard || true /usr/bin/chown root:root /usr/share/applications/nvidia-dgx-dashboard.desktop || true /usr/bin/chmod 644 /usr/share/applications/nvidia-dgx-dashboard.desktop || true /usr/bin/chown root:root /usr/share/icons/hicolor/scalable/apps/nvidia-dgx-dashboard.png || true /usr/bin/chmod 644 /usr/share/icons/hicolor/scalable/apps/nvidia-dgx-dashboard.png || true # Reload systemd for system service /usr/bin/systemctl daemon-reload || true # Start dashboard admin service /usr/bin/systemctl enable dgx-dashboard-admin.service || true /usr/bin/systemctl start dgx-dashboard-admin.service || true # Start dashboard service /usr/bin/systemctl enable dgx-dashboard.service || true /usr/bin/systemctl start dgx-dashboard.service || true /usr/bin/systemctl daemon-reload || true ;; esac #DEBHELPER# exit 0