내 일반 사용자와 함께 리눅스 박스에 로그인하고 bash 스크립트를 사용하여 root가 되려고합니다. 내 사용자가 sudoers 파일에있어 루트가 될 수 있습니다.리눅스 - 머신에 로그인하여 루트가되는 Bash.
$ssh [email protected]
[email protected]'s password:
[[email protected] ~]$
[[email protected] ~]$ sudo su -
[sudo] password for regularuser:
[[email protected] ~]$
내가 이렇게 모든 것을 검색하지만 난하지 않습니다 찾을 수있는 모든 내가 필요 정확히 :
일반적인 프로세스는 다음과 같은 것입니다. #!/usr/bin/expect를 사용해 보았지만 작동하지 않습니다. 을 다음과 같이
===========================================================================
내 작업 배쉬 (access.sh)입니다하지만 "스와 sudo는 -"를 발행 한 후 암호 나에게 묻는다 명령 :
#!/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 - 언제 는 I가있어 다음과 같은 시도 "는/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 -p"$ 암호 "ssh를 뿌리 @의 $ 기계를"나를 준다 루트의
나는 거의 모든 것을 시도했지만 성공하지 못했습니다.
아이디어가 있으십니까? !!
왜 ssh 키가 아닌 암호를 사용하고 있습니까? 기본적으로 sshd는 루트 로그인을 허용하기 때문에, 당신은 그 머신에 ssh 키를 설정하고 그것을'ssh.config'에 추가하거나'-i' 스위치를 사용할 수 있습니다. 나처럼 SSH를 통한 루트 로그인을 막지 않는 한. – paddy
이것이 필요하지 않으며 루트 로그인이 허용되지 않습니다. ssh 키는 사용되어서는 안됩니다. – JustQn4