|
6 | 6 | # | _ | (_| | (__| < __/ | | |_| |___) | | | __/ (_| | | | | | | |
7 | 7 | # |_| |_|\__,_|\___|_|\_\___|_| \___/|____/ |_|\___|\__,_|_| |_| |_| |
8 | 8 |
|
9 | | -set -euo pipefail |
10 | | - |
11 | | -TARGET_CMD="/usr/bin/cage /usr/share/HackerOS/Scripts/HackerOS-Apps/Hacker-Mode" |
12 | | -TTY="tty3" |
13 | | -SWITCH=false |
14 | | - |
15 | | -# Sprawdź opcję --switch |
16 | | -if [[ "${1:-}" == "--switch" ]]; then |
17 | | - SWITCH=true |
18 | | -fi |
19 | | - |
20 | | -# sprawdź, czy skrypt uruchomiono jako root |
21 | | -if [[ $EUID -ne 0 ]]; then |
22 | | - echo "Ten skrypt musi być uruchomiony jako root (sudo)." >&2 |
23 | | - exit 1 |
24 | | -fi |
25 | | - |
26 | | -# Wykrywanie aktualnego użytkownika |
27 | | -USERNAME=$(whoami) |
28 | | - |
29 | | -# sprawdź, czy TTY istnieje |
30 | | -if [[ ! -e "/dev/${TTY}" ]]; then |
31 | | - echo "/dev/${TTY} nie istnieje. Sprawdź poprawność numeru TTY." >&2 |
32 | | - exit 2 |
33 | | -fi |
34 | | - |
35 | | -# sprawdź, czy polecenie istnieje |
36 | | -if [[ ! -x "${TARGET_CMD%% *}" ]]; then |
37 | | - echo "Nie znaleziono wykonywalnego: ${TARGET_CMD%% *}" >&2 |
38 | | - exit 3 |
39 | | -fi |
40 | | - |
41 | | -echo "Uruchamiam polecenie na /dev/${TTY} jako użytkownik ${USERNAME}..." |
42 | | -echo "Polecenie: $TARGET_CMD" |
43 | | - |
44 | | -# Komenda do uruchomienia: przekierowujemy stdout/stderr do tty3, setsid -> nowa sesja |
45 | | -# używamy openvt aby przypisać proces do VT numer 3 (nie wymuszamy przełączenia) |
46 | | -# su -l uruchamia polecenie w kontekście użytkownika. |
47 | | -openvt -c 3 -- su -l "$USERNAME" -c "exec >/dev/${TTY} 2>&1; exec setsid ${TARGET_CMD}" & |
48 | | - |
49 | | -pid=$! |
50 | | -echo "Proces uruchomiony (PID $pid)." |
51 | | - |
52 | | -if $SWITCH; then |
53 | | - echo "Przełączam aktywne VT na /dev/${TTY}..." |
54 | | - # chvt może zwrócić błąd w kontenerach lub gdy brak uprawnień, trzymamy -e off |
55 | | - if ! chvt 3; then |
56 | | - echo "Uwaga: chvt nie powiodło się. Możliwe, że jesteś w środowisku, gdzie chvt nie jest dostępne." |
57 | | - fi |
58 | | -fi |
59 | | - |
60 | | -echo "Gotowe." |
61 | | -exit 0 |
| 9 | +cage /usr/share/HackerOS/Scripts/HackerOS-Apps/Hacker-Mode |
0 commit comments