”Kan någon berätta för mig vad sudo
betyder?” Jag lär mig Linux. Jag googlade men kan någon typ ge mig en Windows jämförelse Jag tror att det kommer att hjälpa mig lite. Jag vet att su
betyder byta användare. sudo
är en annan användare, men hur och varför? Varför kan du inte bara ge dig själv behörigheter under ditt användarnamn?
Kommentarer
- I windows, om du inte ’ inte har administratörsrättigheter, du måste ange namn och lösenord för ett konto som också gör det. Du kan naturligtvis ge dig själv tillstånd under ditt användarnamn, det är bara inte smart att göra det, som alla program som din körning kan sedan ändra allt du har behörighet för. Det är en av anledningarna till att Windows har varit osäkert så länge.
- @KnowledgeBeyondMe: Vad är frågan med ämnet? Ändra det till något meningsfullt.
- ok, så låt mig se om jag förstår det. Istället för att människor har administratörskonton har alla potential att vara administratör genom att använda sudo-användarnamnet. Men genom att använda det sudo-användarnamnet ditt åtgärder kommer att loggas tillbaka till dig eftersom det är som ett helvete av ditt faktiska användarnamn. Om så är fallet gillar jag verkligen det. Det sparar massor av tid. Du behöver inte ’ t måste vänta på att någon med hemlighet kommer till dig för att lägga till programvara och skrivare och liknande.
Svar
sudo
låter dig köra ett program som root-superanvändaren . Om du använder den istället för su
,
- behöver du inte veta rotlösenordet eftersom det ber om ditt lösenord,
- du vet uttryckligen vilka kommandon som körs som rot och vilka andra som du. Om du använder
su
har du ett skal och kan oavsiktligt köra vissa (farliga) program och - alla dina handlingar är inloggade i
auth.log
-fil. Åtgärder i ett skal, som en som initierats avsu
loggas vanligtvis inte .
Varför kan du inte bara ge dig själv behörighet under ditt användarnamn?
För säkerhetsskäl root-kontot används sällan för dagliga syften . Vanligtvis använder alla användare, inklusive administratörer, en ”normal” användare och kör bara kommandon som root när det behövs. Detta kan förhindra (1) obehörig åtkomst till filer från andra användare, (2) icke-loggade root-åtgärder och (3) problem orsakade av att ”farliga” program körs.
Där är en analogi i Wikipedia du kan överväga:
- Att använda ett rotkonto är snarare som att vara Superman; en administratörs vanliga användaren är mer som Clark Kent. Clark Kent blir Superman så länge det är nödvändigt för att rädda människor. Han återgår sedan till sin ”förklädnad”. Rotåtkomst bör användas på samma sätt. Clark Kent-förklädnaden begränsar honom inte riktigt, eftersom han fortfarande kan använda sina superkrafter. Detta är analogt med att använda sudoprogrammet.
Kommentarer
- Att använda
sudo
är snarare som att vara fånig tills du äter en super jordnöt som förvandlar dig till Super Goof. Dina superkrafter försvinner efter en timeout (standard 15 minuter), varefter du blir ombedd att ange en ny jordnöt … ditt lösenord. - ok, så låt mig se om jag förstår detta. Istället för att människor som har administratörskonton har alla potential att vara administratör genom att använda sudo-användarnamnet. Men genom att använda det sudo-användarnamnet kommer dina handlingar att loggas tillbaka till dig eftersom det är som ett helvete av ditt faktiska användarnamn. Om så är fallet gillar jag verkligen det. Det sparar massor Du behöver inte ’ inte vänta på att någon med hemligheter ska komma över till dig för att lägga till programvara och skrivare och liknande.
- @KnowledgeBeyondMe Alla har stark ial för att vara administratör, men du måste ändå vara auktoriserad genom att listas i
/etc/sudoers
. Det finns några andra fördelar med sudo jämfört med su, men huvudpoängen med sudo är att du autentiserar med ditt eget lösenord. Delade lösenord är dåliga. - Du måste auktorisera personer, inklusive dem i
/etc/sudoers
eller med andra tekniker , för att körasudo
. Vanligtvis godkänner du inte alla människor, bara systemadministratörer.
Svar
Som standard på de flesta enheter , ”administratörskontot”, root, ska endast användas sparsamt. Det finns bara två nivåer av administratörsrättigheter eller ”superanvändare”, rättigheter på ett normalt Unix-system: Du har antingen full kontroll över allt eller så gör du inte det.
”Full kontroll” inkluderar att kringgå de flesta behörighetskontroller och att helt röra ihop systemet genom att enkelt skriva fel. Som vanlig användare kan du högst bara radera dina egna filer.
Det äldre su
-verktyget används tillsammans med rotlösenordet för att anta rotidentiteten, men kan också användas för att anta andra användares identiteter eller för att utföra enstaka kommandon som dem, med tanke på att du tillhör rätt användargrupp och känner till deras lösenord.
su
används vanligen av rotanvändaren (på vissa Unix-system) för att starta demoner (serviceprocesser) som måste köras under särskilda användaridentiteter för att skydda dem från åtkomst till områden att de inte borde ha tillgång till (vanligtvis webbservrar, SSH-server och liknande). Detta kan göras i startskript när systemet startar.
su
används sällan interaktivt (på kommandoraden).
sudo
-verktyget kräver lite mer konfiguration eftersom det tillåter en användare att utföra kommandon som en annan användaren genom att använda sitt eget lösenord (vilket innebär att ett root-lösenord till exempel inte behöver delas), och det möjliggör också finkornig kontroll av vem som får göra exakt vad. Man kan till exempel ge en enskild användare, eller en hel grupp användare, möjligheten att montera en viss disk, men inte att avmontera den eller montera några andra diskar, eller att installera programvara med specifika kommandon etc. Återigen, sudo
verktyget möjliggör antagande av andra användares identiteter (inte bara root) för interaktiva sessioner, eller för att utföra enstaka kommandon (om konfigurationen har ställts in på detta sätt av någon annan person med root behörigheter).
Normalt kör man enstaka kommandon med sudo
(därav namnet ”superanvändare gör”):
$ sudo apt-get install vim
eller
$ sudo shutdown -ph now
Att använda sudo
på detta sätt föredras framför att använda sudo -s
och arbeta med ett interaktivt rotskal, eftersom kommandona som du kör är loggade. man kan senare spåra om åtgärderna i loggfilen för att se var (och vem) gjorde något, antingen för felsökning eller för granskning.
Om du befinner dig typi ng bort vid en interaktiv rootprompt under en längre tid, bör du ompröva vad du gör och om det verkligen kräver rootprivilegier.
Som ett exempel, den enda gången som I ta upp en interaktiv rotprompt är när jag lägger till en vanlig användare för mig själv på en nyinstallerad maskin, eller när jag verkligen har några allvarliga problem som hindrar mig från att ens logga in som vanlig användare.
OpenBSD (sedan version 5.8) har ett verktyg som heter doas
som ersätter sudo
i standardsysteminstallationen. Det utvecklades när det blev klart att sudo
hade blivit för komplicerade för att passa de mål som utvecklarna av OpenBSD lagt upp. Dess användning liknar den för sudo
, men att konfigurera det är lättare .
Svar
I tidiga versioner av Unix var det vanligaste scenariot att vara inloggad via en terminal utan fönster. Kommandot su (ersättningsanvändare) var ett bekvämt sätt att ändra dina nuvarande behörigheter utan att logga ut. Kom ihåg att utan ett fönstersystem att logga ut innebar att stoppa vad du än körde.
Att använda su för att bli root har några irriterande problem. Människor glömde ibland att avsluta sessionen och av misstag köra kommandon som root. Att ändra det administrativa lösenordet komplicerades av det faktum att du behövde distribuera det till alla som behövde det. De flesta system loggade inte alla kommandon så det var svårt att säga vem som gjorde vad som root. Och så vidare.
sudo tog upp dessa problem genom att låta folk köra ett enda kommando som root. Det ger bättre granskning och kontroll samtidigt som det är lite bekvämare för engångskommandon.
Svar
ok, så låt mig se om jag förstår detta. Istället för att människor har administratörskonton har alla potential att vara administratör genom att använda sudo-användarnamnet. Men genom att använda det sudo-användarnamnet kommer dina handlingar att loggas tillbaka till dig eftersom det är som ett helvete av ditt faktiska användarnamn. Om detta är så gillar jag verkligen det. Det sparar massor av tid. Du behöver inte vänta på att någon med hemlighet kommer till dig för att lägga till programvara och skrivare och liknande.
Kommentarer
-
sudo
är ett verktyg, inte ett användarnamn. Någon måste fortfarande ge dig rätten att användasudo
. Rätten kan begränsas till användning av specifika kommandon eller för att användasudo
för att anta särskilda andra användaridentiteter.sudo
kan användas för att byta till andra roller än bara root. - Åh så är det som Active Directory organisationsgrupper? Du har ditt eget användarnamn med behörigheter men om du får behörighet kan du få åtkomst till privilegier för en specialiserad organisation. ORG i den meningen skulle vara SUDO-verktyget?
- Att inte veta vad en ” Active Directory ” är, Jag kan ’ inte säga ja eller nej till det med säkerhet.
- Kontrollmekanism för rättigheter och roller i windows.
- Nej, sudo är inte en grupp eller ett användarkonto. – I Windows, Active Directory och LDAP kan du definiera användargrupper. I Linux kan du också definiera användargrupper. Till exempel har din Linux vanligtvis en
admin
-grupp. Varje användare kan tillhöra en primär grupp och flera sekundära grupper . – Du kan auktoriserasudo
att alla medlemmar i en grupp . Om du markerar/etc/sudoers
har de auktoriserade grupperna ett%
prefix.
Svar
sudo låter dig köra ett program som en annan användare (inklusive root) baserat på en konfigurerbar, fördefinierad uppsättning regler.
På en Unix / POSIX / Linux-systemrot är gud. Rotanvändaren är också singular.
I många miljöer finns det flera administratörer som kan kräva full root-åtkomst, men det kan också finnas individer som behöver åtkomst för att utföra en viss funktion som vanligtvis är reserverad för root; DBA: er måste stoppa och starta DB-tjänster, redigera DB-konfigurationsfiler, nätverksadministratörer måste konfigurera nätverksenheter och rutter, säkerhetsadministratörer måste hantera certifikat och konfigurera brandväggar.
Genom att begränsa vilka kommandon en person kan köra tillämpar sudo principen om minst privilegium – användare får inte åtkomst de inte behöver. Men det begränsar inte bara de binärer som användarna kör. Många adminuppgifter utförs från kommandoraden – och parametrarna som skickas till det kommandot kan också begränsas av sudo (eller fångas i ett skalskript med åtkomst från sudo), det är därför möjligt att begränsa data / enheter som dessa specialiserade administratörer kan komma åt.
Varför kan du inte bara ge dig själv behörigheter under ditt användarnamn?
1) det här skulle vara dåligt.
-
Jag har ofta haft tillgång till root-kontot på system – men jag har alltid skapat ett namngivet konto som ska användas för inloggning , och bara ”su” eller ”sudo” när jag vill åberopa mina superkrafter. Förutom att undvika dumma misstag, erbjuder mitt namngivna konto en sandlåda för alla felaktiga komponenter.
-
vad händer om det finns 5 personer som behöver privilegierad åtkomst, ger jag det till var och en? Vad sägs om 20? Vad sägs om 200?
2) detta skulle vara svårt
- det är inte Unix säkerhetsmodell. Visst att du kan ändra behörigheterna för vissa körbara filer (se tidigare anmärkning om parametrar). Men om du är säkerhetsmedveten, använder du patchar regelbundet – vilket kan undergräva en anpassad behörighetsmodell (sudo OTOH behåller sina behörigheter oberoende av själva kommandona).
Kommentarer
- ahhh, det är därför Linux är lite svårare att attackera. Mindre personer med rättigheter. Angriparen måste hitta rätt person med rätt rättigheter. i sig.