Podstawowa konfiguracja
Fedora, podobnie jak inne dystrybucje Linuksa posiada uprzywilejowanego użytkownika „root” oraz zwykłych użytkowników. „root” jest „superużytkownikiem”, czymś w rodzaju Administratora w Windows.
Do codziennej pracy należy używać zwykłego konta utworzonego w trakcie pierwszego po instalacji uruchomienia systemu. Uprawnienia roota potrzebne są tylko do wykonywania czynności administratorskich i instalacyjnych.
Uprawnienia roota można uzyskać na dwa sposoby:
– sposób opisany w artykule konto roota (polecenie su)
– polecenie sudo
Polecenie sudo wymaga jednak odpowiedniego przygotowania.
Najprostsza konfiguracja: po zalogowaniu się na konto roota należy wykonać polecenie:
echo 'loginname ALL=(ALL) ALL' >> /etc/sudoers
gdzie „loginname” to nazwa zwykłego użytkownika.
Plik /etc/sudoers można edytować bezpośrednio jednak aby uniknąć błędnych wpisów należy wykorzystywać do tego celu polecenie visudo. Polecenie to przy wychodzeniu z zapisem z trybu edycji sprawdza poprawność składni w pliku.
Wskazówka. Polecenie visudo otwiera plik w edytorze vi, raczej nieprzyjaznym dla początkujących. Warto więc wcześniej poznać podstawy tego edytora. Można także ustawić inny edytor np. bardziej przyjazne konsolowe edytory nano lub mcedit. W tym celu trzeba ustawić zmienną EDITOR np. export EDITOR=nano
Teraz można już wykonać polecenia administracyjne z konta zwykłego użytkownika wykorzystując składnię sudo
. Przed wykonaniem polecenia użytkownik zostanie zapytany o hasło. Należy podać hasło użytkownika nie roota.
Wskazówka. Po podaniu hasła jest ono pamiętane przez 5 minut i nie trzeba go w tym czasie podawać przy wykonywaniu następnych poleceń sudo. Czas przez jaki pamiętane jest hasło możemy zmienić w pliku /etc/sudoers
Licznik czasu możemy wyzerować zyskując kolejne 5 minut wydając polecenie:
sudo -v
Możemy także nakazać natychmiastowe „zapomnienie” hasła:
sudo -k
Można również wykonać polecenie sudo z uprawnieniami roota bez podawania hasła.
Uwaga! Należy zaznaczyć, że nadanie uprawnień do wykonania polecenia sudo bez podania hasła jest szczególnie groźne z punktu widzenia bezpieczeństwa systemu.
Jeżeli mimo wszystko zdecydujemy się na takie rozwiązanie, należy jako root wykonać polecenie:
echo 'loginname ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
Konfiguracja zaawansowana
Najczęściej wpis w /etc/sudoers nadający uprawnienia użytkownikom/grupom ma postać:
loginname system = polecenie1 [, polecenie2, ... polecenieN]
lub
%groupname system = polecenie [, polecenie2, ... polecenieN]
loginname – to nazwa użytkownika występująca w systemie. Uprawnienia można nadać od razu większej ilości użytkowników przypisując ich do określonej grupy. Nazwę grupy w /etc/sudoers poprzedzamy znakiem „%”.
system – nazwa systemu, z którego powinien być zalogowany użytkownik lub grupa, aby móc wykonać polecenie. W warunkach domowych, na typowym desktopie możemy podać w tym miejscu „localhost” lub użyć predefiniowanego aliasu „ALL”. Użycie „ALL” zezwoli na wykonywanie polecenia również użytkownikom/grupom zalogowanym zdalnie.
polecenie – polecenie systemowe z pełną ścieżką lub alias „ALL”. „ALL” oznacza w tym przypadku zezwolenie na wykonywanie wszystkich poleceń.
Dodatkowo możemy przed poleceniem użyć opcji PASSWD lub NOPASSWD.
– Opcja NOPASSWD oznacza, że użytkownik/grupa może wykonać polecenie bez podawania hasła.
– Opcja PASSWD jest domyślna, więc nie zazwyczaj nie ma potrzeby jawnego jej używania, chyba że wcześniej użyto opcji NOPASSWD.
Przykłady:
Poniższy wpis umożliwia wszystkim członkom grupy „users” zalogowanym lokalnie na wykonanie polecenia shutdown (tutaj natychmiastowe zamknięcie systemu) bez podawania hasła
%users localhost=NOPASSWD:/sbin/shutdown -h now
Kolejny wpis nadaje użytkownikowi „franek” zalogowanemu lokalnie na bezzwłoczne wyłączenie systemu bez podawania hasła oraz na wykonywanie polecenia fdisk po podaniu hasła.
franek localhost=NOPASSWD:/sbin/shutdown -h now, PASSWD: /usr/bin/fdisk
Napisz komentarz