Вопрос или проблема
Я случайно изменил файл root admin и sudo в sudo visudo
.
Теперь с текущим пользователем вернуть это невозможно, потому что я больше не могу получить к нему доступ.
Файл не открывается с командой sudo visudo
. Говорит: пользователь не находится в файле sudoers.
Если я пытаюсь получить доступ к нему с помощью nano /etc/sudoers
, то при попытке снова сохранить файл появляется сообщение о запрете доступа.
$sudo cat /etc/sudoers
...
# Информация о привилегиях пользователя
#root ALL=(ALL) ALL
#...
#%sudo ALL=(ALL) ALL
#
#includedir /etc/sudoers.d
#Члены группы администраторов могут получить права root
#%admin ALL=(ALL) ALL
#
Поскольку вы можете войти как пользователь ‘root’, вам нужно сделать следующее:
chmod 644 /etc/sudoers
Это позволит пользователю ‘root’ изменить файл /etc/sudoers. После этого вам нужно только:
nano /etc/sudoers
и сохранить ваши изменения.
Используйте shellshock, чтобы отправить echo в /etc/passwd
(или sudoers (но я не знаю, насколько сложно было бы удалить комментарий. Я думал, что echo может только добавлять)), чтобы создать пользователя с идентификатором 0. Неограниченный доступ к root или нет. Как создать такую тщательно продуманную команду, мне непонятно.
В качестве альтернативы, вполне возможно сделать chroot из рабочей среды и отредактировать sudoers оттуда. Не уверен, потому что вы сказали, что даже root не может войти. Я не знаю, насколько катастрофичным было бы env x='() { :;}; rm /etc/passwd' bash -c "Теперь ты это сделал"
. Я также не знаю, предоставляет ли ваш дистрибутив средства для cp /etc/skel/sudoers /etc/sudoers
.
Очень похоже на это. Решение может быть там.
Ответ или решение
Если вы случайно изменили файл sudoers и теперь не можете получить доступ к правам sudo, не отчаивайтесь. Существует несколько способов восстановления доступа к этому критически важному файлу. В этой статье мы рассмотрим поэтапный процесс возвращения прав и конечные решения вашей проблемы.
Шаг 1: Вход под пользователем root
Первым делом убедитесь, что у вас есть доступ к пользователю root. Если вы можете войти в систему как root, это упрощает задачу. Это важно, потому что только root может вносить изменения в файл sudoers.
Шаг 2: Проверьте права доступа к файлу sudoers
По умолчанию файл sudoers должен иметь строгие права доступа. Проверьте текущие права доступа к файлу sudoers с помощью команды:
ls -l /etc/sudoers
Вы должны увидеть что-то вроде:
-r--r----- 1 root root 755 Oct 10 10:00 /etc/sudoers
Шаг 3: Изменение прав доступа к файлу
Если доступ к файлу sudoers ограничен, вам нужно будет изменить его права, чтобы файл можно было редактировать. Выполните следующую команду, чтобы дать пользователю root временные права на запись:
chmod 644 /etc/sudoers
Шаг 4: Редактирование файла sudoers
Теперь, когда права изменены, вы можете редактировать файл. Используйте команду:
nano /etc/sudoers
Важно: Внесите минимальные необходимые изменения, чтобы вернуть правам пользователя доступ к sudo. Например, если вы удалили или закомментировали строки, которые содержат информацию о пользователях в sudoers, восстановите их.
Шаг 5: Проверка синтаксиса
После внесения любых изменений рекомендуется проверить синтаксис файла sudoers с помощью следующей команды:
visudo -c
Эта команда проверит файл на наличие синтаксических ошибок. Если вы используете nano
или другой редактор, убедитесь, что вы возвращаетесь к visudo
в будущих редактированиях, потому что visudo
месяц разрешает редактирование только файла sudoers и автоматически проверяет его на ошибки перед сохранением.
Шаг 6: Восстановление прав доступа
После успешного редактирования верните права доступа к файлу sudoers в их первоначальное состояние:
chmod 440 /etc/sudoers
Это обеспечит безопасность файла и защитит его от несанкционированных изменений.
Альтернативные методы восстановления
Если у вас нет доступа к root из-за неправильного конфигурирования, вы можете попробовать следующие методы:
-
Chroot через live-USB: Загрузите систему с live-USB и используйте chroot, чтобы получить доступ к файловой системе установленной ОС и редактировать файл sudoers.
-
Использование режима восстановления: Некоторые дистрибутивы Linux предоставляют режим восстановления, или rescue mode, где вы можете войти как root.
-
Восстановление из резервной копии: Если вы регулярно создаете резервные копии системы или конфигурационных файлов, восстановление файла sudoers из последней резервной копии также может быть вариантом.
Заключение
Неправильные изменения в файле sudoers могут создать большие проблемы с доступом к системе. Однако если вы сможете войти как root, следуя описанным выше шагам, вы сможете восстановить свои права без значительных трудностей. Помните, что при редактировании критически важных системных файлов всегда лучше использовать visudo
, чтобы избежать повреждения конфигурации.