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

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

су

Командата su замества текущия потребител, използван от системата в корпуса. Можете да превключите към всеки потребител, като вземете su и добавите потребителско име от него. Това ще покаже на системата да превключи (и по същество да излезе от) текущия потребител до определения. Алтернативно, командата su може да получи коренния достъп, като въведе su без да посочи нищо след командата.

"Su" се използва най-добре, когато потребителят иска директен достъп до коренния акаунт на системата. Не минава през sudo или нещо подобно. Вместо това паролата на потребителя на root трябва да бъде известна и използвана за влизане в системата. Освен това, други начини за получаване на корен не са в полза на получаването на достъп до основната директория и коренната среда.

sudo su

Тази команда е по същество същата като просто да се изпълнява su в черупката. Вместо да казвате на системата директно да "превключвате потребители", вие го казвате да изпълнява командата "su" като корен. Когато се изпълнява sudo su се стартират ".profile", ".bashrc" и "/ etc / profile", подобно на run su (или su root ). Това е така, защото ако някоя команда се изпълнява със sudo пред нея, това е команда, на която се дават права на root.

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

sudo -i

Използването на sudo -i е практически същото като командата sudo su . Потребителите могат да получат корен от "sudo", а не чрез превключване към root потребител. Подобно на sudo su, флагът -i позволява на потребителя да получи коренна среда, без да се налага да знае паролата на главния акаунт. sudo -i също е много подобен на използването на sudo su тъй като ще прочете всички екологични файлове (.profile и т.н.) и ще замени средата в корпуса с него.

Където се различава от "sudo su" е, че sudo -i е много по-чист начин за получаване на корен и коренна среда без директно взаимодействие с потребителя на root. Как? С sudo su използвате повече от една команда команда setuid . Този факт прави много по-трудно да се разбере какви екологични променливи ще се запазят и кои ще се променят (когато се забиват в кореновата среда). Това не е вярно за sudo -i, и това е така, защото повечето хора я гледат като предпочитан метод за получаване на корен без директно влизане.

sudo -s

Превключвателят -s за командата "sudo" прочита променливата $ SHELL на текущия потребител, изпълняващ команди. Тази команда работи както ако потребителят изпълнява sudo /bin/bash . Sudo -s е черупка стил "не-вход". Това означава, че за разлика от команда като sudo -i или sudo su, системата няма да чете екологични файлове. Това означава, че когато даден потребител съобщи на черупката да изпълнява sudo -s, той получава корен, но няма да промени потребителя или потребителската среда. Вашият дом няма да бъде основният дом и т.н.

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

Заключение: Каква команда трябва да използвам?

Всяка команда има своя случай. Важното тук е да разберете какво прави всяка команда и кога да я използвате. Както е известно, sudo -i е най-практичният и чист начин да се получи коренна среда. От друга страна, тези, които използват sudo -s ще открият, че могат да получат коренна обвивка, без да могат да докосват кореновата среда, което има допълнителни предимства за сигурността.

Наистина няма една команда в този списък, която е 100% най-добра. Тъй като потребителите се чувстват по-комфортно с командния ред, те трябва да вземат под внимание всеки един от начините за получаване на корен (и има много), да преценят плюсовете и минусите и да действат съобразно с това. Надявам се, че с помощта на тази статия тези решения ще бъдат по-лесни.

Какъв начин предпочитате да получавате root достъп в Linux? Кажете ни по-долу!

Кредит на изображението: blog.david-jensen.com