Что такое «root» в Linux?

Ноутбук Linux в стиле Ubuntu.Фатмавати ачмад дзэнури / Shutterstock.com

Пользователь root — самая могущественная сущность во вселенной Linux с безграничными полномочиями, к лучшему или к худшему. Создать пользователя? Понятно. Уничтожить файловую систему? Упс, тоже понял.

История происхождения

Пользователь root — это суперпользователь Linux. Они могут буквально все. Нет ничего запрещенного для root. Будет ли он супергероем или суперзлодеем, зависит от человека-пользователя, который берет на себя мантию системного администратора. Ошибки, допущенные пользователем root, могут иметь катастрофические последствия, поэтому учетную запись root следует использовать исключительно в административных целях.

Концепция пользователя root была унаследована от Unix, в которой пользователь root был административным суперпользователем. Но откуда взялось название «корень», доподлинно неизвестно. Некоторые думают, что это произошло из-за Операционная система Multics, который предшествует Unix.

Кен Томпсон а также Деннис Ричи, два наиболее важных архитектора и автора Unix, оба ранее работали над Multics. У Multics была файловая система, которая начиналась в точке, называемой корневым каталогом или «/», а все другие каталоги и подкаталоги разветвлялись вниз и наружу от корня, как перевернутое дерево. Это такая же древовидная структура, как и в Unix. Так, может быть, Unix также перенял пользователя root от Multics?

Поиск через Техническая документация Multics обнаруживает множество ссылок на корневые логические тома, корневые физические тома, корневые карты и корневой каталог. Но здесь нет упоминания об учетной записи пользователя root или пользователя с именем «root».

Другая теория состоит в том, что на заре Unix домашняя папка суперпользователя была корнем «/» файловой системы. Суперпользователю нужно имя. Термин «пользователь root» использовался вместо официального имени, но этот термин прижился и стал официальным именем.

Это кажется более вероятным, но, похоже, никто не может точно сказать, как пользователь root получил свое имя.

Команда sudo

В любой операционной системе рекомендуется зарезервировать суперпользователя только для административных целей, а в остальное время использовать учетную запись обычного пользователя. Фактически, большинство современных дистрибутивов Linux не позволяют вам войти в систему как пользователь root.

Конечно, это Linux, поэтому вы можете настроить его так, чтобы разрешить пользователю root вход в систему. Но чем меньше времени вы проводите в системе как root, тем лучше. Помимо защиты от сбоев, связанных с опечатками, если вы не можете войти в систему как root, никто другой не сможет. Любой, кто получит несанкционированный доступ к вашей системе, не сможет войти в систему как root, что ограничивает ущерб, который они могут нанести.

Но если вход в систему как root отключен, как вы будете администрировать свой Linux-компьютер? Что ж, для этого и предназначена команда sudo. Он не требует входа в систему от пользователя root. Он временно наделяет вас полномочиями root. Это как поднять молот Тора Мьёльнир и временно получил полномочия Тора. Но забрать молоток можно только в том случае, если ты достоин. Точно так же не каждый может использовать команду sudo. Команда sudo наделяет вас полномочиями root только в том случае, если вы были сочтены достойными и добавлены в список sudoers.

Есть еще одна команда, похожая на sudo, которая называется su. С sudo вы аутентифицируетесь, используя свой собственный пароль. С su вы аутентифицируетесь, используя пароль пользователя root. Это важно по двум причинам. Во-первых, это означает, что вам нужно назначить пароль пользователю root для использования su. По умолчанию у пользователя root нет пароля, и это помогает с безопасностью. Если у root нет пароля, вы не можете войти в систему как root.

Во-вторых, если вы установите пароль root, всем, кто собирается использовать команду su, необходимо знать пароль. А совместное использование паролей — это проблема безопасности, а для пароля root — тем более. Любой из людей, знающих пароль root, может рассказать кому-нибудь другому. Если вам нужно изменить пароль root, вам необходимо сообщить новый пароль всем людям, которым он нужен.

Гораздо безопаснее использовать список sudoers, чтобы ограничить круг лиц, которые могут использовать sudo, и позволить каждому привилегированному лицу использовать свои индивидуальные пароли для аутентификации.

Использование sudo

Файл «/ etc / shadow» содержит имя пользователя каждой учетной записи на вашем компьютере Linux, а также другую информацию, включая зашифрованный пароль каждой учетной записи, дату последней смены пароля и срок его действия. Поскольку он содержит конфиденциальную информацию, его может прочитать только root.

Если мы попытаемся использовать команду wc для чтения строк, слов и символов в теневом файле, нам будет отказано в разрешении.

туалет / и т. д. / тень

Если мы находимся в списке sudoers и используем ту же команду с sudo в начале строки, нам будет предложено ввести пароль, и команда будет выполнена за нас. Если вы единственный пользователь на своем компьютере с Linux, вы автоматически будете добавлены в список sudoers при установке системы.

sudo туалет / и т. д. / тень

Поскольку мы запускаем команду от имени пользователя root, выполняется команда wc. Никто не отрицает рут.

Команда sudo раньше означала «суперпользователь, делать». Он был расширен, чтобы позволить вам запускать команду от имени любого пользователя, поэтому он был переименован в «замещающий пользователь делает». Команда фактически выполняется так, как если бы ее запускал другой пользователь. Если вы не укажете имя пользователя, sudo по умолчанию использует root. Если вы хотите использовать другого пользователя, используйте параметр -u (пользователь).

Мы видим, что команды выполняются от имени другого пользователя с помощью команды whoami.

whoami sudo whoami sudo -u Мэри уами

Запуск от имени root без использования su

Загвоздка с sudo заключается в том, что вы должны использовать sudo в начале каждой команды. Если вы просто набираете одну или две команды, в этом нет ничего страшного. Если вам нужно выполнить более длинную последовательность команд, это может стать утомительным. Это может быть утомительно, но оно действует как полезный предохранитель для полномочий root, и вы должны сознательно снимать защиту каждый раз.

Есть способ эффективно «войти в систему» ​​как root, который не использует su и не требует, чтобы у пользователя root был пароль.

Предупреждение: будьте осторожны при использовании этого метода. Каждая команда, которую вы вводите, будет успешно выполнена, без вопросов, даже если она разрушительна.

Использование sudo для запуска оболочки Bash открывает новую оболочку с пользователем root.

sudo bash

Обратите внимание, что командная строка изменится. Последним символом приглашения теперь является решетка «#» вместо символа доллара «$».

То, как отображается тело командной строки, варьируется от дистрибутива к дистрибутиву. В Ubuntu нам сообщают, что пользователь является пользователем root, и показывают имя компьютера и текущий рабочий каталог. Цвет подсказки также изменится.

Поскольку мы root, мы можем выполнять команды, которые обычно требуют использования sudo.

туалет / и т. д. / тень

Чтобы выйти из оболочки пользователя root, нажмите «Ctrl + D» или введите «exit» и нажмите «Enter».

выход

Меньше Супермена, больше Кларка Кента

Если вы находитесь в списке sudoers, у вас есть суперсила над вашей системой Linux. Просто помните, что Супермен проводит больше времени в качестве своего кроткого альтер-эго, чем в своем красном плаще.

Как можно чаще используйте свою учетную запись обычного пользователя. Переходите на root только тогда, когда вам действительно нужно.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *