2013-08-01 19 views
5

Uzak ana bilgisayarda kök özel olmayan çalıştırılmayacak yerel bir komut dosyası var. Sudoers dosyasının betiği home dir (/ home/username/script) komutundan çalıştırmasına izin verdim ve izin verdim. Komut, sonuçlarla birlikte bir txt dosyası oluşturur, ancak çıkışı terminale yönlendirir ve çıkışı yerel makinedeki bir metin dosyasına gönderir.Uzak Linux ana bilgisayarında yerel komut dosyası yürütme

Kullanıcı @ hostname sudo -Sv < script.sh> results.txt komutunu veremiyorum çünkü bu komut, uzak ana bilgisayardan, özellikle de ev dizininden komut dosyasını çalıştırmayacaktır.

Komut dosyası, uzak ana bilgisayara & kopyalamak için bir yolu (tek satır), çıktı alınırken root olarak çalıştırır mı?

sonra çalıştırın, herhangi bir yardım

cevap

2

Kopya scp ile komut için teşekkür ederiz.

scp script.sh [email protected]: 
ssh [email protected] sudo ./script.sh > results.txt 

tek satırda bunu yapmak için: Eğer sudo içine bir şifre girmeniz gerekiyorsa

ssh [email protected] 'cat > script.sh; chmod 755 script.sh; sudo ./script.sh' <script.sh> results.txt 

Ancak bu işe yaramaz. Tüm ssh 's stdin komut dosyasında yer alacaktır. Bunu Expect kullanarak yapmanın bir yolu olabilir, ancak orada fazla uzmanlığım yok.

+0

Hemen yanıt için teşekkür ederiz! Ssh tuşları kaydedilmediğinden, scp'ing ve ssh'ing olduğunda 14 char pswd girmem gerekecek. Tek satırlık bir yolu var mı? –

+0

Sudo için bir şifre girmem gerekmeyecek (betiği çalıştıran). Bu harika çalışacak gibi görünüyor! Ayrıca, zaman ve yardım için çok teşekkürler! –

+0

Sorunun doğru bir yanıtı değil, uzaktan kumandaya basmak değil, uzaktan kumandayla ilgili olmaktı! – Rafareino

12

sudo'yu var, VE köküne sudo izin verilirse, o zaman bu biraz daha az sözdizimi ile çalışır:

ssh -T [email protected] 'sudo su -' < script.sh

+5

+1 Bu kabul edilen cevap olmalı. –