Найти в Дзене

Я есть Рут! Кто такой суперпользователь в Линукс?

Для дистрибутивов на базе ядра Linux одна из первостепенных задач - безопасность системы. Потому права обычного пользователя крайне ограничены, а полный контроль над системой есть только у так называемого «суперпользователя». Главная особенность Linux-дистрибутивов - подход, что все есть файл. А этот файл можно открыть, изменить, сохранить изменения. На этом будет базироваться весь материал о суперпользователе. Обычные и root-права Обычный пользователь может записывать файлы исключительно в свой каталог (директорию) и имеет права на чтение некоторых системных файлов. Он не может устанавливать программы (так как для этого нужно обладать правами на запись файлов), не может изменять атрибуты файлов (разрешать редактировать или запускать их), не может запускать сервисы, читать файлы логов и многое другое. Чтобы сделать что-то большее, обычному пользователю понадобятся права суперпользователя или root-права. Root в Linux системах - это с одной стороны название корневого раздела жесткого дис
Оглавление

Для дистрибутивов на базе ядра Linux одна из первостепенных задач - безопасность системы. Потому права обычного пользователя крайне ограничены, а полный контроль над системой есть только у так называемого «суперпользователя». Главная особенность Linux-дистрибутивов - подход, что все есть файл. А этот файл можно открыть, изменить, сохранить изменения. На этом будет базироваться весь материал о суперпользователе.

Обычные и root-права

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

Root в Linux системах - это с одной стороны название корневого раздела жесткого диска, где хранятся системные файлы, с другой - имя пользователя, который обладает полным контролем над системой.

Если мы говорим о домашних системах, то при установке дистрибутива будет предложено предоставить создаваемому вами пользователю root-права и назначить его суперпользователем операционной системы. Количество пользователей с root-правами не ограничено, при этом уже созданного пользователя можно сделать суперпользователем, назначив его в специальную группу root. Останется лишь в нужный момент воспользоваться супер-правами. Сделать это можно тремя способами.

Команда SUDO

Это сокращение от английского «Substitute User and do», что переводится как «подменить пользователя и выполнить». При использовании этой команды ваша учетная запись в ОС не меняется, вы используете систему и взаимодействуете от имени своего пользователя, просто передавая себе root-права. Так, чтобы изменить системный файл, создать каталог в системном разделе или установить программу нужно воспользоваться командой sudo, например

sudo apt install <имя программы>
(команда устанавливает программу в системах Debian/Ubuntu)

Команда SUDO -S

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

Команда SUDO -I

Использование параметра -i вместе с командой sudo приведет к тому, что изменится рабочий каталог пользователя. Он переключится на /root и будет доступен на протяжении всей сессии (пока пользователь не введет команду exit).

Обратите внимание, что после использования команды sudo с параметрами -s и -i уже не нужно каждый раз писать sudo, так как пользователь будет обладать root-правами до момента, пока не откажется от них или пока система не будет перегружена.

Почему нельзя пользоваться root-правами безо всяких команд?

Казалось бы логично предоставлять пользователю root-права безо всякого дополнительного запроса. Но тут кроется опасность в том, что обладая такими правами постоянно пользователь, особенно начинающий, может натворить очень много ненужных вещей. Например, стереть системные файлы или каталоги, изменить важные настройки и пр. Предоставление root-прав это дополнительная защита. К тому же, случаи, когда root-права необходимы при обычном использовании системы крайне редки, особенно в традиционном сценарий использования ОС (просмотр фильмов, использование Интернета и браузера, игры, работа с офисными редакторами и пр.)

«Авада Кедавра» в мире Линукс

Такой считается команда sudo rm -rf /. Она удаляет корневой раздел системы со всеми системными и важными файлами. Правда при попытке ее ввода будет выведено предупреждение, так как в мире Линукс, в отличие от мира Гарри Поттера, работают встроенные инструменты защиты от неоправданных и мощных заклинаний-команд.

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

Просто Кодь - это сообщество системных администраторов, разработчиков и пользователей Linux. Мы ориентируемся, в первую очередь, на новичков. Главная задача сообщества - объединить все вышеперечисленные категории пользователей для обмена опытом и совместного решения возникающих вопросов.

Чтобы получать новые материалы из мира Linux, подпишитесь на канал