Compare commits

...

2 commits

Author SHA1 Message Date
Jakobus Schürz
d76c5eeff3 move files to right place 2022-11-26 10:41:29 +01:00
Jakobus Schürz
b93e45d97b update Readme 2022-11-26 10:41:12 +01:00
7 changed files with 57 additions and 52 deletions

View file

@ -9,11 +9,26 @@ Dieser Gast-Zugang ist über systemd gelöst. Dies ermöglicht es sehr einfach d
Wenn am System btrfs als Dateisystem genützt wird, wird das Home-Verzeichnis als Btrfs-Snapshot von /etc/skelXXX angelegt. Beim Ausloggen wird der gesamte Snapshot wieder gelöscht.
In GDM erscheint der Gastzugang sofort nach dem aktivieren mittels systemd
## Installation
Die Files unter etc müssen genau so nach /etc kopiert werden.
##Aktivieren des Gastzuganges
Bei der Installation des Paketes wird automatisch ein Gastzugang aktiviert. Der Username ist "gast", das Home-Verheichnis ist /home/gast, in GDM erscheint er als "Gast".
Bei der erstmaligen Anmeldung wird das Verzeichnis /etc/skel nach /etc/skelgast dupliziert und weiter nach /home/gast.
Um den Gastzugang zu aktivieren, muss auf einem BTRFS-Filesystem zuerst ein Subvolume für das Vorlage-Skeleton-Verzeichnis erstellt werden
Wenn BTRFS als Filesystem eingesetzt wird, dann muss das Vorlage/Skeleton-Verzeichnis so erstellt werden
btrfs subvolume create /etc/skelgast
Wird xfs, ext\* verwendet, dann so
mkdir -p /etc/skelgast
Zur Einrichtung muss man sich einmal als Gast anmelden, den Desktop so konfigurieren, wie man ihn dem Gast zur Verfügung stellen möchte (Alias, Shortcuts, Desktop-Icons, Favoriten, Gnome3-Erweiterungen...).
Wenn der Desktop fertig eingerichtet ist, eingeloggt bleiben und als root das gesamte /home/gast nach /etc/skelgast kopieren/synchronisieren.
Auch den Browser mit allen Addons, Startseite, Suchmaschinen usw. so herrichten, wie man das für seinen Gast-User will.
Ich hab startpage.com und metager.de als Suchmaschinen hinzugefügt und als Standardsuchmaschine aktiviert, Google entfernt (Startpage ersetzt Google 1:1).
Als Erweiterungen empfehle ich dezentraleyes, uBlock-Origin, Libredirect, Neat Urls, Snapdrop
Wenn der Desktop fertig eingerichtet ist, die Browser-History und allfällige Cookies löschen **eingeloggt bleiben und als root das gesamte /home/gast nach /etc/skelgast kopieren/synchronisieren**.
Dann kann man sich als Gast wieder ausloggen.
@ -45,9 +60,9 @@ Prinzipiell ist es sehr sinnvoll alle User-Prozesse beim ausloggen zu beenden (s
KillUserProcesses=yes
Für das Problem mit screen ist im Paket my-services eine Service-Unit für Screen, die für jene User vom Administrator aktiviert werden muss, welche screen nutzen können sollen oder wollen.
Für das Problem mit screen/tmux ist gibt es eine Anleitung für eine Service-Unit für screen/tmux, die für jene User vom Administrator aktiviert werden muss, welche screen nutzen können sollen oder wollen.
systemctl enable --now screen@$USER.service
https://git.schuerz.at/jakob/tmux-system-service
Soll das Debian-Standardverhalten für die User-Sessions aber beibehalten werden, so muss für eine korrekte Funktion der Guestsession aber das Beenden aller User-Prozesse für Guest explizit erlaubt werden:
@ -75,21 +90,5 @@ Und wenn notwendig ist noch das Skelet-Vorlage-Home /etc/skel$USERNAME zu entfer
Die Steuerungs-Files (DropIns) für das Backup sind ebenfalls zu löschen. Siehe im Punkt "Backup"
##Backup
Wenn mkbackup-btrfs in Verwendung ist, dann kann man das Home-Verzeichnis vom Gastzugang vom Backup ausnehmen. Dies geschieht über ein Konfigurations-DropIn in /etc/mkbackup-btrfs.conf.d/
Default wird mit der Installation dieses Paketes eine Datei im genannten Verzeichnis mit dem Namen guestsession.conf mit folgendem Inhalt angelegt:
[DEFAULT]
ignore = +/home/gast
Damit wird der Gastzugang von allen Interval-Snapshots ausgenommen. Das "+" am Beginn veranlasst, dass /home/gast zu allfällig bestehenden Ignore-Listen hinzugefügt wird.
Soll das Home-Verzeichnis des zweiten Gastzuganges wie im Beispiel weiter oben beschrieben vom Backup mit mkbackup-btrfs ausgenommen werden, so lege man eine neue Datei als root mit dem Inhalt an:
editor /etc/mkbackup-btrfs.conf.d/zweiterzugang.conf
[DEFAULT]
ignore = +/home/zweiterzugang

View file

@ -0,0 +1,21 @@
[Unit]
Description=Create and delete $HOME for Guest-Session USER: %i
Before=user@%i.service
#BindsTo=user@%i.service guest-session@%i.service
Conflicts=shutdown.target
BindsTo=user@%i.service
#RefuseManualStart=true
[Service]
Type=oneshot
RemainAfterExit=true
# if installed to /usr/lib/systemd, then activate this
#ExecStart=-/usr/lib/systemd/scripts/guest-session-homedir.sh create %i
#ExecStop=-/usr/lib/systemd/scripts/guest-session-homedir.sh delete %i
# if installed to /etc/systemd/syste/, then activate this
ExecStart=-/etc/systemd/scripts/guest-session-homedir.sh create %i
ExecStop= -/etc/systemd/scripts/guest-session-homedir.sh delete %i
[Install]
WantedBy=user@%i.service

View file

@ -0,0 +1,16 @@
[Unit]
Description=Create guest-user (%i) and activate volatile $HOME for it
[Service]
RemainAfterExit=true
# if installed to /usr/lib/systemd, then activate this
#ExecStart=/usr/lib/systemd/scripts/guest-session.sh create "%I"
#ExecStop=/usr/lib/systemd/scripts/guest-session.sh delete "%I"
# if installed to /etc/systemd/syste/, then activate this
ExecStart=/etc/systemd/scripts/guest-session.sh create "%I"
ExecStop= /etc/systemd/scripts/guest-session.sh delete "%I"
[Install]
WantedBy=multi-user.target

View file

@ -1,21 +0,0 @@
[Unit]
Description=Create and delete $HOME for Guest-Session USER: %i
Before=user@%i.service
#BindsTo=user@%i.service guest-session@%i.service
Conflicts=shutdown.target
BindsTo=user@%i.service
#RefuseManualStart=true
[Service]
Type=oneshot
RemainAfterExit=true
#ExecStartPre=/bin/sh -c '/bin/systemctl set-environment SKEL=/etc/skel$(/usr/bin/id -un %i)'
#ExecStartPre=/bin/sh -c '/bin/systemctl set-environment SK=$(test -e $SKEL && echo -n $SKEL || echo -n "/etc/skel")'
#ExecStartPre=/bin/sh -c '/bin/systemctl set-environment UHOME=$(getent passwd %i | cut -d: -f6)'
#ExecStartPre=/etc/systemd/system/scripts/guest-session-homedir.sh create "$SKEL" "$UHOME"
ExecStart=/usr/lib/systemd/scripts/guest-session-homedir.sh create %i
#ExecStart=/bin/chown -R %i:%i "$UHOME"
ExecStop=-/usr/lib/systemd/scripts/guest-session-homedir.sh delete %i
[Install]
WantedBy=user@%i.service

View file

@ -1,10 +0,0 @@
[Unit]
Description=Create guest-user (%i) and activate volatile $HOME for it
[Service]
RemainAfterExit=true
ExecStart=/usr/lib/systemd/scripts/guest-session.sh create "%I"
ExecStop=/usr/lib/systemd/scripts/guest-session.sh delete "%I"
[Install]
WantedBy=multi-user.target