Kā novērst kļūdu 'sudo: nav tty un nav norādīta programma askpass'?

Es mēģinu kompilēt dažus avotus, izmantojot make failu. Make failā ir virkne komandu, kas jāpalaiž kā sudo.

Kad es kompilēju avotus no termināļa, viss iet labi, un make tiek apturēts, kad pirmo reizi tiek palaista sudo komanda, gaidot paroli. Kad es ievadu paroli, make atsāk darbu un pabeidz darbu.

Bet es gribētu, lai man būtu iespēja kompilēt avotus NetBeans. Es sāku projektu un parādīju NetBeans, kur atrast avotus, bet, kad es kompilēju projektu, tas dod kļūdu:

sudo: no tty present and no askpass program specified

Pirmajā reizē tā trāpa uz sudo komandu.

Esmu meklējis šo problēmu internetā, un visi man atrastie risinājumi norāda uz vienu: atslēgt šī lietotāja paroli. Tā kā lietotājs, par kuru šeit ir runa, ir root. Es nevēlos to darīt.

Vai ir kāds cits risinājums?

Ja lietotājam tiek piešķirta iespēja izmantot šo komandu bez paroles pieprasīšanas, problēma būtu jāatrisina. Vispirms atveriet čaulas konsoli un ierakstiet:

sudo visudo

Pēc tam rediģējiet šo failu, lai pievienotu pašās beigās:

username ALL = NOPASSWD: /fullpath/to/command, /fullpath/to/othercommand

piemēram,

john ALL = NOPASSWD: /sbin/poweroff, /sbin/start, /sbin/stop

ļaus lietotājam john izmantot sudo poweroff, start un stop bez paroles pieprasīšanas.

Skatiet ekrāna apakšā, lai uzzinātu, kādi taustiņi jāizmanto visudo (starp citu, tas nav vi), un izejiet no programmas bez saglabāšanas, tiklīdz parādās pirmās problēmas pazīmes. Brīdinājums: šī faila sabojāšana radīs nopietnas sekas, rediģējiet uzmanīgi!

Komentāri (8)

Izmēģiniet:

ssh -t remotehost "sudo "

Tas novērsīs iepriekš minētās kļūdas.

Komentāri (5)

sudo pēc noklusējuma nolasa paroli no pievienotā termināļa. Jūsu problēma ir tā, ka nav pievienots termināls, kad tas tiek palaists no netbeans konsoles. Tāpēc jums ir jāizmanto alternatīvs paroles ievadīšanas veids: to sauc par programmu askpass.

Programma askpass nav īpaša programma, bet gan jebkura programma, kas var pieprasīt paroli. Piemēram, manā sistēmā darbojas x11-ssh-askpass.

Lai to izdarītu, ir jānorāda, kuru programmu izmantot, vai nu ar vides mainīgo SUDO_ASKPASS, vai sudo.conf failā (sīkāku informāciju skatiet man sudo).

Jūs varat piespiest sudo izmantot programmu askpass, izmantojot opciju -A. Pēc noklusējuma tā to izmantos tikai tad, ja nav pievienots termināls.

Komentāri (6)