Kirjoittaja Aihe: sudo: a terminal is rquired to read the password  (Luettu 6898 kertaa)

AimoE

  • Käyttäjä
  • Viestejä: 2782
    • Profiili
Vs: sudo: a terminal is rquired to read the password
« Vastaus #20 : 22.05.21 - klo:17.31 »
Koodia: [Valitse]
! sudo tomb -q listEntä mikä käyttäjätunnus suorittaa tuon pre-op-trigger-komennon? Tarkista vaikka korvaamalla komento skriptillä, joka kirjoitta $USER -ympäristömuuttujan tiedostoon.

Ainakin kolmannen kerran tässä ketjussa: olen laittanut triggeriin välitulostuksia tiedostoon ja moneen kertaan tarkistanut että se suoritetaan minun käyttäjätunnuksellani ja real uid ja effective uid ovat samat.

AimoE

  • Käyttäjä
  • Viestejä: 2782
    • Profiili
Vs: sudo: a terminal is rquired to read the password
« Vastaus #21 : 22.05.21 - klo:17.44 »
Nyt kun olen korjannut sudoers-virheen, tombin sisällä oleva sudo pyytää edelleen salasanaa. Mikä onkin loogista, kun tomb ei ole binääri vaan skripti. Eihän sudo-oikeus scriptiin voi periytyä komennoille joita se suorittaa, sen enempää kuin s-bittikään.

Tarkennus: ongelmana on siis se, että sudoers-asetus toimii jos käytän tomb-komentoja päätteessä. Mutta kun selain ajaa triggerikoodini, niin sudo huutaa päätettä ja aiheuttaa virheen. Mutta koska olen käännän tomb-komennon statuksen (! tomb -q list), niin backup suoitetaan riippumatta siitä mikä tomb-komennon status olisi ollut jos sen suoritus olisi onnistunut. Saan vain varoituksen, joka sisältää sudo-komennon virheilmoituksen.

nm

  • Käyttäjä
  • Viestejä: 16425
    • Profiili
Vs: sudo: a terminal is rquired to read the password
« Vastaus #22 : 22.05.21 - klo:17.51 »
Ainakin kolmannen kerran tässä ketjussa: olen laittanut triggeriin välitulostuksia tiedostoon ja moneen kertaan tarkistanut että se suoritetaan minun käyttäjätunnuksellani ja real uid ja effective uid ovat samat.

Sori, en huomannut tuota yhtä viestiä lainkaan, joten vastaan vielä siihen:


Nyt kun olen korjannut sudoers-virheen, tombin sisällä oleva sudo pyytää edelleen salasanaa. Mikä onkin loogista, kun tomb ei ole binääri vaan skripti. Eihän sudo-oikeus scriptiin voi periytyä komennoille joita se suorittaa, sen enempää kuin s-bittikään.

Kyllä sudo-kirjautumisen kautta saadut oikeudet periytyvät skriptin sisällä suoritettaville komennoille! Lisäksi skriptin sisällä ajettavat sudo-komennot eivät kysy salasanaa uudelleen, jos skripti on onnistuneesti käynnistetty sudolla. Siksi tätä NOPASSWD-ratkaisua juuri ehdotettiinkin, ja se kyllä toimii ihan takuuvarmasti, kun teet asiat oikein.

Eli vielä kertauksena:

1. Lisää visudolla /etc/sudoers tai /etc/sudoers.d/tomb -tiedostoon toimiva NOPASSWD-asetus  /usr/bin/tomb -skriptille. Asetuksen toimivuuden voi testata komentorivillä ja lisäksi vaikka ajamalla komento ssh:lla, jolloin interaktiivista tty:tä ei ole käytössä ja salasanakysely epäonnistuu, jos sudo sellaista yrittää:

Koodia: [Valitse]
ssh localhost sudo /usr/bin/tomb list

2. Varmista, että tomb-komento suoritetaan sudolla!


Tarkennus: ongelmana on siis se, että sudoers-asetus toimii jos käytän tomb-komentoja päätteessä. Mutta kun selain ajaa triggerikoodini, niin sudo huutaa päätettä ja aiheuttaa virheen. Mutta koska olen käännän tomb-komennon statuksen (! tomb -q list), niin backup suoitetaan riippumatta siitä mikä tomb-komennon status olisi ollut jos sen suoritus olisi onnistunut. Saan vain varoituksen, joka sisältää sudo-komennon virheilmoituksen.

Tuossa triggerissäsi ei vieläkään ole sudoa! Lisää se:

Koodia: [Valitse]
(! sudo tomb -q list

AimoE

  • Käyttäjä
  • Viestejä: 2782
    • Profiili
Vs: sudo: a terminal is rquired to read the password
« Vastaus #23 : 22.05.21 - klo:18.03 »
Nyt iski salama taivaalta. Siis tietysti, sudoers koskee sudoa eikä tombia, joka siis pitää aina suorittaa sudolla. Voi että voi olla aivot solmussa. Sudo siellä, sudo täällä, pkexec vaan puuttuu sekametelisopasta.