Какво е Sudo в Linux и как да го използвам

Помислете за горния комикс от отличния уебкомикс XKCD . Мързеливецът в стола иска приятелят им да им направи сандвич, но им липсва властта да ги накара да го направят. Тоест, докато не извика могъщата команда sudo. След което по един или друг начин ще се направи сандвич. 

Въпреки че изпробването на sudo върху човек в реалния живот вероятно няма да бъде толкова ефективно, това е магическата команда, която преодолява всяко препятствие в света на Linux . Какво е sudo? Защо изобщо съществува? Отговорът се крие в това как Linux обработва разрешенията.

Разбиране на потребителските разрешения на Linux(Linux User Permissions)

Linux се счита за сигурна операционна система поради начина, по който обработва разрешенията. Докато операционни системи като macOS (които споделят предшественик с Linux ) и Windows сега са по-скоро като Linux в това отношение, операционната система с отворен код(Open Source) все още е донякъде уникална.

Разбирането как Linux обработва разрешенията прави много по-лесно да се запознаете с командата sudo. Всички съвременни операционни системи имат ниво на "администратор" или "root" потребителски права. Ако имате администраторски или root акаунт, можете да промените всяка настройка, да изтриете всякакви данни и като цяло да правите каквото искате с компютъра. 

Това включва неща, които вероятно не трябва да правите, които могат да доведат до загуба на данни или необходимост от пълно изтриване и преинсталиране.

Linux не прави разрешенията на ниво root потребител по подразбиране. Вместо това акаунтът ви не може да достигне до наистина чувствителните части на системата, без да повиши нивото на разрешение. Това означава, че системата ще ви помоли да въведете администраторска парола, когато искате да направите нещо необичайно с помощта на графичен интерфейс. 

Въпреки това, когато искате да използвате командния ред на терминала(Terminal) , за да свършите нещата, sudo е най-сигурният и ефективен начин да го направите.

Sudo и терминалът

Има два начина да си дадете повишени разрешения в Linux . Единият е да влезете постоянно като root потребител. Проблемът с това е, че всеки друг, който има достъп до компютъра, може да причини хаос и дори вие можете да го направите случайно. Sudo повишава вашите разрешения само за кратко време, за да изпълни специфичните команди, които го следват.

Синтаксис на Sudo

Синтаксисът на Sudo (форматът на командата) е прост. Просто(Simply) въведете „sudo“, последвано от командата, която искате да изпълните.

Например „sudo apt-get update“ ще актуализира всички хранилища на приложения, изброени в съответния файл. Ако се опитате да го стартирате без sudo, ще получите съобщение за грешка, което ви казва, че нямате разрешение. Между другото, това обикновено е първата команда sudo, която искате да изпълните след нова инсталация на любимата ви Linux дистрибуция. 

„Су“ в Судо

„su“ в sudo е съкращение от „superuser“ и е самостоятелна команда. Командата “su” ви позволява да промените привилегиите на потребителя, до които sudo ви издига. 

Въпреки че sudo ви издига временно до root, su ви променя на друг потребител с подходящи привилегии. Това може да изглежда като маловажно разграничение, но има основателни причини да промените акаунта, до който sudo издига потребителя. 

На първо(First) място, промяната на акаунта означава, че обикновените потребители не знаят root паролата. Второ, има дневник на всички sudo команди, което означава, че системният администратор (root) може да търси кой е издал su командите.

Синтаксисът за su по същество е същият като sudo:

Su USERNAME -c КОМАНД(Su USERNAME -c COMMAND)

Заменете USERNAME(Replace USERNAME) с желания потребител, за да изпълните командата, и COMMAND с Linux командата, която искате да изпълните.

Ако искате да изпълнявате няколко команди като друг потребител, просто използвайте:

Su USER

Заменете USER(Replace USER) с желаната идентичност на потребителския акаунт.

Ако използвате su самостоятелно, Linux ще премине към другия потребителски акаунт, докато не използвате командата „exit“. Важно е да запомните, че този или следващият потребител за достъп до терминала в тази сесия все още ще има повишени разрешения. Ето защо обикновено е по-добре да използвате sudo, а не su.

Времевото ограничение на Sudo

Първият път, когато използвате команда sudo, ще трябва да въведете парола. След това тази парола ще остане валидна за 15 минути. Можете да промените това по подразбиране, като изпълните командата sudo visudo и промените „timestamp_timeout=“ на по-дълга или по-къса стойност. Въпреки това, не ви препоръчваме да правите това, освен ако нямате основателна причина да удължите или съкратите колко дълго остава валидна sudo паролата.

Превключватели на опции Sudo

Въпреки че синтаксисът на sudo е прост, няколко превключвателя си струва да знаете. Тези команди отварят допълнителна информация или ви помагат да контролирате sudo сесията:

  • -h ви показва информация за синтаксиса и командите за sudo.
  • -V показва текущата версия на sudo на вашата машина.
  • -v обновява ограничението за времето sudo, рестартирайки часовника.
  • -l изброява потребителски привилегии.
  • -k незабавно убива текущата sudo сесия, премахвайки повишените привилегии.

Има много повече опции, вградени в sudo и можете да ги видите всички, като използвате първия -h превключвател, изброен по-горе.

Горната екранна снимка е резултатът, когато използвате опцията за помощ.

Полезни команди Sudo

И така, кои команди, упълномощени от sudo, трябва да знае всеки потребител на Linux ? Вече разгледахме sudo apt-get update, но обърнете внимание и на това:

  • Sudo apt-get upgrade ще надстрои всички инсталирани пакети.
  • Sudo apt-get install <package-name> инсталира софтуер по ваш избор; просто променете името на пакета с това, което искате да инсталирате.
  • Ако не знаете името на пакета, използвайте dpkg –list .
  • Ако искате да премахнете инсталиран пакет от терминала, използвайте sudo apt-get remove <package-name (отново замествайки въпросното конкретно име на пакета).

Това вероятно са първите команди sudo, които ще трябва да използвате, но както научихте по-горе, всяка команда може да следва sudo, но трябва да използвате само тези, които се нуждаят от по-високи привилегии с нея.



About the author

Аз съм компютърен програмист и съм от над 15 години. Уменията ми са в разработването и поддържането на софтуерни приложения, както и в предоставянето на техническа поддръжка за тези приложения. Също така съм преподавал компютърно програмиране на гимназисти и в момента съм професионален инструктор.



Related posts