instaluj sudo
- 1318
- 302
- Maria Piwowarczyk
Co jeśli chcesz, aby jeden użytkownik uruchomił polecenie jako użytkownik innego systemu bez wymiany haseł. Na przykład możesz chcieć, aby użytkownik John uruchomił skrypt Znajdź polecenie lub niestandardowy skrypt powłoki Bash jako użytkownik Greg lub nawet jako root użytkownika (superuser) bez wymiany haseł. W takim przypadku narzędzie Sudo z plik konfiguracyjnym ITC /ETC /Sudoers będzie Twoim przyjacielem. To narzędzie jest bardzo szeroko stosowane, ale jednocześnie bardzo mało zrozumiane przez użytkowników Linuksa na wszystkich poziomach.
W tym krótkim artykule opisano podstawowe użycie sudo i format pliku konfiguracyjnego Sudoers.
instaluj sudo
Najpierw musimy upewnić się, że sudo i /etc /sudoers jest dostępny plik konfiguracyjny sudo. Zrobić to bieg:
$ które sudo
Lub
$ sudo -v
Pierwsze polecenie powinno ujawnić lokalizację pliku wykonywalnego sudo, a drugi program wyprowadzi numer wersji sudo. Plik konfiguracyjny Sudo Sudoers znajduje się w większości przypadków w /etc /sudoers. Możesz użyć polecenia LS, aby zlokalizować ten plik.
$ ls -l /etc /sudoers -r-r ---- 1 root root 481 2010-04-08 21:43 /etc /sudoers
Zwróć uwagę na domyślne i „musi być” uprawnienia pliku A /ETC /Sudoers. Tylko root użytkownika i użytkownicy, którzy należą do grupy root, mogą odczytać ten plik.
$ cat /etc /sudoers cat: /etc /sudoers: odmowa odmowa
Jeśli miałeś pewne problemy podczas wykonywania powyższych poleceń, szanse na to, że Sudo nie jest zainstalowane w twoim systemie. Jest to bardzo mało prawdopodobne, jeśli prowadzisz Ubuntu, Fedora lub OpenSuse, ponieważ narzędzie sudo jest domyślnie zainstalowane w twoim systemie. Jeśli uruchamiasz Debian wykonać następujące polecenie Linux, aby zainstalować narzędzie Sudo:
NOTATKA: Jest bardzo mało prawdopodobne, aby narzędzie Sudo nie było instalowane w twoim systemie, ponieważ większość przyzwoitych dystrybucji Linux ma domyślnie zainstalowanie narzędzia Sudo.
# apt-get install sudo
W przypadku dystrybucji Yum (RPM) użyj tego polecenia do instalacji Sudo:
# mniam instaluj sudo
Wykonanie skryptu Bash za pomocą sudo
Utwórzmy prosty skrypt bash, który zapewni nam podstawowe środowisko testowe dla polecenia Sudo. Poniższe polecenia Linux utworzą skrypt bash o nazwie sudo_test.SH w katalogu/usr/lokalnym/bin i uczyń go wykonywaniem:
$ su - hasło: # cd/usr/local/bin/ # echo "ps aux | grep $$"> sudo_test.sh # echo "touch /tmp /sudo_file.tmp ">> sudo_test.sh # chmod +x sudo_test.cii
Ten skrypt nic nie zrobi, oprócz tego, że wydrukuje identyfikator procesu sudo_test.Skrypt Bash SH wraz z odpowiednim identyfikatorem właściciela jako wyjście StDout, a jednocześnie utworzy plik o nazwie sudo_file.TMP wewnątrz / TMP / Directory. Teraz wykonujemy ten skrypt jako użytkownik root i sprawdzamy właściciela tego procesu.
./sudo_test.sh [1] 3513/usr/local/bin# ps aux | GREP 3513 Root 3513 0.0 0.1 4260 908 PTS/4 S 16:32 0:00 Bash Root 3516 0.0 0.0 1700 268 PTS/4 R+ 16:32 0:00 GREP 3513
Jak widać identyfikator procesu 3513 jest własnością korzenia użytkownika. Ponadto, wykonując polecenie LS, możemy zaobserwować, że plik /tmp /sudo_file.TMP jest własnością użytkownika root.
# ls -l /tmp /sudo_file.TMP -RW-R-R-- 1 root 0 2010-08-29 17:31 /tmp /sudo_file.TMP
Usuńmy /tmp /sudo_file.plik TMP i spróbuj wykonać ten sam skrypt z innym użytkownikiem o imieniu „Lilo”. Zwróć uwagę na uprawnienia skryptu po wykonaniu polecenia LS -L.
$ whoami lilo $ ls -l/usr/local/bin/sudo_test.SH-RWXR-XR-X 1 root root 44 2010-08-29 17:31/usr/local/bin/sudo_test.sh $/usr/local/bin/sudo_test.SH Root 3502 0.0 0.3 4260 1744 PTS/4 S+ 16:31 0:00 Bash Lilo 3773 0.0 0.1 3116 720 pkt/5 R+ 17:36 0:00 GREP 3502 $ LS -L/TMP/SUDO_FILE.TMP -RW-R-R-- 1 lilo lilo 0 2010-08-29 17:36 /tmp /sudo_file.TMP
Jak widać, skrypt jest wykonywany przez użytkownika Lilo, a właścicielem tego procesu jest również użytkownik Lilo. Plik utworzony w katalogu /tmp /katalogu jest również własnością użytkownika LILO. Zanim będziesz kontynuować, usuń /tmp /sudo_file.plik TMP.
Daj użytkownikowi uprawnienia sudo
Naszym kolejnym zadaniem jest teraz uczynić użytkownika Lilo do wykonania/usr/lokal/bin/sudo_test.Skrypt SH z przywilejami korzeniowymi i bez rozdawania poświadczeń korzeniowych. Aby to zrobić, musimy edytować A /etc /sudoers plik konfiguracyjny sudo. Ponieważ root odczytał tylko dostęp do pliku konfiguracyjnego Sudo /etc /sudoers i nie chcemy tego zmieniać, użyjemy polecenia Visudo wykonanego jako korzenia, aby dodać następujący wiersz do tego pliku:
lilo all = (root)/usr/local/bin/sudo_test.cii
- LILO: Użytkownik, który będzie miał zgodę na wykonanie/usr/local/bin/sudo_test.Skrypt SH
- Wszystko: dopasowuje wszystko iw tym kontekście, dotyczy to nazwy hosta
- (root): To polecenie zostanie uruchomione z uprawnieniami root
- /usr/local/bin/sudo_test.SH: Rzeczywiste polecenie
W rezultacie, kiedy próbujemy teraz wykonać/usr/lokal/bin/sudo_test.Skrypt SH jako użytkownik Lilo za pomocą polecenia Sudo i wprowadź hasło Lilo:
$ rm /tmp /sudo_file.tmp $ sudo/usr/local/bin/sudo_test.SH [sudo] Hasło dla Lilo: root 3502 0.0 0.3 4260 1744 PTS/4 S 16:31 0:00 Bash Root 3793 0.0 0.1 3116 720 pkt/5 S+ 17:46 0:00 GREP 3502 $ LS -L/TMP/SUDO_FILE.TMP -RW-R-R-- 1 root 0 2010-08-29 17:46 /tmp /sudo_file.TMP
Process ID 3502 jest własnością korzenia i właściciela /tmp /sudo_file.TMP jest użytkownikiem głównym. Ponadto, jeśli na przykład chcesz, aby użytkownik Lilo wykonał skrypt/usr/local/bin/sudo_test.SH jako użytkownik j ”joh” po prostu alter /etc /sudoers plik konfiguracyjny i zamień (root) na (John) za pomocą polecenia Visudo.
sudo bez hasła
Po wykonaniu polecenia Sudo użytkownik jest poproszony o hasło. Ten domyślny bahaviouv polecenia sudo można zmienić poprzez edytowanie plik konfiguracji /etc /sudoers. Jeśli nie chcemy być proszeni o hasło, zmienimy plik A /ETC /Sudoers, zmieniając linię:
lilo all = (root)/usr/local/bin/sudo_test.cii
z
lilo all = (root) nopasswd:/usr/local/bin/sudo_test.cii
Limit czasu hasła sudo
Liczba minut przed Sudo poprosi użytkownika o ponowne wprowadzenie hasła, wynosi domyślnie 15. Takie zachowanie można zmienić, określając dyrektywę SUDO MimeStamp_Timeout w pliku /etc /sudoers. Aby zwiększyć limit czasu hasła sudo do 60 minut, dodajemy dyrektywę mimestampa_timeout do pliku /etc /sudoers, zmieniając linię:
Domyślnie Env_Reset
Do
Domyślnie Env_Reset, Timestamp_timeout = 60
Dowiedz się więcej o Sudo
Zauważ, że można się dowiedzieć o dowództwie Sudo i jego możliwościach. Dobrym sposobem na znalezienie więcej o poleceniu Sudo jest rozpoczęcie:
Man Sudo
lub aby uzyskać dostęp do strony Man dla pliku konfiguracyjnego Sudoers
Man Sudoers
Powiązane samouczki Linux:
- Jak usunąć bluatware z Samsung Android Mobile…
- Obsługa danych wejściowych użytkownika w skryptach Bash
- Jak złamać hasło zip na Kali Linux
- Jak utworzyć konto modyfikowania i usuwania użytkowników w systemie Linux
- Rzeczy do zainstalowania na Ubuntu 20.04
- Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
- Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
- Linux - Resetuj wygaśnięcie hasła, wiek i historia
- Big Data Manipulacja dla zabawy i zysku Część 1
- Mastering Bash Script Loops
- « Zainstaluj i zagraj w Overwatch z Lutris na Ubuntu 18.04
- Jak zainstalować ImageMagick 7 na Ubuntu 18.04 Linux »