Заблокировано из-за sudo из-за ошибочной конфигурации PAM, вызывающей скачок PAM в стеке

625
not2qubit

Пытаясь смягчить некоторые спам-сообщения PAM /var/log/auth.log, после этого поста я попробовал различные комбинации в /etc/pam.d/sudo. К сожалению, последняя строка, которую я пробовал, полностью блокировала меня от любых операций sudo / su .

session [success=1 default=ignore] pam_succeed_if.so quiet_success user = root uid = 0 ruser = pi 

Ошибка, которую я получаю на CLI:

$ sudo nano sudo sudo: pam_open_session: Permission denied sudo: policy plugin failed session initialization 

с соответствующим /var/log/auth.logсообщением:

May 11 14:56:29 sudo: pi : TTY=pts/0 ; PWD=/etc/pam.d ; USER=root ; COMMAND=/bin/nano sudo May 11 14:56:29 sudo: pam_unix(sudo:session): session opened for user root by pi(uid=0) May 11 14:56:29 sudo: PAM bad jump in stack May 11 14:56:29 sudo: pi : pam_open_session: Permission denied ; TTY=pts/0 ; PWD=/etc/pam.d ; USER=root ; COMMAND=/bin/nano sudo 

Очевидно, что я не могу отредактировать файл обратно, используя sudo для редактирования файла.

Как я могу отредактировать файл назад и выйти из этой ужасной ситуации?

(Это последняя версия Debian Stretch на Raspberry Pi 3B.)

2

2 ответа на вопрос

2
not2qubit

Благодаря системам Linux это было исключительно легко.

Просто запустите любой дистрибутив Linux, в моем случае это Kali VM. Вставьте SD-карту в USB-ридер и подключите ее. 2 раздела Rasbian SD: bootи rootfsраспознаются автоматически. Затем перейдите к /media/<blahblah>/rootfs/etc/pam.d/и sudo редактировать файл. Размонтируйте и положите обратно в свой Pi.

И если бы это не научило вас быть осторожным при работе с PAM, по крайней мере, он думал, что вы должны сделать резервную копию вашей SD-карты или разделов, потому что на зашифрованной FS это, вероятно, не сработало бы!

Разве это не второй абзац (то есть основной пункт) моего ответа? Плюс макет Rasbian SD. (ps. если ваша система зашифрована, сохраните хорошую резервную копию ключа и протестируйте ее! Нет ничего хуже, чем резервная копия, которая не "заработает") Xen2050 5 лет назад 0
Да, и я проголосовал за ваш ответ, даже если я не видел ваш ответ, пока я не исправил его. not2qubit 5 лет назад 0
Ах, имеет смысл, было в основном просто интересно. В любом случае, я обменяю тебе еще одно возражение на галочку? Я пойду первым ;-) Xen2050 5 лет назад 0
1
Xen2050

Если вы можете войти в систему как пользователь с правами на редактирование /etc/pam.d/sudo(возможно, учетной записи администратора или root), просто сделайте это.

В противном случае вам, возможно, придется отредактировать файл, используя другую ОС / систему. У Raspberry Pi все еще есть системный раздел на SD-картах, верно? Таким образом, вы можете выключить Raspberry и использовать другой компьютер для чтения SD-карты и редактирования файла. Или если ваш Raspberry загрузит другую ОС с живого USB.

Там может быть вариант загрузки восстановления (например single), который может дать вам root-права входа ...

Спасибо за идею, но это было первое, что я искал. К сожалению, я никогда не создавал других пользователей на пи, поэтому не было никого (я знаю), кто мог бы получить доступ к этому файлу. Что касается восстановления загрузки на Rpi, IDK, если таковые имеются. not2qubit 5 лет назад 0
Похоже, что Raspberry Pi 3 будет загружаться с некоторых USB, после изменения настроек https://www.raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/msd.md https://www.raspberrypi.org/forums/viewtopic .php? t = 198258. Сохранение открытого корневого терминала может быть хорошей идеей, чтобы предотвратить появление такой же проблемы в будущем, изменить права доступа к отредактированному файлу или разрешить вход в систему во время тестирования. Xen2050 5 лет назад 0