Tajniki pliku sudoers
29 stycznia 2008, buber
Jeśli używasz bądź używałeś Ubuntu, z pewnością wiesz, że w tym systemie konto root, czyli odpowiednik administratora ze znanego nam systemu z Redmond, jest domyślnie pozbawione hasła, przez co staje się bezużyteczne. W standardowych instalacjach Ubuntu musisz używać komendy sudo aby wykonywać operacje z prawami roota. Używanie sudo jest dobrym i ułatwiającym pracę sposobem na proste przyznawanie naszemu użytkownikowi praw roota.
Dwie z największych zalet, wynikających z używania sudo, to :
- Restrykcyjne uprawnienia
- Ślad czynności wykonywanych przez użytkownika zapisany w logach systemu
Zanim jednak zaczniemy używać sudo, musimy skonfigurować sobie plik z ustawieniami. Znajduje się on w katalogu /etc/sudoers
UWAGA. Jeżeli nie jesteś pewien, nie edytuj bezpośrednio tego pliku ręcznie, ani za pomocą żadnego edytora!!!
W terminalu wpisz: visudo
Zobaczysz plik wyglądający mniej więcej podobnie:
# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL) ALL
Jak widzicie, jest tu podstawowa linia
root ALL=(ALL) ALL
Zapis ten oznacza, że użytkownik root może wykonywać czynności z każdego terminala, zachowywać się jak każdy użytkownik oraz uruchamiać wszystkie komendy.
A więc pierwsza część to użytkownik, druga to terminal z którego użytkownik może używać sudo, trzecia oznacza którego użytkownika może naśladować, ostatnia wskazuje jakie komendy może wykonywać.
Zobaczmy inne przykłady.
operator ALL= /sbin/poweroff
Oznacza to, że użytkownik operator może wykonać z każdego terminala komendę poweroff i wyłączyć komputer.
Możemy również tworzyć aliasy:
- dla np. użytkowników:
users -> User_Alias - wykonywać komendy jak inni użytkownicy:
Runas_Alias, host -> Host_Alias, komenda -> Cmnd_Alias
Kolejne przykłady:
User_Alias OPERATORS = joe, mike, jude
Runas_Alias OP = root, operator
Host_Alias OFNET = 10.1.2.0/255.255.255.0
Cmnd_Alias PRINTING = /usr/sbin/lpc, /usr/bin/lprm
Jak widzimy, alias OPERATORS zawiera użytkowników JOE, MIKE i JUDE, alias OP zawiera użytkowników ROOT i OPERATOR, alias OFNET zawiera sieć adresów, z których można używać sudo. Alias komendy PRINTING zawiera polecenia lpc i lprm służące do drukowania.
A więc typowy plik sudoers wygląda tak:
User_Alias OPERATORS = joe, mike, jude
Runas_Alias OP = root, operator
Host_Alias OFNET = 10.1.2.0/255.255.255.0
Cmnd_Alias PRINTING = /usr/sbin/lpc, /usr/bin/lprm
# użytkownicy grupy OPERATORS mogą wykonywać każde polecenie z każdego
terminala
OPERATORS ALL=ALL
# użytkownik linus może wykonywać każde polecenie z każdego terminala
jako każdy użytkownik z grupy OP ( root bądź operator )
linus ALL=(OP) ALL
# użytkownik user2 może uruchamiać każde polecenie z każdej maszyny
w sieci OFNET jako każdy użytkownik
user2 OFNET=(ALL) ALL
# użytkownik user3 może uruchamiać polecenia lpc i lprm z każdej maszyny
user3 ALL= PRINTING
# użytkownik go2linux może uruchamiać każde polecenie z każdej maszyny
zachowując się jak każdy inny użytkownik
(podobnie jak domyślna konfiguracja w UBUNTU)
go2linux ALL=(ALL) ALL
Ten artykuł to tylko wprowadzenie do podstowych pojęć związanych z sudo. Więcej informacji i pomocy znaleźć możecie w manualu, a także w opublikowanym rok temu na łamach jakilinux.org artykułu Praca z sudo autorstwa largo3.
Tłumaczenie artykułu: Sudoers file, Autor: ggarro, tłumaczył: buber, korekta: oZz
Komentarze (RSS) | Trackback (URI)


Przydatny programik.Używam go w systemach poza Ubuntu,które nie używają go domyślnie (Debian,OpenSuSE,OpenBSD …) i sprawdza się dobrze.
Polecam!
debian uzywa go ‘prawie’ domyslnie /jest mozliwosc ‘wlaczenia’ uzywania sudo podczas instalacji debiana/
Nie kojarzę
. Przy maksymalnie standardowej instalacji z mini-ISO nie spotkałem się z taką opcją (Debian Etch).
Mam openSUSE i korzystam z sudo domyślnie. Więc co mi tu pleciesz za bzdury?
tak, trzeba znac troszke vi, albo glosno
krzyczec… i co chwila czytac man sudoers : )
Nie rozumiem o co chodzi z tym całym Sudo (byłbym wdzięczny, jak by ktoś potrafił mi to wytłumaczyć).
Dwie z największych zalet, wynikających z używania sudo, to :Restrykcyjne uprawnienia
Ślad czynności wykonywanych przez użytkownika zapisany w logach systemu .
Jeśli korzystam z systemu sam (desktop) to widze tylko wady (przed każdym poleceniem sudo…). Wygodniej jest otworzyć terminal, zalogować sie na konto root i zrobic to co jest do zrobienia… Jedyny sens widzę tam, gdzie jest wielu użytkowników i część z nich mogłaby mieć nadane uprawnienia do obsługi sudo, ale na typowym desktopie?
@db: imho wygoda sudo i su jest podobna, w sudo hasło też wpisujesz raz, potem przez zdefiniowany czas system pamięta że masz uprawnienia. Jeśli potrzebujesz wykonać więcej operacji, zawsze możesz wpisać
sudo sui przejść na tradycyjne konto roota.To juz wygodniej chyba ’sudo mc’ …
Raczej ’sudo -i’ - jest krótsze
A nie lepiej sudo -s -H?
“sudo su”
a potem:
“passwd”
i wklepujesz sobie wlasne chaslo roota teraz korzystasz z konta roota jak w kazdej innej dystrybucji.
sudo xterm
Ja w sumie też nie za bardzo widzę sensu korzystania z sudo. Działam na koncie użytkownika, ale zawsze obok mam uruchomioną konsolę z prawami roota (su -) do czynności administracyjnych. Mniejsza komplikacja, efekt bardzo zbliżony. No ale dobrze, ze jest wybór. Jeden woli używać jednego rozwiązania, inny drugiego.
A użytkownik, o ile nie jest to użytkownik domowy, powinien mieć uprawnienia jak najmniejsze, najlepiej żadne, by nie truł życia adminowi
Sudo jest fajne, ale w mojej opini źle skonfigurowane stanowi ogromne zagrożenie dla systemu. Typowa konfiguracja użytkowników ubuntu tak żeby było wygodniej pocszątkującym (bez urazy):
user ALL=(ALL) ALLNOPASSWD:
teraz wystarczy wykorzystać tego typu lukę:
http://www.slackware.pl/artykul/2007/11/12/w_strachu_przed_pdf_ami_ssa_2007_316_01
i wykonac proste polecenie rm -rf /
Tak łatwo to nawet w win nie jest. Używac sudo - tak ale z głową, do tego czego potrzebujemy (wyłączanie kompa, montowanie napędów itd) ale nie do administracji systemem.
Domyślnie jest bez NOPASSWD, za to system “trzyma” hasło przez ok. kwadrans. W Debianie sprawa wygląda dużo lepiej (kiedy nie podajemy hasła wyskakuje informacja o tym, że jakiś program używa większych uprawnień, coś jak UAC), ale najwygodniejsze to to nie jest. Tak jak jest w Ubuntu domyślnie taki jest chyba najlepszy kompromis między bezpieczeństwem, a wygodą
Na 7.10 Server, musialem wpisac ’sudo visudo’
ech, dziwne. że plik konfiguracyjny tego programu można edytować tylko jako root
;) a właśnie wspominałem wcześniej o ubuntu…
Huh? Gdyby mógł go edytować każdy user, mógłby sobie nadać uprawnienia roota i wpisać “rm -rf /”, lub też inny syf zainstalować (patrz 2 komcie wyżej).
Jednym słowem bezpieczeństwo użycia sudo w wykonaniu ubuntu o kant d*** można potłuc. Ciekawe ilu teraz się ze mną nie zgodzi
W domyślnej konfiguracji Ubuntu musisz podawać swoje hasło przed wykonaniem polecenia sudo. Tylko w wersji LiveCD hasło nie jest wymagane. A więc o kant d*** to swoje informacje możesz potłuc.
ale jak chcesz puścić fsck po awari i się standardowo ext wysypie to bez znajomości hasła roota to całe sudo można sobie o kant d*** potłuc
chaslo root’a zmieniamy wg sposobu podanego wyzej
Napisałem banalnego trojanika, który “przesłania” sudo i wykorzystuje tak nabyte prawa do czegokolwiek. I to bez wykorzystywania jakichkolwiek luk. Plik .desktop i zmienna PATH, chyba nie muszę więcej tłumaczyć
Niektórzy i tak Ci nie uwierzą, w końcu Canonical wszędzie wypisuje że sudo jest bezpieczne w ich wydaniu i nie należy korzystać z konta root, nawet można sie natknąć na informację na forach że w ubuntu nie ma konta root. Niestety ten stek bzdur wielu użytkowników łóbóntó łyka niemiłosiernie, tylko czekać aż bomba wybuchnie. Zegar już odlicza.
Jest konto root - co oni - nie zaglądali do Menedżara Użytkowników - czy co?
Zgrybsza to samo można zrobić z su i każdym innym poleceniem, nie? Po prostu żaden, ŻADEN system nie będzie bezpieczny, gdy mamy, za przeproszeniem, użytkownika (a co gorsza admina) idiotę ;).
I to wcale nie jest wina sudo.
Co rozumiesz przez “przesłania sudo”? Po odpaleniu tego trojanika (konkretnie banalnego skryptu) nie trzeba podać hasła administratora? Jeśli ktoś otworzy plik pdf (zakładając, że jakimś cudem spreparowałbyś ten plik tak, aby wykorzystał lukę w xpdf), a xpdf poprosi o hasło to wyda się to każdemu co najmniej dziwne. Jeśli jednak istnieje zagrożenie to powinieneś poinformować choćby Canonical.
Wierz mi, nie masz się czym chwalić. Działasz na szkodę Linuksowi i innym systemom do niego podobnym. Jeśli byłoby inaczej to nie publikowałbyś kodu tego “trojana” na swoim blogu.
ja sie zgadzam.
witam
kilka uwag:
“W standardowych instalacjach Ubuntu musisz używać komendy sudo aby wykonywać operacje z prawami root-a.” - nie do konca tak jest…
mozna skonfigurowac sobie konto roota,
dla KDE:
rozwin menu->System->User and groups-> wybieramy usera ‘root’ i klikamy na ‘properteies’, ustawiamy haslo i od tej pory w konsoli wystarczy zalogowac sie na root’s ?> su
od tej pory mamy wszelkie uprawnienia bez koniecznosci wpisywania kazdorazowo ’sudo’.
co wiecej mozna tak skonfigurowac sudo tak aby nie koniecznym bylo podowanie hasla, lub calkowicie pominiecie wpisywania sudo, nie bede sie rozpisywal gdyz duzo na ten temat mozna znalezc na google.pl
pozdrawiam
Z tego co sam się bawiłem na Ubuntu to zauważyłem, że przynajmniej na ustawieniach standardowych można wpisać sudo su i mamy normalnie uprawnienia admina. Więc po co wtedy sudo, o którym często się zapomina?
@Wirus
spójrz na lukę w xpdf do której link podałem i wyobraź sobie że odpalenie keyloggera przy wykorzystaniu tej luki nie stanowi wielkiego problemu, dwie linijki do .bashrc i uruchamia nam się za każdym razem przy logowaniu…. a jak keylogger przechwyci hasło to: sudo rm -rf / . Do tego wystarczą proste skrypty w….. bash’u.
To najprostsza metoda na początkujacych: mail z załącznikiem a hasło samo leci. Pamiętam jak znajomym wysyłałem prezentacje .ppt żeby mieć ich hasła do poczty i gg. Za hakera jełopy mnie uważali zanim im pokazałem jakie to proste.
bardzo smieszne …
widze ze ktos tu komus zle zyczy …
sudo rm -rf / ? radze nie robic nikomu… a posty tej osoby usunac !!!!!!
No pewnie, bo lepiej ukrywać problem niż o nim mówić. Niektórych chyba boli to, że przy mało myślącym użytkoniku linuks/uniks wcale nie jest bezpieczniejszy od windows. Wogóle nie dopuszczają myśli, żę wraz ze wzrostem popularności systemu konie trojańskie i wirusy zaczną powstawać. Chyba lepiej zabezpieczyć się za wczasu i nauczyc czegoś więcej. No chyba że negujecie możliwość wykorzystania luk podobnych do tych w xpdf do ataku na konto użytkonika i przechwycenia jego hasła?
Użytkownikom ubuntu proponuję zajrzeć na stronę autora sudo i zobaczyć co on sądzi na temat wykorzystywania tego programu w taki sposób jak w ubuntu i jego pochodnych.
@crack211
a posty tej osoby usunac !!!!!!
krzyk rozpaczy, czyżby brak argumentów?
Nope, chodzi o to, że mamy już prawo, które zabrania.
art. 269b kk
[…] (more…) […]
Używanie su jest bardziej przejrzyste i wg mnie bezpieczniejsze przede wszystkim dla początkujących użytkowników (i nie tylko) i nie widzę za bardzo żadnego ułatwienia tutaj… Poza tym su to o dwie literki mniej niż sudo więc mniej roboty przy nim
Mi osobiście więc przejrzystość bezpieczeństwo i połowę mniej pisania, więcej daje w codziennym użytkowaniu niż:
* Restrykcyjne uprawnienia
* Ślad czynności wykonywanych przez użytkownika zapisany w logach systemu
Najważniejsze, że każdy ma wybór według swoich upodobań
Widzę że kolega nie rozróżnia komed sudo i su. Polecenie su pozwala na zmianę uzytkownika/loginu na inny niż ten na którego zalogowaliśmy się w terminalu. sudo natomiast pozwala na uruchamianie komend z prawami roota z konta użytkownika nieuprzywilejowanego.
Co do zastosowań jeśli mamy serwer gdzie mamy kilku adminów to sudo jest zbawieniem każdy ma własne hasło i nie ma sprawy. Sprawa jest jeszcze fajniejsza jak ci admini mają różne przywileje i zakres obowiązków. A już jak programiści co jakiś czas sobie muszą jbossa czy apacha resetnąć to już bajka.
Natomiast nie widzę żadnego zastosowania sudo w sytemach biurkowych co więcej uczenie ludzi żeby uzywać sudo bez hasła to szczyt głupoty i braku wyobraźni. Przecie ms explorer jest wtedy bezpieczniejszy niż taki system.
Kolega coś wyżej wspominał o przesłonieniu komendy sudo w ten sposób jak opisał mozna i ls przesłonić wystarczy zmienić path usera to żadna nowość. Dlatego uzywajcie “su -” nadpisze to zmienne srodowiskowe i nie będziecie mieli niespodzienek że ktoś wam cos wrzucił.
Co do samego sudo najczęściej uruchamiana przez mnie “wiązanka” “sudo su -” reszte robie na roocie.
No tak
tylko, że to były takie moje infantylne osobiste rozważania z poziomu zwykłego użytkownika systemu na biurko. Z sudo korzystałem jak miałem Kubuntu a np. Ubuntowe systemy z założenia są systemami desktopowymi, które uznają “sudo” za lepsze rozwiązanie dla początkującego biurkowego użytkownika Linuksa…
Wygoda, ułatwienia i przejrzystość takiego rozwiązania dla szarego nieświadomego użytkownika w tym przypadku jest żadna lub wręcz jest to gorsze rozwiązanie niż czytelne oddzielne konto root’a z własnym hasłem i logowaniem się poprzez su na konto zamiast sudo przed każdą komendą…
Oczywiście sudo nie jest pozbawione hasła lecz żeby było bardziej przejrzyście i bezpiecznie, na konto roota logujesz się hasłem użytkownika
Ja tam się nie znam za bardzo, ale wydaje mi się, że napisanie skryptu proszącego o hasło użytkownika a potem zawierającego sudo i różne bardzo ciekawe komendy za nim to chwila, natomiast szary nieświadomy użytkownik przecież nie widzi różnicy między kontem użytkownika i administratora w takim przypadku… Loguje się przecież na konto użytkownika podając jego hasło czyż nie? Ale już nie będę smucił…
Ty jak widzę podchodzisz do sprawy bardziej profesjonalnie i bardzo dobrze, bo wyjaśniłeś wiele rzeczy i Twój komentarz jest bardzo cenny. Jedyny wniosek jaki się nasuwa to taki, że każdy powinien używać świadomie i odpowiedzialnie sudo oraz konta administratora, tym bardziej jeżeli ktoś zmuszony jest przez twórców systemu by logować się na nie hasłem użytkownika… No i nie należy iść na łatwiznę i robić bypassu bez hasła na konto roota poprzez sudo.. Wielu początkujących Ubuntowców przykładowo narzeka na to, że ciągle muszą podawać hasło “Bo w Windowsie tak nie było”… Pozdrawiam