Sida 1 av 1

gksudo - vad är bäst?

Postat: 09 feb 2010, 18:27
av Johnny Rosenberg
Hittade ett skript för några dagar sedan med en rad som förbryllade mig lite. Skriptet hittar man i sin helhet på denna sida. Raden jag tänker på är följande:

Kod: Markera allt

gksudo "echo 0"
Jag fattar inte poängen med denna rad.

Det som jag egentligen tänkte fråga är dock detta:
När jag skriver ett skript där vissa saker kräver att man är superuser eller root eller vad man vill kalla det, är det då att föredra att man skriver gksudo (eller sudo, men jag förmodar att samma principer gäller för båda, så jag håller mig till gksudo i denna fråga) för varje kommando som kräver root eller är det bättre att man kör hela skriptet med gksudo?

I mitt fall består skriptet jag håller på med till största delen av apt-get och liknande. Borde jag skriva gksudo apt-get varje gång eller är det bättre att jag istället kör skriptet med gksudo MittSkript?

Som det ser ut just nu så är det en liten blandning, eftersom en del av mitt skript är snodd rakt av från sidan jag länkade till ovan, men jag vill vara enhetlig och har alltså nu att välja mellan att antingen lägga till gksudo där det saknas eller ta bort det där det nu finns med.

Re: gksudo - vad är bäst?

Postat: 09 feb 2010, 18:31
av Hund
gksudo är en förkortning av graphical sudo och används när man kör grafiska program som root.

Jag tycker det är bäst att kör skriptet med rätt rättigheter, alltså "sudo ./skript" etc.

Re: gksudo - vad är bäst?

Postat: 09 feb 2010, 18:43
av Pink Panther

Re: gksudo - vad är bäst?

Postat: 09 feb 2010, 19:26
av Konservburk
Johnny Rosenberg skrev:Hittade ett skript för några dagar sedan med en rad som förbryllade mig lite. Skriptet hittar man i sin helhet på denna sida. Raden jag tänker på är följande:

Kod: Markera allt

gksudo "echo 0"
Jag fattar inte poängen med denna rad.
Jag fattar inte heller. En helt meningslös rad om du frågar mig.

Re: gksudo - vad är bäst?

Postat: 09 feb 2010, 20:40
av Johnny Rosenberg
Konservburk skrev:
Johnny Rosenberg skrev:Hittade ett skript för några dagar sedan med en rad som förbryllade mig lite. Skriptet hittar man i sin helhet på denna sida. Raden jag tänker på är följande:

Kod: Markera allt

gksudo "echo 0"
Jag fattar inte poängen med denna rad.
Jag fattar inte heller. En helt meningslös rad om du frågar mig.
Funderar om det har en speciell funktion. Exempelvis ser ju Basics "on error goto 0" lite knepigt ut, men har en funktion. Vet inte om du tittade på hela koden, men här är ett litet avsnitt där raden ingår:

Kod: Markera allt

if grep -q "64" tmp.arch.txt ; then
        anw=`zenity --question --text "You appear to have an AMD64 architecture. Do you want to install the 64-bit version of Songbird?"; echo $?`
        if [ $anw = 0 ] ; then
        gksudo "echo 0"
        wget http://www.xs4all.nl/~mgj1/Songbird/64.bit
        URL=`head -n 1 64.bit | tail -n 1`
        FILE=`head -n 2 64.bit | tail -n 1`
        rm 64.bit
        wget "$URL" 2>&1 | sed -u 's/.*\ \([0-9]\+%\)\ \+\([0-9.]\+\ [KMB\/s]\+\)$/\1\n# 

Re: gksudo - vad är bäst?

Postat: 09 feb 2010, 21:18
av Lars
Konservburk skrev:
Johnny Rosenberg skrev:Hittade ett skript för några dagar sedan med en rad som förbryllade mig lite. Skriptet hittar man i sin helhet på denna sida. Raden jag tänker på är följande:

Kod: Markera allt

gksudo "echo 0"
Jag fattar inte poängen med denna rad.
Jag fattar inte heller. En helt meningslös rad om du frågar mig.
Poängen är att det tvingar fram lösenordsrutan en gång för alla. Senare anrop av gksudo kommer ju att gå igenom utan att lösenordsrutan dyker upp. Nu har jag inte detaljstuderat hur gksudo hanterar felkoder, men om raden returnerar ett fel så kan man ju vara säker på att det är gksudo som strular och inte echo 0. Så med den konstruktionen kan man avbryta skriptet om fel lösenord anges.

Re: gksudo - vad är bäst?

Postat: 09 feb 2010, 22:54
av Konservburk
Lars skrev:
Konservburk skrev:
Johnny Rosenberg skrev:Hittade ett skript för några dagar sedan med en rad som förbryllade mig lite. Skriptet hittar man i sin helhet på denna sida. Raden jag tänker på är följande:

Kod: Markera allt

gksudo "echo 0"
Jag fattar inte poängen med denna rad.
Jag fattar inte heller. En helt meningslös rad om du frågar mig.
Poängen är att det tvingar fram lösenordsrutan en gång för alla. Senare anrop av gksudo kommer ju att gå igenom utan att lösenordsrutan dyker upp.
Om det dyker upp fler lösenordsrutor eller inte beror väl helt på vad man har för inställningar i sudoers-filen? Men även om vi bortser från det så kan jag inte riktigt se varför det skulle vara önskvärt att tvinga fram en inmatning av lösenord på det sättet.
Lars skrev:Nu har jag inte detaljstuderat hur gksudo hanterar felkoder, men om raden returnerar ett fel så kan man ju vara säker på att det är gksudo som strular och inte echo 0. Så med den konstruktionen kan man avbryta skriptet om fel lösenord anges.
Det borde man ifs kunna göra... men just det här skriptet verkar inte bry sig det minsta om resultatet, utan fortsätter glatt även om man t.ex. avbryter lösenordsinmatningen. Dessutom verkar det lite onödigt att använda echo 0 istället för true om man egentligen inte vill ha en nolla som utdata.