Juster adgang til Indstillinger

Source: Download script

Last Updated: 4. December 2024 by Agnete Moos (agms@sonderborg.dk)

Parameters:

Navn Type Standardværdi Påkrævet
Click to see the source code
#!/usr/bin/env bash

set -ex

if get_os2borgerpc_config os2_product | grep --quiet kiosk; then
  echo "Dette script er ikke designet til at blive anvendt på en kiosk-maskine."
  exit 1
fi

ACTIVATE=$1

# Restore access to settings
if [ "$ACTIVATE" = 'True' ]; then

  # Making sure we're not removing the actual
  # gnome-control-center if run with the wrong argument or multiple times
  if grep --quiet 'zenity' /usr/bin/gnome-control-center; then
    # Remove the permissions override and manually reset permissions to defaults
     # Suppress error to prevent set -e exiting in case the override no longer exists
    dpkg-statoverride --remove /usr/bin/gnome-control-center.real || true
    chown root:root /usr/bin/gnome-control-center.real
    chmod 755 /usr/bin/gnome-control-center.real
    # Remove the shell script that prints the error message
    rm /usr/bin/gnome-control-center
    # Remove location override and restore gnome-control-center.real back to gnome-control-center
    dpkg-divert --remove --no-rename /usr/bin/gnome-control-center
    # dpkg-divert can --rename it itself, but the problem with doing that is that in some images
    # dpkg-divert is not used, it was simply moved/copied, so that won't restore it, leaving you
    # with no gnome-control-center
    mv /usr/bin/gnome-control-center.real /usr/bin/gnome-control-center
  fi
else # Remove access to settings

  if [ ! -f "/usr/bin/gnome-control-center.real" ]; then
    dpkg-divert --rename --divert  /usr/bin/gnome-control-center.real --add /usr/bin/gnome-control-center
    dpkg-statoverride --update --add superuser root 770 /usr/bin/gnome-control-center.real
  fi

  cat << EOF > /usr/bin/gnome-control-center
#!/bin/bash

USER=\$(id -un)

# Set the info text based on the chosen language
if echo \$LANG | grep sv; then
  INFO="Systeminställningarna är inte tillgängliga för allmänheten.\n\nKontakta personalen om det uppstår problem."
elif echo \$LANG | grep en; then
  INFO="The settings are not accessible to the public.\n\nContact the staff if there are issues."
else
  INFO="Systemindstillingerne er ikke tilgængelige for publikum.\n\nKontakt personalet, hvis der er problemer."
fi

if [ \$USER == "user" ]; then
  zenity --info --text="\$INFO"
else
  /usr/bin/gnome-control-center.real "\$@"
fi
EOF

  chmod +x /usr/bin/gnome-control-center

fi

Beskrivelse

SIKKERHEDSMÆSSIGE OVERVEJEJELSER: Dette script låser ned eller op for adgang til Indstillinger.

Hvis borgere gives adgang til indstillinger, vil ændringer de foretager dog generelt stadig nulstilles efter logud. Det har dog vist sig, der kan være enkelte undtagelser: Indstillinger -> Privatliv -> Tjek af forbindelse …kan ændres permanent!

Det mest nedlåste er, hvis borgere ikke har adgang til indstillinger, hvilket er standardindstillingen på nyere images (3.1.0 og nyere images). Vi FRARÅDER pga. ovenstående at Borger gives adgang til Indstillinger.

Dette script påvirker kun Borger-kontoen - superuser har altid adgang til Indstillinger, men superusers ændringer i Indstillinger påvirker ikke Borger - eller omvendt.

Dette script er blevet testet og virker på Ubuntu 22.04.

Parametre

Sæt hak: Borger har adgang til Indstillinger Intet hak: Borger har IKKE adgang til Indstillinger