Není to nesmysl obecně, jen je nesmysl používat ho "the Ubuntu way", tj. podle hesla "když to vyžaduje práva roota, napište před příkaz sudo
". Já ho třeba používám k tomu, abych mohl konkrétní příkazy (včetně parametrů), které potřebují práva roota, spouštět pod svým normálním uživatelem, pro ty příkazy pak obvykle mám i nějaký alias nebo wrapper script. Na tohle se to naopak hodí velmi dobře.
V konfiguraci PAM nastavíte pro příslušný auth
řádek povolující použití su
na roota atribut trust
(typicky se to nastavuje pro skupinu wheel
) – tím umožníte oprávněným uživatelům spouštět su
bez zadávání hesla roota.
Aby ten uživatel nemohl spustit nic jiného, než ten konkrétní příkaz, nedokáže zajistit ani sudo
. To jen spustí ten příkaz pod rootem, a dál už nedovede ovlivnit, jaký kód nebo procesy ten příkaz bude spouštět.
Ne, jestli ten příkaz umožní něco dalšího není věcí admina, je to věcí autora toho příkazu a všech závislostí.
Podle mne ten účel, kterého se snaží docílit sudo
, je v praxi nesplnitelný. Právě to mi vadí, že to slibuje něco, co nedokáže žádným způsobem zaručit. A spousta lidí tomu věří.
Neměl bych problém s tím, pokud by si takhle někdo používal sudo soukromě. Ve smyslu vím, že to není bezpečné, ale tomuhle nemehlu bych potřeboval umožnit tohle spustit pod rootem, na záměrné škodění nemá schopnosti, i kdyby něco napáchal, nestane se nic hrozného, a nevyplatí se řešit to pořádně. Všichni víme, že je potřeba dělat kompromisy, že provozujeme řešení, která nejsou perfektně zabezpečená – ale děláme to s vědomím toho rizika a se znalostí bezpečnostních dopadů.
Jenže takhle se sudo
od dob Ubuntu nepoužívá. Začalo se používat jako nejdůležitější bezpečnostní nástroj, který odděluje běžného uživatele od rootovských práv. Jenže ten nástroj tohle neumí a nemůže umět. O čemž bohužel evidentně většina uživatelů neví.
Mimochodem, v tomhle vlákně byla řeč o pracovní stanici. Tedy já jako jediný uživatel používám počítač, ke kterému zároveň mám administrátorské oprávnění. A jediné, co chci, je nepracovat zbytečně pořád pod rootem, abych omylem nenapáchal nějakou škodu. Tam je mi sudo
opravdu k ničemu, protože před mojí blbostí mne neochrání. Je to přesně ten případ, kdy se sudo
používá jako náhrada su
– nejsou vyjmenované příkazy, které mohu jako root spouštět, naopak, záměrně je povolené úplně všechno.