Sida 1 av 1

Sudo och gksudo

Postat: 13 sep 2008, 19:28
av BadOmen
Jag har funderat ett tag på sudo och gksudo och nu idag har jag tagit mig för att läsa på lite för att lägga upp det på min blogg som är som en stor post-it lapp för mig... Jag tar först upp vad sudo och gksudo är för nåt och sen när de är bra att använda. Efter det tar jag upp lite problem som kan uppstå och lite exempel.

Jag vill inte att det här ska bli ett krig mellan sudo och gksudo utan har ni nån fakta så visa upp den men undvik att säga att den ena eller den andra är onödig för det leder ingen stans. Jag hade egentligen inte tänkt lägga upp det här utan bara ha det för mig själv men sen tänkte jag att många undrar angående dessa kommandon så då visar jag upp det här med risken för diverse påhopp som tyvärr brukar hagla runt sådana här trådar :-\

Läs igenom hela inlägget är ni snäll innan ni kommenterar, jag vet att det är långt...

Sudo är ett terminal program designat för att tillåta systemadministratören att ge begränsade root rättigheter till användare och logga root aktiviteterna.
Grundfilosofin är att ge så få privilegier som möjligt men ändå göra det möjligt för användarna att utföra sitt jobb.

När man skriver sudo kommando i en terminal så ombeds man att skriva in lösenordet i terminalen. Det syns inte att man skriver in det utan man får skriva det och sen trycka på Enter utan att se stjärnor för respektive tecken.

För att användaren ska kunna installera eller avinstallera program eller ta bort/lägga till/ändra filer i mappar som är viktiga för systemet så måste användaren utföra kommandot med sudo kommando så man kan skriva in sitt användarlösen för att få de rättigheterna som krävs för att utföra den uppgiften. Detta är en säkerhetsåtgärd för att minska risken att man själv tar bort/ändrar viktiga filer och för att minska risken att nån annan är inne och ändrar viktiga saker.

Sen finns också gksudo som gör samma sak som sudo med den skillnaden att när man skriver gksudo så poppar det upp ett fönster där man skriver in lösenordet till skillnad från om man använder sudo då man måste mata in lösenordet i terminalen. Som regel använder man gksudo för att utföra alla uppgifter som kräver att fönster öppnas alltså ett grafiskt gränssnitt för sudo (graphical frontend to sudo) Detta program körs automatiskt till exempel när du startar Pakethanteraren Synaptik eller andra program som kräver administrativa rättigheter.
Gksudo är framföralt praktisk att använda när man startar program som Nautilus eller gedit med admin.rättigheter. Då startar man programmet genom att trycka Alt + F2 och skriver in gksudo nautilus eller gedit. Hade man i det läget istället skrivit sudo nautilus så hade man inte haft nån möjlighet att skriva in sitt lösenord eftersom sudo kräver en terminal för att skriva in det.

gksudo är också den enda möjligheten som ger en alternativet att skriva in sitt lösen för att få admin.rättigheter om man startar ett program via en ikon eller en tangentbordsgenväg.

Det finns även en till anledning till att använda sudo respektive gksudo dock går det väldigt vilda diskuterad om det är så viktig, ni får väll bedöma det själva.

Jag har testat det som jag skriver nedan med det resultat att jag fick installera om firefox för att få tillbaka mina bokmärken och det tema jag hade på den tidigare. Det gick inte att komma åt bokmärkena via Ordna bokmärken och importera och säkerhetskopiera inte heller genom att synkronisera mot Foxmark där jag har mina bokmärken. Vet inte varför men det sket sig bigtime och firefox såg inte bra ut alls... Jag kan inte garantera att det var på grund av det jag höll på med eller om det bara var en slump. Men med mina bleka kunskaper om GNU/Linux så fick jag lov att ominstallera Firefox för att få till det. Det är möjligt att en mer erfaren användare hade löst det på ett smidigare sätt :) OBS! Man ska aldrig starta/köra Firefox med roträttigheter. Jag gjorde det bara som ett test.

När man startar ett grafiskt program med sudo så använder den ibland användarens konfigurationsfiler i stället för root konfigurationsfiler. Man kan tydligt se detta genom att starta firefox med sudo då ser man att teman och allt sån hänger kvar medan startar man med gksudo så är det originaltemat den som kommer med installationen som används eftersom gksudo inte använder användarens konfigurationsfil utan roots konfiguration som det ska vara. Ni kan se skillnaden på Firefox med Sudo och gksudo så slipper ni gör det här själv... Kanske att det hade gått bra för er fast varför chansa...

I värsta tänkbara scenario så skulle man kunna öppna ett grafiskt program med sudo som då ev. använder användarens configurationsfiler och ändrar rättigheterna och ägare på ~/.ICEauthority till root så att när användaren sen ska logga in så går det inte. Man måste då ändra så att ägaren av ~/.ICEauthority blir den användare som inte kan logga in och den användaren ska ha läs och skriv rättigheter. Dennes grupp och andra användare ska inte ha några rättigheter alls till filen alternativt kan man ta bort filen helt då återskapas den som den ska vara när användaren loggar in nästa gång (gör backup för säkerhetsskull innan ni tar bort den). Man kan göra det genom att startar datorn i Recovery mode "felsäkert läge" och sen när det efter ett tag kommer en meny så väljer man Drop to root shell promt eller så väljer man att göra det via Live CD.

Här är ett ett exempel där det förmodligen har hänt (2008) det händer dock inte alls ofta nu mer:
Kan inte logga in

Tidigare var det oftast de som försökte starta grafiska kde program från gnome med sudo som fick det problemet men det verkar vara löst nu.
(2006)
KDE och GNOME problem
(2003)
http://www.linuxquestions.org/questions ... ip-325611/

Jag har tagit mycket information från denna sida:
http://www.psychocats.net/ubuntu/graphicalsudo
Lite härifrån:
http://bbs.archlinux.org/viewtopic.php?id=47414
och lite härifrån:
http://ubuntuforums.org/archive/index.php/t-119408.html
Samt från sådant som jag har läst lite här och var :)

Re: Sudo och gksudo

Postat: 13 sep 2008, 20:10
av Rune.K
Jag startade själv en tråd om sudo och gksudo > http://ubuntu-se.org/phpBB3/viewtopic.php?f=186&t=29660
OBS! Det är inget att rekommendera att läsa allt i den tråden.

Men jag fick iallafall ett ordentligt svar från Konservburk.
Rune.K skrev: Men kan någon ge ett bevis på att man MÅSTE använda gksudo i terminalen i en normal av installation av Ubuntu.

Att man måste använda gksudo är bara en myt. Det går alldeles utmärkt att använda vanliga sudo, så länge man är medveten om vad man gör. Problemet med sudo är att den bara ändrar användaren utan att även ändra hemkatalogen.

Program som använder config-filer från hemkatologen kommer att använda din användares config-filer trots att programmet körs som root-användaren. Men det är egentligen inget stort problem.

Det kan däremot gå riktigt illa när det gäller program som skriver nya filer till hemkatalogen, t.ex. skapar en standard-config-fil om det inte redan finns någon. Dessa nya filer kommer då att ägas av root-användaren trots att de ligger i din användares hemkatalog.

Det hela kan sluta med att det inte alls går att logga in längre om den vanliga användaren helt plötsligt inte har rättigheter att läsa någon viktig config-fil (vanligtvis ~/.ICEauthority).

Det viktiga som ingen verkar bry sig om här är att det inte är grafiska och endast grafiska program som kan ställa till problem när man använder sudo rakt av. Det gäller precis ALLA program som skriver config-filer till hemkatalogen, även vanliga terminalprogram.

Man kan komma runt det hela genom att använda sudo -H istället för sudo. Då ändras både användaren och hemkatalogen, vilket även är vad som händer när man använder gksudo.

Re: Sudo och gksudo

Postat: 13 sep 2008, 20:21
av BadOmen
Det var intressant läsning, tack för det inlägget :)

Re: Sudo och gksudo

Postat: 14 sep 2008, 13:24
av Rune.K
hittade en länk till > http://ubuntu-se.org/phpBB3/viewtopic.php?f=17&t=30796

ett citat från länken:
Inlägg av Osprey 18 aug 2008, 14:11
Håller helt med Rune.K, själv har jag kört Linux/Unix i över tjugo år och använt både su och sudo tusentals gånger och jag har ännu inte begripit hur Canonical (eller någon annan) menar att det skulle vara säkrare med sudo än med su, eller att logga in som root direkt för den delen.

Sudo ger exakt samma rättigheter som su, med enda skillnaden att sudo endast gör det för ett kommando, förutom om kommandot är sudo -i eller t.ex sudo bash... fast då ger ju egentligen sudo bara rättigheter för just det kommandot och sedan är det kommandot gör att man behåller dem... ::)

Hisoriskt sett har su varit förbehållet root (dvs. superuser) för att han/hon skulle kunna skaffa sig rättigheter när han var inne och hjälpte en användare i dennes inloggning, eller om han/hon skulle byta identitet till "en vanlig" användare. Detta innebar en hel del begränsningar eftersom det många gånger kunde vara en stor fördel om olika användare kunde få vissa rättigheter som normalt var förbehållna root. Till exempel kunde en användare få fulla rättighet att administrera skrivarköer och en annan kunde ha full rätt till något annat. På detta sätt kunde root fokusera på sådana saker som var viktigare och mer interna för systemet.

Så som det däremot används i Ubuntu så har det inte en enda vettig effekt, eller om man säger så - vad är det egentligen för mening med att root inte kan/får logga in när varenda användare kan bli root..??

Visst är det så att en elak skurk som ska försöka hacka sig in i datorn inte kan komma in som root, men å andra sidan har han ju en hel uppsjö av andra användare att välja på istället, som bara skriver sudo när de vill göra något och kanske inte alltid är medvetna om att de är egentligen är root då. Vanliga användare har normalt sett inte samma disciplin när det gäller lösenord och så heller som den som är medeveten om att han/hon är root dvs. systemadministratör är.

På ett fleranvändarsystem där man konfigurerar /etc/sudoers på ett genomtänkt sätt är sudo jättebra, men på min egen burk har jag skrotat det därför att det överhuvudtaget inte tillför något...

Re: Sudo och gksudo

Postat: 19 dec 2010, 20:35
av Faie
Hej, sorry ifall jag postar helt fel nu..

Jag upptäckte idag att i en /home/username/bilder var en del mappar med innehåll under root ägare. Jag förstod inget eller hur det kunnat hänt. Jag har sedan tre veckor tillbaks gjort en fräsh ny installering av xubuntu 10.10 och hade mina bilder på ett usb minne som jag bara la tillbaks igen [som alltid har funkat klockrent] Men så gjorde jag nu en sökning och hitta denna tråd.

Jag undrar skulle det vara så enkelt som att ta bort filen ~/.ICEauthority och loggar ut och in igen skulle de filer och mappar som plötsligt blivit root ägda återgå till att bli ägda av mitt vanliga användare?

EDIT:
Sitter och tittar på den här sidan http://www.ubuntu-se.org/wiki/Bash
chown
Med detta kommando kan du ändra ägare till en mapp och grupp.
För att ändringen skall gälla för undermappar läggs flaggan -R till.
chown root fil/mapp #byter ägare till root
chown root:admin fil/mapp #byter även grupp till admin
chown -R root mapp #byter ägare på mapp och alla undermappar/filer
Så testa jag att göra:

chown user:usergroup för en fil och det funka.

Min extra fråga är.. är detta en bra lösning? Eller finns det ngn fil nu som ~/.ICEauthority eller liknande, som har annan information.. och varje gång jag loggar in kommer dessa filer och mappar i min /home/faie/bilder åter vara tillbaks under root?


tack på förhand för hjälp.