Linux — это многопользовательская операционная система. Здесь пользователь root имеет полную власть над всей системой. По соображениям безопасности его обязательно нужно защищать паролем. В некоторых случаях пользователь root даже отключен. В CentOS по умолчанию включен пользователь root.
Помимо проблем безопасности, доступ к привилегиям root необходим, когда это требуется для обслуживания системы. Команда sudo делает именно это. Он предоставляет привилегию root для команды/сценария, пока выполняется. Пользователи, имеющие доступ к команде sudo, управляются файлом sudoers.
В этой статье вы узнаете, как исправить ошибку CentOS 8 “User is not in the sudoers file”.
Файл sudoers управляет правами пользователя для команды sudo. Эта ошибка появляется всякий раз, когда пользователь без разрешения sudo пытается запустить команду sudo.
Здесь у пользователя «andreyex» нет разрешения на команду sudo.
Решение — добавить пользователя в файл sudoers. Однако системный администратор должен решить, следует ли предоставить пользователю доступ к команде sudo.
Есть несколько способов приблизиться к этому решению. Однако для всех из них требуется предварительная привилегия sudo. Это действие зарезервировано только для системного администратора.
Если вы используете локальную систему, вам потребуется доступ к учетной записи root для выполнения следующих действий:
Войдите в систему под root.
$ su - root
Учетная запись root защищена паролем. Что произойдет, если вы забудете пароль root? Звучит как конец света, но восстановить можно даже пароль root. Узнайте, как восстановить пароль root в CentOS.
Это наиболее эффективный способ предоставить пользователю доступ к привилегиям sudo.
По умолчанию Linux поставляется с колесом группы пользователей. Группа wheel имеет разрешение на выполнение любых действий в системе с привилегиями sudo. Вместо добавления отдельных пользователей, добавление их в группу wheel позволяет упростить предоставление доступа к привилегиям sudo.
Вы можете проверить статус группы wheel в файле sudoers.
$ sudo vim /etc/sudoers
Здесь мы добавим пользовательское «andreyex» в группу wheel.
$ sudo usermod -a -G wheel andreyex
Как проверить результат? Выполните следующую команду. Он напечатает пользователей, зарегистрированных в группе пользователей «wheel».
$ getent group wheel
В качестве альтернативы попробуйте запустить команду sudo от имени пользователя.
$ sudo dnf check-update
Вместо использования группы «wheel» мы можем напрямую объявить пользователя в файле sudoers с привилегиями sudo.
Однако это не лучший способ добиться этого. Если нужно добавить более пары пользователей, тогда управление всеми пользователями может быть непростым. Повторное просмотр файла sudoers может быть утомительным.
Выполните следующую команду, чтобы открыть файл sudoers. Здесь переменная среды «EDITOR» определяет текстовый редактор, который будет использовать команда visudo. Это рекомендуемый и безопасный способ работы с файлом sudoers.
$ sudo EDITOR=vim visudo
Добавьте следующую строку. Здесь мы предоставим пользователю «лезвие» доступ ко всем частям системы с привилегиями sudo.
$ andreyex ALL=(ALL:ALL) ALL
Сохраните файл и закройте редактор. Пользовательский «andreyex» теперь имеет те же привилегии, что и пользователь root.
В Linux права доступа к файлу — одно из основных свойств файла. Он описывает, какой пользователь имеет права на чтение, запись и выполнение для файла или каталога. Поврежденное разрешение файла может привести к неожиданному поведению, которое приведет к этой ошибке. Узнайте больше о правах доступа к файлам.
Следующая команда сбросит права доступа к файлу sudoers.
$ chmod 0440 /etc/sudoers
Перезагрузите систему, чтобы изменения вступили в силу.
Это простая ошибка с простым решением. Эти методы должны работать нормально, пока есть доступ к учетной записи администратора. Если вы работаете в корпоративной среде, попросите системного администратора предоставить права sudo для нужной учетной записи пользователя.