Kapatma “tty mevcut değil ve herhangi bir askpass program belirtilmemiş”?


1

Birden fazla Mac'te uzaktan bir kapatma komut dosyası çalıştırmaya çalışıyorum. Ssh üzerinden başlatmak için kullandığım komut:

ssh ADMIN@mac123 'bash -s' sudo < ./documents/ShutdownUPTIME.sh

Elbette benden doğru yazdığım sudo şifresini soruyor. Ondan sonraki tek mesaj:sudo: no tty present and no askpass program specified

Bunu nasıl düzeltebileceğime dair fikrin var mı? Benim kullanıcı kesinlikle bir süper kullanıcı

Yanıtlar:


2

Eğer ile bash çağrısı içinde bir komut çalıştırmayı denediğinizde hata iletisi görüntülenir sudokullanıcı rağmen ve ADMINhedef sistem üzerinde mac123birlikte komutları çalıştırmak için izinlere sahip sudo, seçenek NOPASSWDbu özel kullanıcı (en çok belirtilmemiş /etc/sudoers).

Sistemin kullanıcıyı uyarması ve klavyeden parolanın girmesini beklemesi gerekir, ancak hiçbir terminal takılmadığı için istemi sonsuza dek askıda tutar.

Böyle bir duruma karşı bir önlem olarak, sistem aldığınız hata iletisiyle başarısız olur.


Dünün cevabını anlamak için zaman aldıysanız :

sağlanan YÖNETİCİ sahiptir şifresiz ) sudo kapatma izinlerini veya macxxx makinedeki tüm komutları

Bu soruna rastlamazsın.

Komut dosyanızı değiştirmelisiniz:

...
if [ $DAYS_UP -ge ${MAX_UPDAYS} ];then
    echo Mac is going to shutdown 
    sudo shutdown -h now
else
...

Ve sudoers dosyasını, içerecek şekilde düzenleyin mac123(örneğin, komut dosyasındaki komutla eşleşmelidir):

ADMIN ALL=(ALL) NOPASSWD: /sbin/shutdown -h now

Programı kullanarakvisudo yapmanız gerektiğini unutmayın , aksi halde sisteminizi tamamen bozacaksınız.


Alternatif olarak, SUDO_ASKPASSortam değişkenini kullanabilir ve şifreyi (bir hata mesajının ikinci kısmı) sağlayan bir betiği gösterebilirsiniz . Bu yöntemi önermiyorum.

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.