Êîãäà-òî ìåíÿ î÷åíü áåñïîêîèëî íåñêîëüêî âîïðîñîâ î ïîëó÷åíèè ïðèâèëåãèé äðóãèõ ïîëüçîâàòåëåé. Íàïðèìåð:
• Ïî÷åìó äëÿ ïîëó÷åíÿ ïðàâ root ìíå íóæíî ââîäèòü ñâîé ïàðîëü, à íå åãî? Íå óäàð ëè ýòî ïî áåçîïàñíîñòè ñèñòåìû? È â ÷¸ì âîîáùå ëîãèêà?
• Ïî÷åìó su íå ïðèíèìàåò ìîé ïàðîëü?
• ×åì îíè îòëè÷àþòñÿ? È åñëè îíè âûïîëíÿþò îäíó ôóíêöèþ, òî åñòü âçàèìîçàìåíÿåìû, òî çà÷åì èõ êîìáèíèðîâàòü â sudo su?
Îäíàæäû â óìíîé êíèæêå ÿ âñ¸ óçíàë :). Âîò òîëüêî òåïåðü ðóêè íàïèñàòü äîøëè :). È òàê. ×åì æå îòëè÷àåòñÿ sudo îò su?
su
Êîììàíäà su ïåðåëîãèíèâàåò þçåðà ïîä äðóãèì èìåíåì â êîíêðåòíîì ýêçåìïëÿðå îáîëî÷êè. Ïî óìîë÷àíèþ ýòî èìÿ - root (åñëè êîììàíäà çàäàíà áåç àðãóìåíòîâ). Ïî çàïðîñó îíà òðåáóåò ââåñòè ïàðîëü ýòîãî ïîëüçîâàòåëÿ. Òî åñòü, ÷òîáû ñòàòü ïîëüçîâàòåëåì vasya, âûïîëíÿåì êîììàíäó su vasya è ââîäèì åãî ïàðîëü.
Òàê æå ìîæíî âûïîëíèòü åäèíè÷íóþ êîììàíäó îò èìåíè ëþáîãî ïîëüçîâàòåëÿ, íå ñòàíîâÿñü èì. Äëÿ ýòîãî ïîñëå åãî èìåíè èñïîëüçóåòñÿ êëþ÷ -c, à çà íèì ñëåäóò êîììàíäà.
# su vasya -c gedit file.txt
Îòëè÷èå îò sudo â òîì, ÷òî ïðîãðàììà íå çàïîìèíàåò íàñ íà 10 ìèíóò. È åñëè ÷åðåç ñåêóíäó ïîíàäîáèòñÿ âûïîëíèòü òó æå êîììàíäó, òî îíà ñïðîñèò ïàðîëü âíîâü. Ýòî î÷åíü õîðîøî ñ òî÷êè çðåíèÿ áåçîïàñíîñòè, òàê êàê îáû÷íî su íàìíîãî áîëåå îïàñíà, ÷åì sudo.
Ïîëüçîâàòåëü root ìîæåò ñòàíîâèòüñÿ êåì óãîäíî, íå ââîäÿ íèêàêîãî ïàðîëÿ è äàæå íå çíàÿ åãî :). Íà òî îí è root :). Äëÿ çàâåðøåíèÿ ðàáîòû ïðîãðàììû su ìîæíî âûïîëíèòü exit. Ïîëüçîâàòåëþ âîçâðàùàåòñÿ èäåíòèôèêàòîð, ñ êîòîðûì îí èçíà÷àëüíî âîø¸ë â ñèñòåìó.
sudo
À òóò âñ¸ íåìíîãî èíòåðåñíåå. Ïðîãðàììà sudo äà¸ò äîñòóï ê ïðàâàì è ðåñóðñàì äðóãèõ ïîëüçîâàòåëåé, íî íå êî âñåì, à ê ÷¸òêî ðàçðåø¸ííûì àäìèíèñòðàòîðîì ñèñòåìû. Òî åñòü íàïðèìåð, àäìèí õî÷åò, ÷òîáû ÿ ìîã ïîðòèòü åãî êàðòèíêè â GIMP, à òàê æå çàïóñêàòü gedit îò èìåíè vasya, íå âûäàâàÿ ïðè ýòîì ìíå ñâîåãî ïàðîëÿ è ïàðîëÿ Âàñè :). Òî åñòü íå ïîçâîëÿÿ ïîëó÷àòü ïîëíûå ïðèâèëåãèè îò èõ èìåíè. À äëÿ òîãî, ÷òîáû õèòðàÿ ò¸òÿ Âàëÿ, ìîÿ ïîë â êàáèíåòå â ìî¸ îòñòóñòâèå, íå âîñïîëüçîâàëàñü ýòèìè ïðèâèëåãèÿìè, òî äëÿ èõ èñïîëüçîâàíèÿ ÿ äîëæåí ïîäòâåðäèòü ñâîþ ëè÷íîñòü, ââåäÿ ñâîé ïàðîëü.
Ïðàâèëà, ÷òî êîìó ïîçâîëåíî ñ ïîìîùüþ ýòîé ïðîãðàììû, íàõîäÿòñÿ â ôàéëå /etc/sudoers.
Ãëàâíàÿ îïàñíîñòü â òîì, ÷òî ïàðîëü çàïîìèíàåòñÿ íà íåïðîäîëæèòåëüíîå âðåìÿ, è ýòèì ìîæåò âîñïîëüçîâàòüñÿ êòî-òî äðóãîé... À òàê æå, åñòü ìíîãî äðóãèõ íþàíñîâ, êîòîðûå ñëåäóåò ïîìíèòü. Íàïðèìåð, åñëè ïîëüçîâàòåëþ ïîçâîëåíî çàïóñêàòü ïðîãðàììó su èëè íåêîòîðûé êîììàíäíûé èíòåðïðåòàòîð îò èìåíè root, òî âñå îñòàëüíûå çàïðåòû äëÿ íåãî áåññìûñëåííû, òàê êàê âñå ïðèâèëåãèè ó íåãî óæå â ðóêàõ :).
Íó, ÷òîáû âûïîëíèòü êîììàíäó îò èìåíè ïðîèçâîëüíîãî ïîëüçîâàòåëÿ, åñëè îíà ðàçðåøåíà â /etc/sudoers, íåîáõîäèìî èñïîëüçîâàòü êëþ÷ -u, çàäàþùèé èìÿ ýòîãî ïîëüçîâàòåëÿ.
# sudo -u vasya gedit file.txt
Ëèáî æå
# sudo -u vasya su
Ïðåâðàùàåò ìåíÿ â Âàñþ, åñëè ýòî ïîçâîëåíî â sudoers. Àíàëîãè÷íî sudo su ïðåâðàùàåò ìåíÿ â root ïðè òåõ æå óñëîâèÿõ :).