Поиск по сайту:

Как добавить пользователя в файл sudoers в Linux


Резюме: если вам говорят, что пользователя нет в файле sudoers, вы можете добавить пользователя sudo с помощью команды usermod. Чтобы контролировать, что пользователь может делать с помощью sudo, отредактируйте файл sudoers с помощью visudo.

Если команда sudo в Linux выдает вам сообщение о том, что пользователя «нет в файле sudoers», вам нужно попасть в список «sudoers». Мы рассмотрим добавление пользователя в sudoers в Ubuntu и других дистрибутивах Linux, а также редактирование файла sudoers.

Почему меня нужно добавить в файл sudoers?

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

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

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

Команда sudo — это Linux-эквивалент крика «Shazam». Когда страшные вещи заканчиваются, вы отказываетесь от своего сверхмощного альтер-эго и возвращаетесь к своему обычному скучному «я».

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

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

mary is not in the sudoers file. This incident will be reported.

Это кажется достаточно простым. Наш пользователь mary не может использовать sudo, потому что ее нет «в файле sudoers». Итак, давайте посмотрим, как мы можем добавить ее, сделав ее пользователем sudo.

Как открыть файл sudoers

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

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

Обратите внимание, что visudo не является редактором, он запускает один из доступных редакторов. В Ubuntu 22.04, Fedora 37 и Manjaro 21 visudo запустил nano. Это может быть не так на вашем компьютере.

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

В любом случае нам нужно использовать visudo.

Добавьте пользователя sudo в Ubuntu и другие дистрибутивы Linux

У нас есть два пользователя, которым требуется доступ к привилегиям root для выполнения своих рабочих ролей, поэтому мы добавим их в sudoers. Это Том и Мэри. Мэри должен иметь доступ ко всему, что может сделать root. Тому нужно только устанавливать приложения.

Давайте сначала добавим Мэри в группу sudoers. Мы можем сделать это в Ubuntu и большинстве других дистрибутивов Linux таким же образом, запустив visudo.

sudo visudo

Прокрутите редактор вниз, пока не увидите раздел «Спецификация привилегий пользователя». Ищите комментарий, который говорит что-то вроде «Разрешить членам этой группы выполнять любую команду».

Нам сказали, что члены группы sudo могут выполнять любую команду. Все, что нам нужно знать в случае с Мэри, — это название этой группы. Это не всегда sudo ; это может быть wheel или что-то еще. Теперь, когда мы знаем название группы, мы можем закрыть редактор и добавить Мэри в эту группу.

Мы используем команду usermod с параметрами -a (добавить) и -G (имя группы), чтобы добавить пользователей в sudoers. Параметр -G позволяет нам назвать группу, в которую мы хотим добавить пользователя, а параметр -a указывает usermod добавить новую группу в список существующих групп, в которых этот пользователь уже состоит.

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

sudo usermod -aG sudo mary

В следующий раз, когда Мария войдет в систему, у нее будет доступ к sudo. Мы вошли в систему и пытаемся отредактировать файл таблицы файловой системы «/etc/fstab». Доступ к этому файлу закрыт для всех, кроме root.

sudo nano /etc/fstab

Редактор nano открывается с загруженным файлом «/etc/fstab».

Без привилегий sudo вы сможете открыть это только как файл только для чтения. У Мэри больше нет этих ограничений. Она может сохранить любые сделанные ею изменения.

Закройте редактор и не сохраняйте внесенные изменения.

Ограничьте привилегии sudo, отредактировав файл sudoers

Другому нашему пользователю, Тому, будет предоставлено разрешение на установку программного обеспечения, но он не получит всех привилегий, которые были предоставлены Мэри. Мы можем сделать Тома пользователем sudo, не давая ему никаких привилегий.

Нам нужно отредактировать файл sudoers.

sudo visudo

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

Добавьте эти строки ниже этого раздела.

# user tom can install software
tom     ALL=(root) /usr/bin/apt

Первая строка — это простой комментарий. Обратите внимание, что между именем пользователя «tom» и словом «All» есть вкладка.

Вот что означают элементы в строке.

  • tom: название пользовательской группы по умолчанию. Обычно это то же имя, что и имя их учетной записи пользователя.
  • ALL=: это правило применяется ко всем хостам в этой сети.
  • (root): члены группы «tom», то есть пользователь Tom, могут получить привилегии root для перечисленных команд.
  • /usr/bin/apt: это единственная команда, которую пользователь Том может выполнять как root.

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

Давайте зарегистрируем Тома и посмотрим, получим ли мы ожидаемое поведение. Попробуем отредактировать файл «/etc/fstab».

sudo nano /etc/fstab

Эта команда отклонена, и нам говорят, что «пользователю tom не разрешено выполнять ‘/usr/bin/nano /etc/fstab’ как root…»

Это то, чего мы хотели. Предполагается, что пользователь Том может использовать менеджер пакетов apt. Давайте удостоверимся, что они могут это сделать.

sudo apt install neofetch

Команда успешно выполнена для Тома.

Тот, кто держит эту команду

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

Даже если вы единственный пользователь на своем компьютере, стоит рассмотреть возможность создания еще одной учетной записи пользователя и добавления ее в качестве пользователя sudo . Таким образом, если вы когда-нибудь обнаружите, что ваша основная учетная запись заблокирована, у вас будет другая учетная запись, с которой вы можете войти, чтобы попытаться исправить ситуацию.