Вопрос или проблема
Краткая история заключается в том, что я могу подключиться к своему устройству по SSH с именем пользователя и паролем, которые должны быть в группе суперпользователей (так что я должен иметь возможность выполнять sudo su
). Проблема в том, что я пытался увеличить лимиты открытых файлов для пользователя и отредактировал /etc/pam.d/common-session-interactive
. Я должен был ввести эту строку:
session required pam_limits.so
но я по глупости ввёл вместо этого эту строку:
session_required pam_limits.so
Обратите внимание на подчёркивание между session и required. К сожалению, настройка sudo
явно пытается загрузить файл /etc/pam.d/common-session-interactive
, и я думаю, что она доходит до этой строки и не справляется. Также, к сожалению, этот файл принадлежит root и доступен только для чтения. Поэтому, чтобы решить свою проблему с sudo su
, мне нужно, чтобы sudo su
работал, чтобы я мог изменить этот файл! Есть идеи, как я могу отредактировать этот файл и исправить проблему?
Используйте su без sudo, чтобы исправить ошибочный ввод в текстовом файле. Реальный пользователь root может выполнить задачу без использования системы sudo.
Ответ или решение
Чтобы решить проблему с ошибкой PAM в sudo
, вызванную неправильным редактированием файла /etc/pam.d/common-session-interactive
, выполните следующие шаги.
1. Понять суть проблемы
При попытке настроить ограничения на количество открытых файлов, была добавлена неправильная запись в файл конфигурации PAM. Вместо корректной строки:
session required pam_limits.so
была введена ошибка:
session_required pam_limits.so
Из-за этой ошибки система не может корректно обрабатывать вызовы sudo
, так как PAM не может прочитать файл настроек и вызывает ошибку.
2. Возможные способы решения
Поскольку ситуация затрудняет использование обычных команд, таких как sudo
, необходимо найти альтернативные пути доступа к системе с правами суперпользователя.
2.1 Использование su
Если вы знаете пароль другого пользователя, который уже имеет права суперпользователя (например, root), вы можете выполнить команду su
для смены пользователя. Если у вас есть этот доступ, выполните:
su -
Введите пароль суперпользователя. После успешного входа вы сможете редактировать файл /etc/pam.d/common-session-interactive
, исправив строку с ошибкой.
2.2 Режим восстановления
Если доступ к суперпользователю через su
невозможен, попробуйте загрузить систему в режиме восстановления. Это делается следующим образом:
- Перезагрузите устройство.
- При загрузке выберите режим восстановления (recovery mode) в меню загрузчика GRUB.
- Войдите в корневую оболочку (root terminal).
- В этом режиме у вас будут полномочия суперпользователя, и вы сможете редактировать необходимые файлы.
Чтобы изменить ошибочную запись в файле, выполните следующие команды:
mount -o remount,rw /
nano /etc/pam.d/common-session-interactive
Теперь исправьте строку на корректную:
session required pam_limits.so
Сохраните изменения и перезагрузите систему.
2.3 Live CD/USB
Если ни один из вышеперечисленных методов не подходит, вы можете использовать загрузочный диск (Live CD или USB) с дистрибутивом Linux:
- Загрузите вашу систему с Live CD/USB.
- Откройте терминал и подключитесь к вашему диску.
Например, если ваш диск подключен к /dev/sda1
, выполните:
sudo mount /dev/sda1 /mnt
Затем редактируйте файл:
nano /mnt/etc/pam.d/common-session-interactive
После внесения изменений перезагрузите систему.
3. Заключение
Проблемы с конфигурацией PAM могут вызывать значительные затруднения в управлении системой. Всегда делайте резервные копии конфигурационных файлов перед внесением изменений и убедитесь, что у вас есть альтернативный доступ для восстановления системы.
Следуя этим шагам, вы сможете успешно восстановить доступ к команде sudo
и продолжить работу с вашей системой.