Z jakiegoś powodu, mamy nie muszą już być root (lub używając sudo
), aby uruchomić /sbin/shutdown
, /sbin/reboot
etc.
Wydaje się, że dzieje się tak, ponieważ te pliki wykonywalne są teraz dowiązaniami symbolicznymi, z /bin/systemctl
którymi obsługuje wszystko jak zwykły użytkownik.
Co jednak, jeśli chcę shutdown
i reboot
ponownie wymagać uwierzytelnienia roota? Jak mogę to osiągnąć?
pkaction | grep login1
dla innych zasad zainteresowania)sudo visudo
i sprawdzając, czy jest linia ze ścieżką do tych plików wykonywalnych.Odpowiedzi:
Systemd rzeczywiście obsłużyć
shutdown
,reboot
i inne polecenia, a przywileje przypisane domyślne są liberalne. Aby to zmienić, musisz utworzyć regułę Polkit. Utwórz.pkla
plik w/etc/polkit-1/localauthority/50-local.d
(powiedzmyconfirm-shutdown.pkla
) zawierający:Różne wyłączenie, restart, itp polecenia są pod względem polkit działania w
org.freedesktop.login1
, na przykładorg.freedesktop.login1.power-off
,org.freedesktop.login1.reboot
itd Specyficzny problemem jest domyślna konfiguracja, która jest w/usr/share/polkit-1/actions/org.freedesktop.login1.policy
:Pamiętaj, że pozwala to aktywnemu użytkownikowi na wyłączenie, ponowne uruchomienie itp.
źródło
Możesz użyć
chmod
polecenia.Jeśli chcesz dać dostęp tylko do roota, możesz napisać:
Jeśli chcesz zezwolić rootowi i grupie sudo, możesz napisać:
Jeśli chcesz zmienić grupę plików z sudo na inną (jak użytkownik lub administratorzy), musisz wpisać:
Jeśli chcesz cofnąć, uruchom:
Uwaga : może być konieczne użycie
sudo
tej komendy lub zalogowanie się na konto rootźródło
/bin/systemctl
), więc uruchomienie chmod / sbin / shutdown wpłynie na wszystkie linki wskazujące,/bin/systemctl
że uprawnienia dobin/systemctl
zostaną zmienione, co potwierdza polecenie $ll /bin/systemct
l -rwx ------ 1 root root 659848 18 stycznia 16:04 / bin / systemctl *-rwxr-xr-x 1 root root 659848 Jan 18 16:04 /bin/systemctl
Ponieważ zmiana uprawnień do dowiązania symbolicznego w systemie Linux nie zmienia uprawnień do dowiązania, ale zamiast tego wskazuje plik (przynajmniej w Ubuntu). Myślę, że najbezpieczniejszym sposobem na to byłoby usunięcie linku i odtworzenie go z wymaganym umask, aby uzyskać pożądany wynik.
Kolejny powiązany post można znaleźć tutaj
źródło
Możesz utworzyć skrypt sprawdzający, czy użytkownik uruchamia go z uprawnieniami administratora, czy nie.
Następnie uruchomi polecenie systemctl lub zwróci błąd.
Źródło
źródło
Spróbuj zmienić swoje uprawnienia w terminalu. Możesz sprawić, by był wykonywalny tylko przez określoną grupę, taką jak koło lub administrator. Niestety (a może na szczęście) plik może mieć tylko jedną własność grupy, więc chown po prostu nie działałby sam. Spróbuj „sudo chown root: wheel / sbin / shutdown”, a następnie „sudo chmod g + x / sbin / shutdown”. Spowoduje to, że plik będzie wykonywalny tylko przez roota i administratorów (wzdrygnie się), a sudoers będą musieli wprowadzić swoje hasła.
źródło