Я подключаюсь по SSH к серверу с помощью:
ssh user@host
и затем я меняю статус пользователя root с помощью:
sudo -s
указав свой собственный пароль, а не пароль пользователя root - насколько я понимаю, это работает, потому что я нахожусь в файле sudoers.
Можно ли как-то войти в систему по SSH и переключиться на пользователя root за один шаг, даже если у меня нет пароля пользователя root?
Дело в том, что я хотел бы избежать необходимости вводить пароль дважды.
решение1
У вас есть 2 простых способа добиться этого:
- Вы позволяетекореньпользователь может войти через ssh, вы можете сделать это, отредактировав файл
/etc/ssh/sshd_config
и установивPermitRootLogin
значениеистинный, это позволит пользователю root подключаться через ssh. - Вы создаете пользовательский скрипт для вашего пользователя ssh, чтобы автоматически входить в систему как root. Это можно сделать через файл
/etc/passwd
, вы заметите, что ваш пользователь будет выглядеть примерно так:
your_user:x:1001:1001:Oqhax,,,:/home/your_user:/bin/bash
Чтобы запустить пользовательский скрипт при входе в систему, вам нужно изменить часть /bin/bash
и добавить свой собственный скрипт, который будет выполнять любой нужный вам код. Это может включать что-то вроде sudo -s, а затем в конце вашего пользовательского скрипта вы также можете вызвать /bin/bash
еще раз, я полагаю, так что это passwd
будет выглядеть примерно так:
your_user:x:1001:1001:Oqhax,,,:/home/your_user:/bin/your_script
Помните, что второй вариант повлияет на поведение вашего входа по SSH, поэтому, чтобы проверить это, убедитесь, что вы можете справиться с ошибкой и фактической невозможностью войти в систему под своим пользователем, поэтому убедитесь, что у вас есть бэкдор-доступ по SSH через другого пользователя или root, как указано в варианте 1, по крайней мере временно, чтобы вы могли снова войти в систему и исправить любые ошибки, пока настройка не заработает.
Обновлять:В продолжение комментариев ниже, стоит отметить, что это влияет не только на вход в систему по ssh, но и на любой вход в систему этого пользователя (я подошел к этому вопросу, предполагая, что ваше требование заключается в том, чтобы этот пользователь всегда входил как root, и вы не хотите, чтобы реальный пользователь root входил в систему через ssh). Также стоит отметить, что это более простое решение по сравнению с тем, что могло бы быть гораздо более жестким и сложным, применимым только к SSH, ваш вопрос не вдается в подробности.
Как упоминалось в комментариях, вы также можете добиться того же поведения, просто /etc/ssh/sshrc
я предпочитаю редактировать сырой /etc/passwd, чтобы в будущем было очень очевидно, что происходит, и это требует от вас принятия во внимание последствий, хотя sshrc
это здорово, но делает устранение неполадок в будущем немного сложнее, если вы случайно забудете, как вы настроили систему, что, будем честны, случается часто. Но это действительно хорошая привычка - вообще не раскрывать пользователя root, это даст вам гораздо больше гибкости в будущем и возможность пробовать разные вещи и настраивать свои разрешения sudoer.
Надеюсь это поможет