Зачем и как редактировать файл Sudoers в Linux

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

Что такое файл sudoers?

Файл sudoers - это текстовый файл, который находится в "/ etc / sudoers". Он контролирует, как sudo работает на вашем компьютере. Вы, вероятно, знакомы с основной ролью sudo в повышении прав вашей текущей учетной записи до root, суперпользователя во всех Unix-системах. Это позволяет вашим пользователям выполнять команды, которые в противном случае были бы запрещены.

Когда мне нужно редактировать файл sudoers?

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

Как я могу редактировать sudoers?

Никогда не редактируйте файл sudoers в обычном текстовом редакторе. Это может привести к одновременному редактированию и повреждению файлов, что потенциально может лишить администратора доступа. Sudoers необходимо отредактировать, запустив visudo в Терминале, например:

редактировать-sudoers-file-change-sudo-timeout-visudo-command

Обратите внимание, что для запуска visudo необходимо использовать sudo. Это откроет файл sudoers в текстовом редакторе по умолчанию в Терминале (по умолчанию, nano).

редактировать-sudoers-file-change-sudo-timeout-sudoer-file-in-vim

Что может сделать изменение файла sudoers?

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

Измените время ожидания sudo

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

1. Запустите sudo visudo, как указано выше.

2. Нажмите Alt + /, чтобы перейти к концу документа. Если вы используете Vi или Vim, вместо этого нажмите Shift + G.

редактировать-sudoers-file-change-sudo-timeout-jump-to-end

3. Создайте новую строку внизу документа и добавьте следующую строку:

редактировать-sudoers-file-change-sudo-timeout-add-default-timeout

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

Вы также можете установить тайм-аут на "-1", что дает вам бесконечный льготный период. Не делай этого. Это удобный способ однажды случайно взорвать вашу систему.

4. Нажмите Ctrl + o для сохранения и Ctrl + x для выхода.

Ограничьте, кто может использовать sudo и для чего

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

В каждом файле sudoers будет следующая строка:

Это позволяет пользователю root на ALL хостах, использующих ALL пользователей, выполнять команды ALL. ALL - это специальное значение в файле sudoers, означающее "без ограничений". Синтаксис следующий:

Если вы хотите добавить другого пользователя как root, просто скопируйте строку root и измените пользователя следующим образом:

Для большего контроля вы можете добавить строку, подобную следующей, которая разрешает только пользователю "alexander" запускать apt-get update.

Поставьте "%" перед пользователем, и он определит группу. Строка ниже позволит каждому пользователю в группе "admin" иметь разрешения корневого уровня. Это будет группа, определенная вашими группами разрешений ОС.

Измените редактор visudo

В зависимости от того, какую версию Linux вы используете, есть два основных способа изменить редактор.

Для Ubuntu вам нужно запустить команду Терминала ниже:

Вы увидите что-то вроде следующего:

Если вы хотите выбрать vim в качестве редактора visudo по умолчанию для nano, вы должны нажать его номер выбора 3, а затем нажать Enter.

Для других версий Linux вам нужно добавить новую строку в файл "~. / Bashrc", как показано ниже:

Затем сохраните файл. Это установит ваш редактор visudo на vim.

Заключение

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

13 комментариев

  1. Является ли файл "sudoers" функцией ядра или отдельных дистрибутивов? Я использую PCLinuxOS, и в нем нет файла "sudoers".


    Что происходит, когда вы запускаете sudo visudo?

    1. Я получаю сообщение "sudo - command not found", а мой менеджер пакетов показывает "sudo" как не установленный.
      Когда я запускаю "visudo" от имени пользователя root, открывается пустой файл sudoers.

      За годы использования Linux я редко использовал команду "sudo". Я предпочитаю явно входить в систему как root для выполнения любых административных задач.

      1. Вы также можете запустить "su" вместо "sudo", которое должно быть в каждом дистрибутиве. Вы запустите их как две отдельные команды: введите "su", нажмите Enter, введите пароль, запустите "visudo" из корневой оболочки. Вы также можете войти в систему с правами root, а затем запустить visudo, если это рабочий процесс, с которым вы более знакомы.


    У вас установлен пакет "sudo"? Возможно, вам сначала придется установить "sudo". Если это так, возможно, вам также придется добавить себя в файл "sudoers" (как указано выше) или добавить себя в группу "wheel" (я думаю, наиболее часто). Для всего вышеперечисленного вам потребуется используйте "su", чтобы работать как Root, пока у вас не будет доступа sudo. Как только вы обернете его головой, в нем станет больше смысла!

  2. У меня есть один на Монетном дворе, но я не обманул его.

  3. Я единственный, кто использует и когда-либо будет использовать мой компьютер. Есть ли у меня причина редактировать файл sudoers?


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

  4. Могу ли я получить версию этой статьи в формате PDF? Мне он понравился, и я хотел бы сохранить ссылку на него для использования в будущем. (Зачем и как редактировать файл Sudoers в Linux)

    Рик


    Почему бы тебе просто не добавить его в закладки?


    Есть отличный инструмент под названием Print Friendly. Вы можете пользоваться сайтом, но у меня есть расширение для браузера. Он сохраняет веб-сайты в виде файлов PDF, которые легко распечатать, с удалением добавлений и лишних изображений. Это также дает вам полный контроль над тем, какие элементы страницы удаляются.

    САЙТ: https://www.printfriendly.com/

  5. Разве sudo не установлен по умолчанию на ВСЕХ дистрибутивах Linux? ... или это просто разновидности Debian / Ubuntu? ... (Я никогда не видел и не использовал sudo на своих машинах Fedora или CEntOS ... ни на моем компьютере OpenSuSE, только Ноутбук с Linux Mint у меня есть)… ..Я думаю, что, как и "X11 ″… .." crond… ..cups или modprobe, они будут использоваться при стандартной простой установке любого дистрибутива Linux. По крайней мере, я так понимаю?…


    "Разве sudo не установлен по умолчанию на ВСЕХ дистрибутивах Linux?"
    Очевидно, нет. Я использую PCLinuxOS, а sudo не установлен по умолчанию, но iy доступен для установки из репозиториев. Однако PCLOS допускает явный вход в систему с правами root, поэтому sudo не требуется для выполнения задач администратора.

Комментарии закрыты.