Porady Admina: chroot
Ostatnia aktualizacja: 21 listopada 2023, 11:46
W kolejnym wpisie z cyklu Porady Admina zajmiemy się poleceniem chroot.
polecenie chroot w systemie Linux/Unix służy do zmiany katalogu głównego. Każdy proces/polecenie w systemach Linux/Unix ma bieżący katalog roboczy zwany katalogiem głównym. chroot zmienia katalog główny aktualnie uruchomionych procesów, a także procesów potomnych.
Proces/polecenie działające w tak zmodyfikowanym środowisku nie może uzyskać dostępu do plików poza katalogiem głównym. To zmodyfikowane środowisko jest znane jako „więzienie chroot” (jail) lub „katalog z więzieniem”. Niektórzy użytkownicy root i procesy uprzywilejowane mogą używać polecenia chroot.
Polecenie „chroot” może być przydatne:
– aby stworzyć środowisko testowe.
– aby odzyskać system lub hasło.
– aby ponownie zainstalować program ładujący.
Program chroot jest częścią pakietu coreutils.
Składnia
chroot [OPCJA] NOWY_ROOT [POLECENIE [ARGUMENT]...]
albo:
chroot OPCJA
Uruchomienie polecenia w katalogiem root ustawionym na NOWY_ROOT.
Opcje
–groups=LISTA_GRUP : podanie grup dodatkowych w postaci g1,g2,..,gN
–userspec=UŻYTK:GRUPA : podanie UŻYTKOWNIKA i GRUPY (liczbowo lub przez nazwę)
–skip-chdir : bez zmiany bieżącego katalogu na '/’
–help : display this help and exit
–version : output version information and exit
Jeżeli nie jest podane żadne polecenie, uruchamiany jest „”$SHELL” -i” (domyślnie: „/bin/sh -i”).
Przykłady
Stworzenie mini-więzienie z bashem i podstawowymi poleceniami.
Stwórzmy katalog „nowyroot” w katalogu „home”, który będzie naszym nowym rootem.
mkdir $HOME/nowyroot
mkdir -p $HOME/nowyroot/{bin, lib64}
cd $HOME/nowyroot
Skopiuj /bin/bash i /bin/ls do lokalizacji $HOME/nowyroot/bin/ za pomocą polecenia cp:
cp -v /bin/{bash, ls} $HOME/nowyroot/bin
Skopiuj biblioteki do lokalizacji $HOME/nowyroot/lib64/ za pomocą polecenia cp:
cp -v /lib/x86_64-linux-gnu/twoje-biblioteki $HOME/nowyroot/lib64
chrootuj do swojego nowego katalogu root:
sudo chroot $HOME/nowyroot /bin/bash
Więcej informacji o programie chroot uzyskasz poleceniami:
man chroot
sudo chroot --help