Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  4 5070
Driver med et Python-skript. Det er FLASK.

Kode

def shellexec():
 request="apt-get update"
 shellexec=os.system("sudo " + request)
Variabelen request kommer til å være dynamisk på et senere tidspunkt.
Jeg har lagt inn i /etc/sudoers-fila at et par kommandoer skal gå gjennom uten at jeg blir spurt om passordet til sudo-brukeren. Kommandoene er ikke kritiske.

Problemet er at hvis skriptet av en eller annen grunn likevel skulle bli spurt om sudo-passordet, vil skriptet stå fast på passord-dialogen. Jeg ønsker at skriptet skal avbryte og gi en tilbakemelding til brukeren dersom man blir spurt om sudo-passordet.

Jeg har prøvd og feilet litt diverse løsninger hvor jeg søker etter stringen "password" i stringen request, uten hell.

Tips?
Sist endret av Tysteren; 21. juli 2021 kl. 16:18.
Bruk "sudo -n", da bare feiler den med exit code 1 om du trenger passord.
Trigonoceps occipita
vidarlo's Avatar
Donor
Det høyres litt ut som eit X-Y-problem. Kva er det scriptet skal gjere?
Trådstarter
Sitat av Goophy Vis innlegg
Bruk "sudo -n", da bare feiler den med exit code 1 om du trenger passord.
Vis hele sitatet...
Perfekt. Tusen takk! Da skal jeg finne ut hva jeg trenger for å lese av exit-coden istedenfor feilmeldingen.

Sitat av vidarlo Vis innlegg
Det høyres litt ut som eit X-Y-problem. Kva er det scriptet skal gjere?
Vis hele sitatet...
Jeg prøver å lage et skript som skal generere konfigurasjons-filer til VPN-klienter automatisk. Dette skriptet skal bli lagt inn på flere maskiner.

Et av stegene i prosessen med genereringen, er å lese fra nåværende VPN-konfigurasjon hvilke IP-adresser som er i bruk akkurat da, for så å la være å lage en konfigurasjon som bruker en av IP-adressene som er i bruk.

For å få vite hvilke IP-adresser som er i bruk, må jeg be skriptet kjøre en kommando som lister opp IP-adressene som er i bruk. Denne kommandoen krever dessverre root-rettigheter for å bli kjørt. Derfor har jeg sørget for at kommandoen ikke vil kreve sudo-passord når den kjøres.

Jeg har tenkt å sørge for at serverne kan kommunisere med hverandre gjennom dette skriptet, for å avgjøre hvilken IP-adresse som skal brukes.

Ettersom dette kanskje kommer til å gå over det åpne Internett, tenkte jeg at det kunne være en mulighet for et eventuelt sikkerhetshull som gjør at en angriper får mulighet til å definere hvilken kommando som skal kjøres etter "sudo ", så det blir ikke aktuelt å la brukeren få kjøre alle kommandoer uten passord.

Derfor er det viktig å sørge for at alle andre kommandoer utenom den ene ikke skal gå gjennom, og heller ikke stoppe Python-skriptet.
Sist endret av Tysteren; 21. juli 2021 kl. 16:35. Grunn: Automatisk sammenslåing med etterfølgende innlegg.
Tastaturkriger
Deezire's Avatar
Ikke finn opp config management på nytt, bruk noe som Ansible eller Chef.