Wie kann ich mein Skript so einrichten, dass der Bildschirm als Nicht-Root gestartet wird?

Wie kann ich mein Skript so einrichten, dass der Bildschirm als Nicht-Root gestartet wird?

Ich verwende Minecraft und starte es automatisch von /etc/rc.local. Ich habe das ausgeführt /home/kent-server/mc/spigot.shund darin befindet sich screen -dms minecraft Java -jar -Xmx5120M -Xms5120M spigot.jar.

Der Code selbst erledigt seine Aufgabe, startet den Bildschirm jedoch S-rootnicht S-kent-server. Das ist problematisch, da beim Anmelden mit meinem normalen Benutzer keine laufenden Bildschirme angezeigt werden. Wenn ich jedoch mit dem suBefehl zu Root wechsle, werden sie problemlos angezeigt.

Antwort1

Wie vorgeschlagen vonDrav SloanSie können suFolgendes verwenden:

su -l kent-server -c 'cd /home/kent-server/mc/ && screen -d -m -S Minecraft Java -jar -Xmx5120M -Xms5120M spigot.jar'

Ein ähnliches Ergebnis kann auch mit den sudofolgenden Methoden erreicht werden:

sudo -u kent-server /home/kent-server/mc/spigot.sh

verwandte Informationen