Şifre komutunda doğrudan sudo su - <someuser> şifresinin nasıl verileceği


0

İçin kabuk komut dosyasında otomatikleştirmek için bir gereksinim var sudo su -<someuser> hangi şifre ister.

IBM AIX sunucuları için doğrudan kabuk komut dosyası şifresinde parola sağlama. Kullanmayı denedim echo <password> | sudo su -<someuser> işe yaramadı. lütfen bu konuda yardımcı olun.

Yanıtlar:


1

Kullanabilir misin :NOPASSWD sudo seçeneği böylece bir şifre gerekmez. Sevmek: %wheel ALL=(ALL) NOPASSWD: ALL / etc / sudoers içinde


1

kullanım -S

man sudo:

-S, --stdin   Komut istemini standart hataya yazın ve şifreyi standart girdiden yerine standart girdiden   Terminal cihazını kullanarak. Şifreyi yeni bir satır karakteriyle takip etmelisiniz.

Böylece kullanabilirsiniz:

echo <myPassword> | sudo -S su <someuser>

Düzenle: Yukarıdaki, Ubuntu testi üzerinde çalışmadı. İkinci su komutu "su" şifre sorgusu sorulduktan sonra oruç tutması gibi görünüyor.

Bir saniye beklemek için bir geçici çözüm yaptım, böylece eko şifreyi doldurdum ve sonra ikinci sudo çalışabilmeli sudo su - foobar:

echo "password" | sudo -S sleep 1 && sudo su - foobar

Debian'ımda su çıkışlar. ancak sudo su - Önbelleğe alınmış kimlik bilgileri sayesinde işten hemen sonra çağrılır. Bu davranışa güveniyorsanız, geçici bir çözüm olabilir.
Kamil Maciorowski

çalışmıyor.
raamsaara

@ raamsaara: tam olarak işe yaramadı? bir hata mı aldın? bu arada, makinemde çalışan bir geçici çözüm eklemek için cevabımı düzenledim.
chloesoe

1

İle expect. bir koçan komut şöyle olabilir:

expect -c '
 log_user 0
 spawn /usr/bin/sudo su - someuser
 expect "*: "
 send "thepassword\n"
 interact
'

Görmek bu cevap benzer bir soruya.


Başka bir yaklaşım ise sudo -A.

  1. Bir dosya oluşturun pass.
  2. Dosyayı yalnızca sizin için erişilebilir duruma getirin: chmod go-rwx pass.
  3. Çalıştırılabilir olmasını sağlayın: chmod u+x pass
  4. Dosyayı düzenleyin ve şifrenizi yazdıran bir komut dosyası yapın:

    #!/bin/sh
    printf '%s\n' 'yourpassword'
    
  5. Şimdi bunu yapabilirsiniz:

    SUDO_ASKPASS="./pass" sudo -A su - someuser
    

Not: Bu durumda, sudo (değil su ); birini kullan sudo istiyor.


Teşekkürler . Ancak, & lt; someuser & gt;
raamsaara

@raamsaara In su sözdizimi. Cevap iyileştirildi.
Kamil Maciorowski
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.