Linux'ta başka bir kullanıcı olarak bir komutu nasıl çalıştırıyorsunuz?


3

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!


Sunucu sağlayıcıdan daha az bozuk bir sudo yapılandırması sağlamasını istemeniz gerekir. IMHO, sudo su kombinasyonu bozuldu ve sudo kullanımının ilk etapta kullanılma amacını yendi (erişimi sınırlandırmak, denetim izlerini sağlamak ve hesap verebilirlik).
Slartibartfast

Bunu bir süre karıştırdıktan sonra, kullanıcıya sudo yapabildiğim için kendi SSH anahtarlarını üretip kullanabileceğimi fark ettim. Yeni bir anahtar oluşturdum ve şimdi sunucuya doğrudan 'foo' olarak SSH yapabilirim.
George

2
Bu, 'sudo su' nun neden bir güvenlik önlemi olmadığını umut ediyor.
Slartibartfast

Yanıtlar:


5

sudo -u foo /dir/foo_user_script.sh


1
Ne yazık ki, bu pek çok açıdan daha iyi cevap olsa da, güvenliği azaltmak için kullanıcı sistemi bozuldu (sudo-l çıkışına bakın).
Slartibartfast
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.