Jak używać Run0 w systemie Linux
Run0 to nowy i innowacyjny program eskalacji uprawnień dla dystrybucji Linuksa opartych na Systemd. Zapewnia lekką i „bezkonfiguracyjną” alternatywę dla tradycyjnych aplikacji eskalacji, takich jak sudo i doas. Tutaj pokazujemy podstawy korzystania z Run0 do eskalacji poleceń dla systemu Linux.
Zanim to zrobisz, możesz dowiedzieć się, czym jest Run0 i czym różni się od sudo.
Jak uruchamiać programy jako inny użytkownik
Jednym z najczęstszych zastosowań aplikacji eskalacji uprawnień jest uruchamianie poleceń jako użytkownik root. W tym względzie stuknięcie użytkownika root w Run0 wymaga dodania run0 przed poleceniem, które chcesz uruchomić. Na przykład poniższe tworzy nowy folder w katalogu, do którego dostęp ma tylko użytkownik root:
Spowoduje to wyświetlenie monitu CLI o podanie hasła lub małego okna GUI z prośbą o podanie hasła bieżącego użytkownika.
Podobnie jak sudo i doas, Run0 może również przełączyć się na użytkownika innego niż root podczas uruchamiania poleceń. Aby to zrobić, dodaj flagę, --user
a następnie nazwę użytkownika, jako którego chcesz uruchomić polecenie:
Podaj hasło użytkownika, na którego chcesz się przełączyć, a następnie naciśnij Enter.
Jak przełączyć się na powłokę innego użytkownika
Inną kluczową częścią aplikacji eskalacji uprawnień jest jej zdolność do przeniesienia użytkownika do powłoki roota. Daje to możliwość interakcji z systemem jako użytkownik root i uruchamiania bardziej złożonych poleceń z CLI.
W Run0 możesz to zrobić, uruchamiając program bez żadnych dodatkowych argumentów.
Podobnie jak w przypadku uruchamiania programów jako root, możliwe jest także użycie Run0 z --user
flagą, aby rozpocząć sesję powłoki jako określony użytkownik:
Ponadto run0 pozwala tworzyć sesje powłoki z tymczasowymi uprawnieniami grupowymi dla użytkowników innych niż root. Jest to przydatne, jeśli chcesz uzyskać dostęp do folderów zablokowanych dla określonego użytkownika i grupy bez przechodzenia do roota.
Na przykład poniższe polecenie przyznaje użytkownikowi „alice” tymczasowy dostęp do grupy „www-data”:
Można również użyć tej --chdir
flagi, aby wymusić zmianę katalogu podczas przechodzenia do nowej sesji powłoki:
Jak dostosować bieżącą sesję Run0
Największą zaletą Run0 jest to, że nie używa setuid (SUID) do obsługi działań superużytkownika. Zamiast tego polega na systemd-run, który tworzy izolowane pseudo-TTY do uruchamiania poleceń jako root.
Jedną z konsekwencji tego podejścia jest to, że Systemd traktuje każdą powłokę Run0 jako odrębną jednostkę działającą pod menedżerem usług. Pozwala to dostosować proces powłoki roota, w przeciwieństwie do tradycyjnych aplikacji eskalacji uprawnień.
Aby dodać etykietę dla powłoki głównej, użyj flagi, --unit
a następnie nazwy, której chcesz użyć:
Możesz również dodać niestandardowy opis do powłoki głównej, dodając flagę --description
:
Sprawdź, czy poprawnie zastosowałeś swoje dane, wpisując niestandardową nazwę powłoki głównej za pomocą systemctl
:
Domyślnie Run0 zmienia kolor tła powłoki root na czerwony. Chociaż jest to pomocny wskaźnik wizualny, może rozpraszać, jeśli używasz jasnego motywu w systemie.
Aby to zmienić, należy użyć --background
flagi, a następnie wartości z przedziału 40-49:
Na koniec możesz również dostosować „poziom niceness” powłoki roota. Jest to wartość między -20 a 19, która określa, czy jądro będzie priorytetyzować Twój proces nad innymi.
Aby nadać powłoce głównej najwyższy priorytet, użyj --nice
flagi z wartością „-20”:
Jak grupować sesje Run0
Oprócz możliwości dostosowania każdej powłoki głównej Linux, możesz również użyć Run0, aby zgrupować je w wycinku Systemd. Jest to specjalna konstrukcja, która pozwala Twojej maszynie dostosować zapotrzebowanie na zasoby dla procesów bez wpływu na resztę systemu.
Aby utworzyć powłokę główną na innym wycinku, uruchom flagę, --slice
a następnie nazwę wycinka, do którego chcesz się przenieść:
Potwierdź, że nowa sesja jest uruchamiana w ramach nowego wycinka, wypisując procesy w nim zawarte:
Możesz również użyć --slice-inherit
flagi, aby zgrupować swój nowy fragment wraz z fragmentem, z którego pochodzi Run0. Jest to przydatne, jeśli już zgrupowałeś swoje powłoki do odpowiednich fragmentów i chcesz po prostu dodać nową powłokę:
Jak uruchamiać polecenia w kontenerach Systemd za pomocą Run0
Systemd-nspawn to specjalny program, który może tworzyć i zarządzać lekkimi kontenerami Linux podobnymi do Dockera. Będąc częścią pakietu Systemd, możesz również używać Run0 do wykonywania poleceń w kontenerach nspawn z komputera hosta.
Zacznij od wypisania dostępnych kontenerów Systemd-nspawn w swoim systemie:
Uruchom następujące polecenie, aby utworzyć folder w katalogu głównym kontenera:
Można również przejść do powłoki głównej kontenera za pomocą Run0:
Potwierdź, że teraz działasz w kontenerze, drukując nazwę hosta sesji terminala:
Nauka korzystania z Run0 do uruchamiania i zarządzania poleceniami root w systemie Linux to tylko wierzchołek góry lodowej, jeśli chodzi o aplikacje eskalacji uprawnień. Zanurz się głęboko w złożonym świecie, przyglądając się różnicom między su, sudo i sudo -s.
Źródło obrazu: Xavier Cee przez Unsplash . Wszystkie zmiany i zrzuty ekranu autorstwa Ramces Red.
Dodaj komentarz