Доступ к учетной записи root необходим для администрирования системы. Поскольку root- это просто еще один пользователь, большинство дистрибутивов позволяет напрямую входить под этой учетной записью. Но, так как, это довольно таки плохая практика, в некоторых системах, например, в Ubuntu, такое действие запрещено по умолчанию.
Учетные записи root не журналируются, поэтому о том какие действия выполнялись с правами root, узнать невозможно. Например, вы что-то испортили вчера, а сегодня пытаетесь об этом вспомнить и подсмотреть некуда. Но еще хуже, если доступ был несанкционированным, будет сложно выяснить, что нарушитель сделал с системой.
Если, все же, учетная запись не заблокирована, и у нее есть пароль, то тогда он должен быть очень сложным, чтобы не быть скомпроментированым. Лучше всего получать доступ к root, используя команду su. При использовании этой команды действия в системе так же не фиксируются, но по крайней мере добавляет в системный журнал запись о том, кто и когда вошел в систему под именем root.
А еще, зная чей-нибудь пароль, с помощью su можно войти под его именем. Для этого используется следующая команда:
$su -имя_пользователя
После чего будет выведен запрос на пароль. Это бывает полезно, чтобы диагностировать проблемы с машиной конкретного пользователя.
Рекомендую, при вводе команды su, использовать полное имя команды, например /bin/su или /usr/bin/su. Это поможет защититься от программ с именем su, которые преднамеренно были изменены злоумышлиником, планирующем собрать неплохой урожай паролей. Бдительность в таких случаях никогда не помешает.
Как было написано выше, учетная запись root может использоваться несколькими администраторами и что было изменено в системе догадаться будет сложно. А что, если вам надо предоставить доступ пользователю, например, только делать резервные копии, не предоставляя при этом свободных прав к другим административным действиям. Здесь нам на помощь приходит команда sudo .
Программа sudo принимает в качестве аргумента командную строку, выполняемую с правами root. Например, следующая команды
$sudo rm -f /tmp
удалит все файлы в директории /tmp, используя права администратора. Во время выполнения, sudo проверяет файл /etc/sudoers, в котором перечислены какие разрешения, кому назначены. Если эта команда разрешена, то sudo обычно запрашивает пароль пользователя и после этого выполняет команду.
Обычно, в течении некоторого времени, после первого ввода пароля, команда sudo позволяет выполнять команда без обязательного ввода пароля. Продолжительность можно менять. Но этот тайм-аут служит небольшой защитой от пользователей, которые оставляют терминал без присмотра.
Использование sudo имеет следующие преимущества:
- Благодаря ведению журнала, легко отследить что и кем было сделано.
- Пользователи могут выполнять только определенные задачи прописанные в файле sudoers.
- Использование sudo быстрее, чем вход в систему с программой su
- Привилегии можно отменить в любой момент.
Самым большим недостатком у такого подхода, является то, что скомпроментированая учетная запись пользователя, практически эквивалента нарушению самой учетной записи root. И здесь остается только проводить разъяснения с пользователями о необходимости создании сложных паролей и хорошей их защите.
Если в вашей компании используется программа sudo, вы вряд ли будете использовать реальный пароль root. Поэтому вы с легкостью можете отключить вход в систему с правами root. Сделать это можно следующей командой:
$passwd -l
После блокировки учетной записи root, она все равно продолжает существовать, но никто не сможет зайти в систему с помощью этой учетной записи. Даже успешно запустить команду su не получится, так как для этого требуется ввод пароля root. Но на физических серверах такую учетную запись все же иметь полезно. Если возникнут проблемы, которые мешают процессу sudo, то всегда можно воспользоваться данной учеткой для диагностирования и решения проблем.
Заключение
Итак, в этой статье, разобрали немного как устроен доступ пользователей на ОС Linux и немного узнали о пользователе root. В следующей статье подробно разберем файл sudoers, как его правильно редактировать и какие параметры пользователей он содержит. А чтобы ничего не пропустить, подписывайтесь здесь или в телеге. Так же приветствуются комментарии, в которых жду от вас пожелания о новых темах для разбора, касаемые системного администрирования.