Vairāk
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?
390
3
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:
Pēc tam rediģējiet šo failu, lai pievienotu pašās beigās:
piemēram,
ļaus lietotājam
john
izmantot sudopoweroff
,start
unstop
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!
Izmēģiniet:
Tas novērsīs iepriekš minētās kļūdas.
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
, vaisudo.conf
failā (sīkāku informāciju skatietman 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.