Я пытаюсь войти в Linux с моим обычным пользователем, а затем стать root, используя скрипт bash. Мой пользователь находится в файле sudoers, поэтому он может стать root.Linux - Bash, чтобы войти в систему, а затем стать root
Нормальный процесс будет следующим:
$ssh [email protected]
[email protected]'s password:
[[email protected] ~]$
[[email protected] ~]$ sudo su -
[sudo] password for regularuser:
[[email protected] ~]$
Я искал во всем, чтобы сделать это, но все, что я мог бы найти не делать то, что мне нужно. Я также пытался использовать #!/Usr/bin/expect, но он не работает.
===========================================================================
Мой рабочий Баш (access.sh) выглядит следующим образом но просит у меня пароль после выдачи "Суда су -" команду:
#!/bin/bash
machine=$1
ssh -t [email protected]$machine "sudo su -"
$ sh access.sh machine
[email protected]'s password:
[sudo] password for regularuser:
[[email protected] ~]# exit
logout
Connection to machine closed.
===========================================================================
Попытка # 1 - Когда я попробовал следующее я получил «/USR/бен/не ожидать: нет такого файла или каталога»
#!/bin/bash
machine=$1
echo "Password?"
read -s password
expect -c '
spawn ssh [email protected]'"$machine"'
expect "Password: "
send '"$password\r"'
'
Попытка # 2 - тот же результат
#!/bin/bash
machine=$1
echo "Password?"
read -s password
/usr/bin/expect << EOF
spawn ssh [email protected]$machine
expect "Password: "
send "${password}\r"
EOF
Попытка №3 - Не работает. Это дает мне «неожиданного EOF при поиске соответствия` „“»
#!/bin/bash
machine=$1
echo "Password?"
read -s password
ssh -t [email protected]$machine "echo $password | sudo -S su -"
$ sh access.sh machine
Password?
[email protected]'s password:
bash: -c: line 0: unexpected EOF while looking for matching `''
bash: -c: line 1: syntax error: unexpected end of file
Connection to vm-all-all-ad-test-packages closed.
Я не могу сделать«sshpass -п „$ пароля“ SSH корень @ $ машины»либо потому, что пароль моего обычного пользователя отличается от root's
Я пробовал практически все, но без успеха.
Любые идеи? !!
Почему вы используете пароли, а не ssh-ключи? По умолчанию sshd разрешает root-логины, поэтому вы можете настроить ssh-ключ на этом компьютере и добавить его в свой 'ssh.config' или использовать переключатель' -i'. Если, как и я, вы не допустили никаких корневых входов через SSH. – paddy
Я боюсь, что это требование и вход в root не разрешены. Нет ключей ssh. – JustQn4