Начална » как да » Каква е разликата между Sudo и Su в Linux?

    Каква е разликата между Sudo и Su в Linux?

    Ако сте потребител на Linux, вероятно сте видели препратки към sudo и su. Членове тук относно How-To Geek и другаде инструктират потребителите на Ubuntu да използват потребителите на sudo и други дистрибуции на Linux, за да използват su, но каква е разликата?

    Sudo и su са два различни начина за получаване на привилегии на root. Всяка от тях функционира по различен начин, а различните дистрибуции на Linux използват различни конфигурации по подразбиране.

    Главният потребител

    Su и sudo се използват за изпълнение на команди с root права. Потребителят root е еквивалентен на администраторския потребител на Windows - основният потребител има максимални разрешения и може да направи всичко за системата. Нормалните потребители на Linux работят с намалени разрешения - например, не могат да инсталират софтуер или да записват в системни директории.

    За да направите нещо, което изисква тези разрешения, ще трябва да ги получите със su или sudo.

    Су срещу Судо

    Командата su превключва на суперпотребителя - или на главния потребител - когато го изпълните без допълнителни опции. Ще трябва да въведете паролата на основния акаунт. Това не е всичко, което командата su прави, обаче - можете да я използвате, за да превключите към всеки потребителски акаунт. Ако изпълните su bob ще бъдете подканени да въведете паролата на Bob и черупката ще премине към потребителския акаунт на Bob.

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

    Sudo изпълнява една команда с привилегии на root. Когато изпълните Команда sudo, Системата ви подканва да въведете паролата на текущия си потребителски акаунт преди да стартирате команда като основен потребител. По подразбиране Ubuntu запомня паролата за петнадесет минути и няма да иска отново парола, докато не изминат петнадесет минути.

    Това е ключова разлика между su и sudo. Su превключва към root потребителския акаунт и изисква паролата на root акаунта. Sudo изпълнява една команда с root привилегии - тя не преминава към root потребителя или изисква отделна root потребителска парола.

    Ubuntu срещу други Linux дистрибуции

    Командата su е традиционният начин за придобиване на root права за Linux. Командата sudo съществува от дълго време, но Ubuntu беше първата популярна Linux дистрибуция, която по подразбиране беше само sudo. Когато инсталирате Ubuntu, стандартният root акаунт е създаден, но не му е зададена парола. Не можете да влезете като root, докато не присвоите парола на root акаунта.

    Има няколко предимства да се използва sudo вместо su по подразбиране. Потребителите на Ubuntu трябва само да предоставят и запомнят една парола, докато Fedora и други дистрибуции изискват да създадете отделни пароли за корен и потребителски профил по време на инсталацията.

    Друго предимство е, че обезкуражава потребителите да влязат в системата като потребител на root - или да използват su, за да получат root root - и да поддържат кореновата обвивка отворена, за да вършат нормалната си работа. Изпълнението на по-малко команди като root увеличава защитата и предотвратява случайни промени в цялата система.

    Дистрибуциите, базирани на Ubuntu, включително Linux Mint, също използват sudo вместо su по подразбиране.

    Няколко трика

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

    За да изпълните една команда като root потребител със su, изпълнете следната команда:

    su -c 'команда'

    Това е подобно на стартирането на команда с sudo, но ще ви трябва паролата на root сметката вместо паролата на текущия ви потребителски акаунт.

    За да получите пълна, интерактивна коренова обвивка с sudo, изпълнете sudo -i.

    Ще трябва да предоставите паролата на текущия си потребителски акаунт вместо паролата на основния акаунт.

    Активиране на основния потребител в Ubuntu

    За да активирате root потребителския акаунт в Ubuntu, използвайте следната команда, за да зададете парола за нея. Имайте предвид, че Ubuntu препоръчва това.

    sudo passwd root

    Sudo ще ви подкани да въведете паролата на текущия си потребителски акаунт, преди да можете да зададете нова парола. Използвайте новата си парола, за да влезете като root от подканата за влизане в терминал или с командата su. Никога не трябва да изпълнявате пълна графична среда като потребител на root - това е много лоша практика за сигурност и много програми ще откажат да работят.

    Добавяне на потребители към файла Sudoers

    Само акаунти от администраторски тип в Ubuntu могат да изпълняват команди с sudo. Можете да промените типа потребителски акаунт от прозореца за конфигуриране на потребителски акаунти.

    Ubuntu автоматично определя потребителския акаунт, създаден по време на инсталацията като администраторски акаунт.

    Ако използвате друга дистрибуция на Linux, можете да предоставите на потребителя разрешение за използване на sudo чрез стартиране на visudo команда с привилегии на root (затова изпълнете су първо или използвайте su -c).

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

    потребител ALL = (ALL: ALL) ALL

    Натиснете Ctrl-X и тогава Y , за да запишете файла. Може също да можете да добавите потребител към група, посочена във файла. Потребителите в групите, посочени във файла, автоматично ще имат привилегии на sudo.

    Графични версии на Su

    Linux поддържа и графични версии на su, които изискват вашата парола в графична среда. Например, можете да изпълните следната команда, за да получите подкана за графична парола и да стартирате файловия браузър Nautilus с права на root. Натиснете Alt-F2 да стартирате командата от диалогов диалогов прозорец, без да стартирате терминал.

    gksu nautilus

    Командата gksu също има няколко други трика в ръкава си - запазва текущите настройки на работния плот, така че графичните програми няма да изглеждат неуместни, когато ги стартирате като различен потребител. Програми като gksu са предпочитаният начин за стартиране на графични приложения с root права.

    Gksu използва или su или sudo-базиран backend, в зависимост от Linux дистрибуцията, която използвате.


    Сега трябва да сте готови да срещнете и su, и sudo! Ще срещнете и двете, ако използвате различни дистрибуции на Linux.