mergelspir Mester
19. februar 2021 - 16:57 Der er 4 kommentarer

Hvordan kalder man en funktion fra et Linux web-CGI-script?

Jeg har to CGI scripts med den samme funktion: logmsg. I det første script fungerer log-funktionen fint. I det andet script kan jeg ikke få log-funktionen til at skrive i log-filen.

Følgende script (testlog.cgi) virker fint. Det skriver i logfilen, når jeg kører det fra en Linux command prompt:

#!/bin/bash
LOG_FILE=$(date +"%Y%m%dlog.txt")
LOG_TIME=$(date +"[%Y %m %d %T]")
function logmsg {
echo "$LOG_TIME ${*}" >> $HOME/log/${LOG_FILE}
}
echo "testlog"
echo ${LOG_FILE}
echo ${LOG_TIME}
logmsg "testlog"

Det andet script (testhtml.cgi) skriver pænt nok i mit Firefox browser-vindue, når jeg kalder det fra Firefox. Men skriver *ikke* noget i log-filen. Hvorfor ikke?!?

#!/bin/bash
LOG_FILE=$(date +"%Y%m%dlog.txt")
LOG_TIME=$(date +"[%Y %m %d %T]")
function logmsg {
echo "$LOG_TIME ${*}" >> $HOME/log/${LOG_FILE}
}
logmsg "testhtml.cgi"
echo 'Content-type: text/html'
echo ''
echo '<html><head><title>Test of testhtml.cgi</title></head><body>'
echo 'testhtml.cgi'
echo '</body>'
echo '</html>'
exit 0

Jeg mistænker $HOME for at være synderen.
Måske $HOME ikke er den samme i de to eksempler, selvom de to scripts ligge i samme katalog på linux-serveren.
MEN, jeg kan kun finde ud af at skrive $HOME ud i testlog.cgi
Jeg kan ikke finde ud af at skrive $HOME ud i testhtml.cgi
Det er den rene elendighed...

Hjælp!!

Med venlig hilsen
Allan
arne_v Ekspert
19. februar 2021 - 17:13 #1
$HOME for en interaktiv bruger er brugernavnets hjemme katalog.

CGI scripts køres normalt under en nobody account, så gudern må vide hvad $HOME er eller om den overhovedet er sat.

Så oplagt spørgsmål er: virker det med en fuld hardcoded sti altså uden $HOME?
mergelspir Mester
19. februar 2021 - 18:49 #2
Jeg har nu prøvet med både en hardcoded absolut sti og en relativ sti.
Der er ikke skrevet noget i den bestående logfil.
Der er heller ikke oprettet nogen ny logfil andetsteds.
Er det muligt at få en fejlkode, hvis jeg nu tilfældigvis prøver at skrive log-filen i et katalog, der ikke kan skrives i?
arne_v Ekspert
19. februar 2021 - 19:14 #3
Det kunne være problemet.

Har en nobody process skrive adgang til filen?
mergelspir Mester
19. februar 2021 - 20:47 #4
Det burde den have.
For at være helt sikker, har jeg nu sat rettigheder på log-filen til 666 (de var før 644), men det gør ingen forskel.
Altså:
Rettighederne til /log - kataloget er 722.
Rettighederne til /20210219log.txt filen er nu 666 (rettet fra 644)
log-filen ligger her: <account>/log/20210219log.txt
CGI-script ligger her: <account>/public-html/<domaine>/cgi-bin/testhtml.cgi
Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester





Premium
Sådan slipper danske it-selskaber afsted med at betale nul kroner i skat: "Der er klare tegn på, at spekulation i selskabsskat er udbredt"
En lang række it-selskaber på dansk jord betalte nul kroner i selskabsskat i løbet af 2019. Der findes flere årsager til - både mere eller mindre hæderlige - at selskaberne ikke poster penge i fælleskassen, lyder det fra global skatteekspert. Flere grunde er helt reelle mens andre er mere spekulative.
Computerworld
Endnu en tragisk ulykke med førerløs Tesla: Musk har store forventninger til ny software
En tragisk dødsulykke i USA i weekenden har sat forøget fokus på Teslas eksisterende semiautomatiske system og det kommende fuldautomatiske, der skal gøre bilerne helt selvkørende.
CIO
Har du rost din mellemleder i dag? Snart er de uddøde - og det er et tab
Computerworld mener: Mellemledere lever livet farligt: Topledelsen får konstant ideer med skiftende hold i virkeligheden, og moden går mod flade agile organisationer. Men mellemlederen er en overset hverdagens helt med et kæmpe ansvar. Her er min hyldest til den ofte latterliggjorte mellemleder.
Job & Karriere
"Vi var nødt til at sige til dem, at I er nødt til at sende ham hjem nu, for han begynder at knække"
"Vi var nødt til at sige til dem, at I er nødt til at sende ham hjem nu, for han begynder at knække"
White paper
Ét klik kan lægge din virksomhed ned: Sådan bekæmper du mailtrusler
Mailbårne angreb er blandt de mest udbredte og ofte mest alvorlige cybertrusler. Dette whitepaper fra F-Secure giver overblik over, hvordan de mest udbredte mailbårne trusler fungerer, hvordan de detekteres – og hvordan du beskytter din organisation.