Команда sudo – администрирование системы

В Unix-подобных операционных системах должен быть привилегированный пользователь – суперпользователь, он же администратор. Логин его учетной записи – root, а домашний каталог находится в /root. Этот пользователь предназначен для администрирования системы, а значит обладает правами на операции с системными файлами, установку программного обеспечения, создание и удаление других пользователей, предоставление им различных доступов.

В более ранних дистрибутивах GNU/Linux, возможно и некоторых сейчас, при установке операционной системы, кроме того что создавался обычный пользователь, надо было задать пароль для root'а. После этого войти в систему можно было как под юзером, так под администратором.

Это создавало дополнительную опасность для системы. Бесконтрольное манипулирование файлами администратором или вход под root'ом злоумышленника могли привести к краху системы. Так выполнение под админом команды rm -rf / ведет к удалению всех файлов.

Поэтому во многих современных дистрибутивах Linux учетная запись суперпользователя отключена, хотя она имеется в системе. Ее можно включить, задав для root'а пароль. Однако этого делать не рекомендуют.

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

Используется команда sudo следующим образом:

sudo команда параметры_команды

Допустим, нам надо отредактировать конфигурационный файл hosts. Редактировать мы его планируем в консольном текстовом редакторе nano. Если выполнить команду nano /etc/hosts, файл откроется, но мы не сможем сохранить изменения в нем, так как владельцем файла является root, а все остальные могут только читать файл.

Открытие файла без прав администратора

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

Открытие файла с правами администратора

Sudo-сессия сохраняется какое-то время. Поэтому выполнение последующих команд с использованием sudo может не требовать ввода пароля.

Если требуется более длительное время работы с правами администратора, то одним из вариантов является команда sudo -s. Вы перейдете в режим суперпользователя, в приглашении командной оболочки Linux символ доллара $ заменяется на знак решетки #. Вернуться в обычный режим можно, выполнив команду exit.

Режим администратора

В примере мы переходим в режим администратора, копируем файл в каталог root'а. Под обычным пользователем мы не можем даже просматривать этот каталог.