Как исправить ошибку «sudo: /etc/sudoers принадлежит uid 1000, должно быть 0» в Ubuntu

Убунту 20

В мире Ubuntu ошибки — обычное явление. Одна из таких ошибок: «sudo: /etc/sudoers принадлежит uid 1000, должно быть 0». Эта ошибка указывает на то, что владелец файла sudoers был изменен, что привело к сбою sudo. Целью этой статьи является предоставление подробного руководства о том, как исправить эту ошибку.

Понимание ошибки

Прежде чем мы углубимся в решения, важно понять, что означает сообщение об ошибке. В Linux каждый файл и каталог назначается владельцу и группе. Файл /etc/sudoers должен принадлежать пользователю с идентификатором (UID) 0, который является пользователем root. Если владелец переходит к другому пользователю (в данном случае UID 1000), операции sudo завершаются неудачно, что приводит к появлению сообщения об ошибке.

Способ 1: использование pkexec

Первый способ устранить эту ошибку — использовать pkexec. Эта команда позволяет авторизованному пользователю выполнять команды от имени другого пользователя. Здесь мы будем использовать его, чтобы изменить владельца файла sudoers обратно на корень.

pkexec chown root: root /etc/sudoers /etc/sudoers.d -R

В этой команде chown меняет владельца файлов, root:root устанавливает владельца и группу как root, /etc/sudoers /etc/sudoers.d — это файлы и каталоги, право собственности на которые мы хотим изменить, а -R применяет рекурсивно изменяет каталоги и их содержимое.

Если pkexec не установлен в вашей системе, вы можете установить его, запустив sudo apt-get install policykit-1.

Способ 2: использование визуала

Второй метод предполагает использование visudo. Эта команда безопасно открывает файл sudoers для редактирования.

pkexec визудо

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

Способ 3: использование /etc/rc.local (для виртуальной машины VirtualBox, управляемой Vagrant)

Если вы используете виртуальную машину VirtualBox, управляемую Vagrant, вы можете использовать файл /etc/rc.local, чтобы исправить эту ошибку. Вот как:

  1. Создайте или отредактируйте файл /etc/rc.local как бродячий пользователь.
  2. Добавьте в файл следующие команды:

chown -R root:root /etc/sudoers.d chown root:root /etc/sudoers chmod 440 /etc/sudoers

  1. Отключитесь от SSH, закройте виртуальную машину и запустите ее снова, чтобы применить изменения.

Способ 4. Использование пользователя root (если установлен пароль root)

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

су – корень

Эта команда переключается на пользователя root. Став пользователем root, выполните следующие команды:

chown root:root /etc/sudoers chmod 440 /etc/sudoers chown -R root:root /etc/sudoers.d chmod 755 /etc/sudoers.d chmod 440 /etc/sudoers.d/*

Эти команды изменяют владельца файла sudoers и его каталога на root и устанавливают правильные разрешения.

Способ 5. Завершение работы VSCode (для подсистемы Windows для Linux)

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

Заключение

Ошибка «sudo: /etc/sudoers принадлежит uid 1000, должен быть 0» может стать препятствием, но ее можно исправить. Методы, изложенные в этой статье, должны помочь вам устранить ошибку и восстановить контроль над операциями sudo. Всегда помните, что будьте осторожны при изменении владельца файла и разрешений, поскольку неправильные настройки могут привести к дальнейшим проблемам в системе.

Команда sudo в Ubuntu используется для выполнения команд с правами администратора. Он позволяет авторизованным пользователям выполнять задачи, требующие прав root или суперпользователя.

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

Команда pkexec используется для выполнения программ от имени другого пользователя, обычно от имени пользователя root. Он предоставляет возможность выполнять административные задачи, сохраняя при этом безопасность, запрашивая пароль пользователя.

Вы можете установить pkexec, выполнив в терминале команду sudo apt-get install policykit-1. Эта команда установит необходимый пакет, включающий pkexec.

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

Вы можете открыть файл sudoers с помощью visudo, выполнив команду pkexec visudo в терминале. Эта команда откроет файл sudoers в текстовом редакторе по умолчанию, указанном вашей системой.

Правильные разрешения для файла sudoers установлены на 440, что означает разрешения на чтение и запись для владельца (root) и разрешения только на чтение для группы и других. Для каталога sudoers (/etc/sudoers.d) должны быть установлены разрешения 755, что означает разрешения на чтение, запись и выполнение для владельца, а также разрешения на чтение и выполнение для группы и других.

Вы можете переключиться на пользователя root, выполнив в терминале команду su – root. Эта команда предложит вам ввести пароль root, и после аутентификации вы войдете в систему как пользователь root.

Если вы столкнулись с ошибкой «sudo: /etc/sudoers принадлежит uid 1000, должно быть 0» после закрытия VSCode в WSL2, полностью завершите экземпляр VSCode или перезагрузите систему. VSCode может держать папку открытой, предотвращая необходимые изменения владельца файла.

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

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *