First commit

This commit is contained in:
2026-01-14 01:48:38 +01:00
commit da6877af61
3 changed files with 68 additions and 0 deletions

3
lightdm_add.conf Normal file
View File

@@ -0,0 +1,3 @@
[Seat:*]
session-setup-script=/usr/local/sbin/prepare-guest-home.sh
session-cleanup-script=/usr/local/sbin/prepare-guest-home.sh

31
notice.py Executable file
View File

@@ -0,0 +1,31 @@
#!/usr/bin/env python3
# To put in home directory autoexec
import sys
from PyQt5.QtWidgets import QApplication, QMessageBox
from PyQt5.QtCore import Qt
# Create a Qt application
app = QApplication(sys.argv)
# Create a message box
msg = QMessageBox()
msg.setIcon(QMessageBox.Information)
msg.setWindowTitle("Welcome into the guest account!")
msg.setText("Welcome!\nThis is an ephemeral session.\n\nAll the changes made will be reverted at logout.\nPlease save your work elsewhere.\n\nFor more information, contact the administrator.")
msg.setStandardButtons(QMessageBox.Ok)
# Set the window flags to remove all buttons (minimize, maximize, close)
msg.setWindowFlags(Qt.Dialog | Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint)
# Disable resizing by setting a fixed size
msg.setFixedSize(400, 200)
# Make the window modal (optional, to block interaction with other windows)
msg.setWindowModality(Qt.ApplicationModal)
# Show the message box in the center of the screen
msg.exec_()

34
prepare-guest-home.sh Normal file
View File

@@ -0,0 +1,34 @@
set -euo pipefail
if [ "$USER" != "guest" ]; then
exit 0
fi
GUEST_HOME="/home/guest"
SKELETON="/home/guest-freeze"
# Validate guest home directory: check if it's a symlink
if [ -L "$GUEST_HOME" ]; then
echo "Home directory is a symlink. Removing it and restoring as a directory."
rm -f "$GUEST_HOME" # Remove the symlink
# Recreate the home directory as a proper directory
mkdir -p "$GUEST_HOME"
fi
# Validate guest home directory exists and is not a symlink
if [ ! -d "$GUEST_HOME" ]; then
echo "Unsafe guest home or home directory creation failed."
exit 1
fi
# Remove contents safely (if any) while ignoring "file not found" errors
find "$GUEST_HOME" -mindepth 1 -xdev -exec rm -rf -- {} + 2>/dev/null || true
# Restore skeleton safely
rsync -a --safe-links --no-devices --no-specials \
"$SKELETON"/ "$GUEST_HOME"/
# Fix ownership and permissions
chown -R guest:guest "$GUEST_HOME"
chmod 700 "$GUEST_HOME"