Перейти к содержанию
  • Лента
  • Категории
  • Последние
  • Метки
  • Популярные
  • Пользователи
  • Группы
Свернуть
exlends
Категории
  1. Главная
  2. Категории
  3. Системное Администрирование
  4. «User is not in the sudoers file»: как исправить ошибку в Linux

«User is not in the sudoers file»: как исправить ошибку в Linux

Запланировано Прикреплена Закрыта Перенесена Системное Администрирование
sudolinuxsudoers
1 Сообщения 1 Постеры 6 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • kirilljsxK В сети
    kirilljsxK В сети
    kirilljsx
    js
    написал отредактировано
    #1

    Ошибка «user is not in the sudoers file» — одна из самых частых проблем, с которой сталкиваются пользователи Linux при попытке выполнить команду с правами администратора через sudo. Эта ошибка означает, что ваш пользователь не внесён в список разрешённых или не добавлен в нужную группу.

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

    Почему вообще появляется эта ошибка

    Всё просто: в Linux существует система прав доступа, которая защищает систему от несанкционированных изменений. Не каждый пользователь может выполнять команды, требующие административных привилегий. Доступ к sudo регулируется файлом /etc/sudoers, который хранит информацию о том, кто и что может делать с правами root.

    Когда вы пытаетесь выполнить команду с sudo, система проверяет файл sudoers и ищет там вашего пользователя или группу, в которой вы состоите. Если ничего не находит — выдаёт ошибку. При первой установке Ubuntu или других дистрибутивов первый пользователь часто добавляют в группу sudo или admin автоматически, но иногда этого не происходит, или пользователь был удалён из группы случайно.

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

    Способ первый: добавление в группу sudo (самый простой)

    Это самый рекомендуемый способ, потому что он безопасен, быстр и не требует прямого редактирования файла sudoers. В большинстве дистрибутивов Linux (Ubuntu, Debian, Fedora) файл sudoers уже содержит строку, которая разрешает всем членам группы sudo выполнять любые команды с полными правами.

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

    Потребуется:

    • Открыть терминал
    • Выполнить одну команду от пользователя с правами sudo (или от root)
    • Переавторизоваться или перезагрузиться

    Команда для добавления пользователя в группу sudo:

    usermod -aG sudo имя_пользователя
    

    Замените «имя_пользователя» на реальное имя пользователя, например:

    usermod -aG sudo john
    

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

    Способ второй: прямое редактирование sudoers

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

    Желательно использовать именно visudo, а не обычный текстовый редактор, потому что обычный редактор может отредактировать файл как read-only и сохранения не произойдёт. Visudo также предотвращает одновременное редактирование файла несколькими пользователями.

    Команда для редактирования:

    visudo
    

    Откроется текстовый редактор (обычно nano или vi) с содержимым файла sudoers. Найдите строку, которая разрешает группе sudo выполнять команды:

    %sudo ALL=(ALL) ALL
    

    Если эта строка начинается с символа # (закомментирована), уберите этот символ. Если строки вообще нет, добавьте её в конец файла.

    Для добавления одного конкретного пользователя добавьте такую строку:

    имя_пользователя ALL=(ALL) ALL
    

    Например:

    john ALL=(ALL) ALL
    

    Сохраните файл (обычно Ctrl+X в nano, затем Y и Enter). Visudo сам проверит синтаксис и сохранит файл, если всё в порядке.

    Способ третий: если у вас вообще нет доступа к sudo

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

    Процесс немного отличается в зависимости от дистрибутива. В Ubuntu нужно при загрузке удерживать Shift, чтобы вывести меню GRUB, затем выбрать режим восстановления. В некоторых системах может потребоваться нажать Escape или другую клавишу.

    После загрузки в режиме восстановления вам предложат выбрать опции. Выберите опцию, которая даст вам root-shell (обычно это последний пункт или отдельный пункт с англ. «root»). После этого вы получите доступ к командной строке с правами root.

    Так как файловая система в режиме восстановления часто монтируется в режиме read-only, сначала нужно перемонтировать её в режим записи:

    mount -o remount,rw /
    

    Далее используйте одну из команд выше:

    usermod -aG sudo имя_пользователя
    

    Или отредактируйте sudoers напрямую:

    visudo
    

    После этого перезагрузитесь обычным способом:

    reboot -f
    

    Проверка файла sudoers: что должно быть там

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

    Элемент Описание Что проверить
    Строка для группы sudo %sudo ALL=(ALL) ALL Не закомментирована ли (нет ли # в начале)
    Строка для группы admin %admin ALL=(ALL) ALL Также должна быть не закомментирована
    Права доступа к файлу Должны быть 0440 Команда: ls -l /etc/sudoers
    Синтаксис Без ошибок Редактируйте только через visudo

    Если права доступа нарушены (не 0440), восстановите их:

    sudo chmod 0440 /etc/sudoers
    

    Одна из самых частых проблем — это закомментированная строка разрешения для группы sudo. Если в файле вы видите строку вроде:

    # %sudo ALL=(ALL) ALL
    

    Просто уберите символ # в начале:

    %sudo ALL=(ALL) ALL
    

    После этого сохраните файл и пересоздайте сессию (выйдите и заново авторизуйтесь или перезагрузитесь).

    Особенности в разных дистрибутивах

    В большинстве дистрибутивов процесс одинаков, но есть небольшие различия. В Ubuntu и Debian пользователь добавляется в группу sudo и всё работает. В ALT Linux и некоторых других дистрибутивах используется группа wheel вместо sudo, и файл sudoers может быть не настроен по умолчанию.

    Если вы работаете с ALT Linux, попробуйте добавить пользователя в группу wheel:

    usermod -aG wheel имя_пользователя
    

    Или отредактируйте sudoers и добавьте строку:

    %wheel ALL=(ALL) ALL
    

    В других дистрибутивах (Fedora, CentOS, RHEL) тоже часто используется group wheel. Проверьте документацию вашего дистрибутива, если стандартные способы не сработали.

    Когда ничего не помогает: диагностика

    Если вы следовали всем советам выше, а ошибка всё ещё появляется, проверьте несколько вещей:

    • Действительно ли пользователь был добавлен в группу? Команда: groups имя_пользователя. Должна вывести список групп, включая sudo или admin.
    • Переавторизовались ли вы после добавления в группу? Иногда изменения вступают в силу только после повторного входа или перезагрузки.
    • Нет ли опечаток в имени пользователя? Проверьте точное имя пользователя командой: id.
    • Отредактировали ли вы sudoers через visudo, а не обычный редактор?
    • Не повреждён ли сам файл /etc/sudoers? Синтаксис должен быть идеален, иначе весь файл может не работать.

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

    Что нужно помнить дальше

    После того как ошибка будет исправлена, стоит помнить о безопасности. Группа sudo — это мощный инструмент, дающий полный контроль над системой. Не добавляйте в неё неподозрительных пользователей и периодически проверяйте содержимое файла sudoers, особенно если на компьютере работают несколько человек.

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

    1 ответ Последний ответ
    0

    Категории

    • Главная
    • Новости
    • Фронтенд
    • Бекенд
    • Языки программирования

    Контакты

    • Сотрудничество
    • info@exlends.com
    • Наш чат
    • Наш ТГ канал

    © 2024 - 2026 ExLends, Inc. Все права защищены.

    Политика конфиденциальности
    • Войти

    • Нет учётной записи? Зарегистрироваться

    • Войдите или зарегистрируйтесь для поиска.
    • Первое сообщение
      Последнее сообщение
    0
    • Лента
    • Категории
    • Последние
    • Метки
    • Популярные
    • Пользователи
    • Группы