LINUX.ORG.RU
ФорумAdmin

Восстановить shell root-у


0

1

Ситуация такая - закозлил руту shell в passwd - пока другому пользователю устанавливал (и проблема была замысловатая, но решилась) случайно перебил shell руту в имя того самого пользователя, пусть будет user01. Доступ к серверу через ssh. Собственно смысл вышеизложенной операции был именно в том чтобы пустить user01 в ssh т.к. у него был фейковый shell (изначально учетка была для фтп) и его не пускало - и вот пока ему настроил нормально всё закозлил учетку рута.

Теперь блин пипец, не знаю что делать как восстановить. Причём под user01 я могу зайти в ssh, но это не рут, он не в sudousers, su ругается что мол не могу выполнить user01 (ну понятно пытается его как шелл использовать). Причём есть параметр перебития shell-а в su -s, но в man так и написано что если у пользователя (т.е. рута) шелл фейковый, то он будет его игнорировать. Обидно что и пароль известен root-а собственно, но сделать ничего не могу. Есть какие то варианты о которых я не подозреваю?

Я себе так в ногу не стрелял, но 100 % решение в вашем случае, это загрузиться с LiveCD, смонтировать корень и поправить файл.

С другой стороны, можете попробовать смонтировать по sftp (sshfs) файловую систему сервера от имени root и отредактировать /etc/passwd, но это предположение.

kostik87 ★★★★★ ()
Ответ на: комментарий от kostik87

еххх, комп у хостера, выделенный сервак. придется к ним обращаться видимо да... пипец потеря времени. в sftp не пустит т.к. затея изначальная и была в том чтобы user01 дать доступ к sftp, ибо по старинке он был ftp-шный юзер с перебитым shell на фейковый, и sftp его как раз и не пускал. Поэтому я и начал херачить. А там загвоздочка еще была одна с PAM permission глюком и вот пока херачил закозлил руту. Ехх...

aa_dav ()
Ответ на: комментарий от anonymous

«Причём есть параметр перебития shell-а в su -s, но в man так и написано что если у пользователя (т.е. рута) шелл фейковый, то он будет его игнорировать. » (с)

aa_dav ()

su -c «usermod -s /bin/bash root» пойдет? Или тоже не заработает?

Kiborg ★★★ ()
Ответ на: комментарий от Kiborg

su рубит на корню сразу же «cannot find user01» и что бы там ни было в параметрах идет отлуп. самое хреновое что так и написано что если у пользователя (т.е. рута) фейковый shell, то будут полностью проигнорированы и -permissive и -s и вообще. Т.е. наотрез. Капец какой то. Возможно sudo бы помог, т.к. он не пытается переключить окружение, но как назло user01 не в sudousers. -m да тоже не работает, всё равно пытается выполнить фейковый шелл, как ни странно блин.

aa_dav ()
scp root@server:/etc/.passwsd .
vi .passwd
scp .passwd root@server:/etc/.passwd

не поможет?

naszar ()
Ответ на: комментарий от Kiborg

В ./user01 нужно написать примерно так:

#!/bin/bash
/bin/bash
Kiborg ★★★ ()
Ответ на: комментарий от teod0r

Вероятно! Я просто написал первое пришедшее в голову, хотя получилось не очень красиво :) Но я проверил: создал пользователя, забил ему шелл в passwd - у меня сработало.

Kiborg ★★★ ()

su -c '/lib64/ld-linux-x86-64.so.2 /bin/bash'

selivan ★★★ ()

В общем решили проблему через техподдержку хостера. Варианты крутящиеся вокруг su сразу говорю что нерабочие изначально. user01 не имеет доступа к корневой системе поэтому аппетитный вариант с созданием jucomftp, реально интересный наверное тоже у меня не получился бы. Хотя там надо смотреть может где то он смог бы создать, х/з. Тем не менее ладно, проблема решена по хардкорному варианту, всем спасибо.

aa_dav ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.