Bir şifre olmadan 'foo' sudo yapabileceğim bir linux sunucusuna erişimim var:
sudo su - foo
'Foo' kullanıcısı olduğumda, böyle bir betiği çalıştırabilirim:
/dir/foo_user_script.sh
'Foo_user_script' sadece foo kullanıcısı tarafından çalıştırılabilir ve benim kullanıcı tarafından değil. Böylece komut dosyasını önce 'foo' kullanıcısına değiştirip sonra komut dosyasını çalıştırarak çalıştırabilirim.
Ancak, Java SSH istemcisini kullanarak bazı işlemleri otomatikleştirmeye çalışıyorum ganymed . Ganymede'nin skalası, birden çok komut çalıştırmak için şöyle bir yapı kullanmam gerektiğini söylüyor:
Session.execCommand("echo Hello && echo again")
Böyle bir şey denedim, ancak ikinci komut (foo_user_script) çalıştırılmadı:
Session.execCommand("sudo su - foo && /dir/foo_user_script.sh")
Bence bu işe yaramadı çünkü su yeni bir kabuk çıkardı.
/Dir/foo_user_script.sh betiğini tek bir komutta çalıştırmamın bir yolu var mı?
Not:
"sudo -l" bana şunu gösteriyor:
(root) NOPASSWD: /bin/su - foo
Yardım için teşekkürler!