Android

Polecenie Sudo w systemie Linux

LinuxAdministrator - sudo #010 #LinuxAdministrator #bash #linux

LinuxAdministrator - sudo #010 #LinuxAdministrator #bash #linux

Spisu treści:

Anonim

Polecenie sudo pozwala uruchamiać programy jako inny użytkownik, domyślnie jako użytkownik root. Jeśli spędzasz dużo czasu w wierszu poleceń, sudo jest jednym z poleceń, którego będziesz używać dość często.

Używanie sudo zamiast logowania jako root jest bezpieczniejsze, ponieważ możesz przyznać ograniczone uprawnienia administracyjne poszczególnym użytkownikom bez znajomości hasła roota.

W tym samouczku wyjaśnimy, jak używać polecenia sudo .

Instalowanie Sudo (nie znaleziono polecenia sudo)

Pakiet sudo jest wstępnie zainstalowany w większości dystrybucji Linuksa.

Aby sprawdzić, czy pakiet sudo jest zainstalowany w systemie, otwórz konsolę, wpisz sudo i naciśnij klawisz Enter . Jeśli masz zainstalowane sudo, system wyświetli krótki komunikat pomocy, w przeciwnym razie zobaczysz coś takiego jak sudo command not found .

Jeśli sudo nie jest zainstalowane, możesz łatwo zainstalować je za pomocą menedżera pakietów swojej dystrybucji.

Zainstaluj Sudo na Ubuntu i Debianie

apt install sudo

Zainstaluj Sudo na CentOS i Fedorze

yum install sudo

Dodawanie użytkownika do sudoers

Domyślnie w większości dystrybucji Linuksa udzielenie dostępu do sudo jest tak proste, jak dodanie użytkownika do grupy sudo zdefiniowanej w pliku sudoers . Członkowie tej grupy będą mogli uruchomić dowolne polecenie jako root. Nazwa grupy może różnić się w zależności od dystrybucji.

W dystrybucjach opartych na RedHat, takich jak CentOS i Fedora, nazwa grupy sudo to wheel . Aby dodać użytkownika do uruchomienia grupy:

usermod -aG wheel username

W przypadku Debiana, Ubuntu i ich pochodnych członkowie grupy sudo mają dostęp do sudo:

usermod -aG sudo username

Konto użytkownika root w Ubuntu jest domyślnie wyłączone ze względów bezpieczeństwa i użytkownicy są zachęcani do wykonywania zadań administracyjnych systemu za pomocą sudo. Początkowy użytkownik utworzony przez instalator Ubuntu jest już członkiem grupy sudo, więc jeśli korzystasz z Ubuntu, istnieje prawdopodobieństwo, że użytkownik jest zalogowany, ponieważ ma już uprawnienia sudo.

Na przykład, aby zezwolić użytkownikowi linuxize na uruchamianie tylko polecenia mkdir jako sudo, wpisz:

sudo visudo

i dodaj następujący wiersz:

linuxize ALL=/bin/mkdir

W większości systemów polecenie visudo otwiera /etc/sudoers za pomocą edytora tekstu vim. Jeśli nie masz doświadczenia z vimem, przeczytaj nasz artykuł o tym, jak zapisać plik i zamknąć edytor vim.

Możesz także zezwolić użytkownikom na uruchamianie poleceń sudo bez podawania hasła:

linuxize ALL=(ALL) NOPASSWD: ALL

Jak korzystać z Sudo

Składnia polecenia sudo jest następująca:

sudo OPTION.. COMMAND

Polecenie sudo ma wiele opcji kontrolujących jego zachowanie, ale zwykle sudo jest używane w najbardziej podstawowej formie, bez żadnej opcji.

Aby użyć sudo, po prostu poprzedź polecenie sudo :

sudo command

Gdzie command to polecenie, do którego chcesz użyć sudo.

Sudo przeczyta /etc/sudoers i sprawdzi, czy inwokujący użytkownik uzyskał ocenę sudo. Przy pierwszym użyciu sudo w sesji pojawi się monit o podanie hasła użytkownika, a polecenie zostanie wykonane jako root.

Na przykład, aby wyświetlić listę wszystkich plików w /root chcesz użyć:

sudo ls /root

password for linuxize:….bashrc.cache.config.local.profile

Limit czasu hasła

Domyślnie sudo poprosi o ponowne wprowadzenie hasła po pięciu minutach bezczynności sudo. Możesz zmienić domyślny limit czasu, edytując plik sudoers . Otwórz plik za pomocą visudo :

sudo visudo

Ustaw domyślny limit czasu, dodając poniższy wiersz, gdzie 10 to limit czasu określony w minutach:

Defaults timestamp_timeout=10

Defaults:user_name timestamp_timeout=10

Uruchom polecenie jako użytkownik inny niż root

Istnieje błędne przekonanie, że sudo jest używane tylko w celu zapewnienia uprawnień roota zwykłemu użytkownikowi. W rzeczywistości możesz użyć sudo aby uruchomić polecenie jak każdy użytkownik.

Opcja -u pozwala uruchomić polecenie jako określony użytkownik.

W poniższym przykładzie używamy sudo do uruchomienia komendy whoami jako użytkownik „richard”:

sudo -u richard whoami

Komenda whoami wyświetli nazwę użytkownika uruchamiającego komendę:

richard

Jak przekierować z Sudo

sudo echo "test" > /root/file.txt

bash: /root/file.txt: Permission denied

Dzieje się tak, ponieważ przekierowanie „ > ” wyjścia odbywa się pod zalogowanym użytkownikiem, a nie z użytkownikiem określonym przez sudo. Przekierowanie odbywa się przed wywołaniem polecenia sudo .

Jednym z rozwiązań jest wywołanie nowej powłoki jako root za pomocą sudo sh -c :

sudo sh -c 'echo "test" > /root/file.txt'

Inną opcją jest przesłanie danych wyjściowych jako zwykły użytkownik do komendy tee jak pokazano poniżej:

echo "test" | sudo tee /root/file.txt

Wniosek

Nauczyłeś się, jak korzystać z polecenia sudo i jak tworzyć nowych użytkowników z uprawnieniami sudo.

terminal sudo