Hvad betyder sudo og gør?

“Kan nogen fortælle mig, hvad sudo betyder?” Jeg lærer Linux. Jeg googlede, men kan nogen slags give mig en Windows sammenligning Jeg tror, det vil hjælpe mig lidt. Jeg ved, at su betyder switchbruger. sudo er en anden bruger, men hvordan og hvorfor? Hvorfor kan du ikke bare give dig selv tilladelser under dit brugernavn?

Kommentarer

  • I windows, hvis du ikke ‘ for ikke at have administratorrettigheder, skal du angive navn og adgangskode til en konto, der også har det. Du kan selvfølgelig give dig selv tilladelse under dit brugernavn, det er bare ikke smart at gøre det som ethvert program, der din kørsel kan derefter ændre alt, hvad du har tilladelse til. Det er en af grundene til, at Windows har været usikre i så lang tid.
  • @KnowledgeBeyondMe: Hvad er det med emnet for spørgsmålet? Skift det til noget meningsfuldt.
  • ok, så lad mig se, om jeg forstår dette. I stedet for at folk har admin-konti har alle potentialet til at være administrator ved at bruge sudo-brugernavnet. Men ved at bruge det sudo-brugernavn, handlinger vil blive logget tilbage til dig, fordi det slags ligner et helvede af dit faktiske brugernavn acct. Hvis dette er tilfældet, kan jeg virkelig godt lide det. Det sparer masser af tid. Du don ‘ t er nødt til at vente på, at nogen med privatpersoner kommer hen til dig for at tilføje software og printere og lignende.

Svar

sudo giver dig mulighed for at køre et program som root-superbruger . Brug det i stedet for su,

  1. du behøver ikke at kende rodadgangskoden, fordi den beder om din adgangskode,
  2. du ved eksplicit, hvilke kommandoer der kører som roden, og hvilke andre som dig. Hvis du bruger su, har du en shell og kan utilsigtet køre nogle (farlige) programmer, og
  3. alle dine handlinger er logget ind i auth.log fil. Handlinger i en shell, som f.eks. En initieret af su , logges normalt ikke .

Hvorfor kan du ikke bare give dig selv tilladelser under dit brugernavn?

For sikkerhedsmæssige grunde, rodkontoen bruges sjældent til daglige formål . Normalt bruger alle brugere, inklusive administratorer, en “normal” bruger og udfører kun kommandoer som root, når det er nødvendigt. Dette kan forhindre (1) uautoriseret adgang til filer fra andre brugere, (2) ikke-loggede rodhandlinger og (3) problemer forårsaget af udførelse af “farlige” programmer.

Der er en analogi i Wikipedia , du kan overveje:

  • At bruge en rodkonto er snarere som at være Superman; en administrator er almindelig bruger er mere som Clark Kent. Clark Kent bliver kun Superman så længe det er nødvendigt for at redde folk. Derefter vender han tilbage til sin “forklædning”. Rodadgang skal bruges på samme måde. Clark Kent-forklædningen begrænser ham dog ikke rigtig, da han stadig er i stand til at bruge sine superkræfter. Dette er analogt med brugen af sudo-programmet.

Kommentarer

  • At bruge sudo er snarere som at være Fedtmule indtil du spiser en super jordnød, der forvandler dig til Super Goof. Dine superkræfter slides efter en timeout (standard 15 minutter), hvorefter du bliver bedt om en ny jordnød … er, din adgangskode.
  • ok, så lad mig se, om jeg forstår dette. I stedet for at folk har admin-konti har alle potentialet til være administrator ved at bruge sudo-brugernavnet. Men ved at bruge dette sudo-brugernavn bliver dine handlinger logget tilbage til dig, fordi det er som et helvede ud af dit faktiske brugernavn. af tid. Du behøver ikke ‘ at vente på, at nogen med hemmeligheder kommer til dig for at tilføje software og printere og lignende.
  • @KnowledgeBeyondMe Alle har potent ial for at være administrator, men du skal stadig være autoriseret ved at være anført i /etc/sudoers. Der er nogle andre fordele ved sudo i forhold til su, men hovedpunktet i sudo er, at du godkender ved hjælp af din egen adgangskode. Delte adgangskoder er dårlige.
  • Du skal autorisere personer, inklusive dem i /etc/sudoers eller ved hjælp af andre teknikker , for at køre sudo. Normalt godkender du ikke alle mennesker, kun systemadministratorer.

Svar

Som standard på de fleste enheder , “administrator” -kontoen, root, skal kun bruges sparsomt. Der er kun to niveauer af administratorrettigheder eller “superbruger”, rettigheder til et normalt Unix-system: Du har enten fuld kontrol over alt , eller du har ikke noget.

“Fuld kontrol” inkluderer at omgå de fleste tilladelseskontrol og fuldstændigt ødelægge systemet ved en simpel forkert indtastning. Som almindelig bruger kan du højst kun slette dine egne filer.

Det ældre su -værktøj bruges sammen med rodadgangskoden til at antage rodidentiteten, men kan også bruges til at antage andre brugeres identiteter eller til at udføre enkeltkommandoer som dem, forudsat at du tilhører den korrekte brugergruppe og kender deres adgangskoder.

su bruges almindeligvis af rodbrugeren (på et Unix-system) til at starte dæmoner (serviceprocesser), der skal køre under bestemte brugeridentiteter for at beskytte dem mod adgang til områder at de ikke skal have adgang til (typisk webservere, SSH-servere og lignende). Dette kan gøres i opstartsskripter, da systemet starter.

su bruges sjældnere interaktivt (på kommandolinjen).

sudo -værktøjet kræver lidt mere konfiguration, da det giver brugeren mulighed for at udføre kommandoer som en anden bruger ved at bruge deres egen adgangskode (hvilket betyder, at et rodadgangskode for eksempel ikke behøver at blive delt), og det giver også mulighed for finkornet kontrol af, hvem der har lov til at gøre præcis hvad. Man kunne for eksempel give en enkelt bruger eller en hel gruppe brugere muligheden for at montere en bestemt disk, men ikke til at afmontere den eller montere andre diske eller installere software ved hjælp af specifikke kommandoer osv. Igen, sudo hjælpeprogram tillader antagelse af andre brugers identiteter (ikke kun root) til interaktive sessioner eller til udførelse af enkeltkommandoer (hvis konfigurationen er indstillet på denne måde af en anden person med root tilladelser).

Man kører typisk enkeltkommandoer ved hjælp af sudo (deraf navnet “superbruger gør”):

$ sudo apt-get install vim 

eller

$ sudo shutdown -ph now 

Brug af sudo på denne måde foretrækkes frem for at bruge sudo -s og arbejde med en interaktiv rodskal, fordi de kommandoer, du udfører, er logget. man kan senere spore handlingerne i logfilen for at se, hvor (og hvem) gjorde noget, enten for fejlretning eller til revision.

Hvis du finder dig selv typi ng væk ved en interaktiv rodprompt i en længere periode, så skal du overveje, hvad du laver, og hvis det virkelig kræver rodprivilegier.

Som eksempel er den eneste gang, I opdrage en interaktiv rodprompt er, når jeg tilføjer en almindelig bruger til mig selv på en nyinstalleret maskine, eller når jeg virkelig har nogle alvorlige problemer, der forhindrer mig i at logge ind som en almindelig bruger.


OpenBSD (siden version 5.8) har et værktøj kaldet doas, som erstatter sudo i standardsysteminstallationen. Det blev udviklet, da det blev klart, at sudo var blevet for kompliceret til at passe til de mål, som udviklerne af OpenBSD havde lagt. Dets anvendelse svarer til sudo, men det er lettere at konfigurere det .

Svar

I tidlige versioner af Unix var det mest almindelige scenario at være logget ind via en terminal uden et vinduessystem. Su-kommandoen (erstatningsbruger) var en bekvem måde at ændre dine nuværende tilladelser uden at logge af. Husk, at uden et windowsing-system skulle aflogning betyde at stoppe det, du havde kørt.

Brug af su til at blive root har nogle irriterende problemer. Folk glemmer lejlighedsvis at afslutte sessionen og ved et uheld køre kommandoer som root. Ændring af den administrative adgangskode blev kompliceret af det faktum, at du havde brug for at distribuere det til alle, der havde brug for det. De fleste systemer loggede ikke hver kommando, så det var vanskeligt at fortælle, hvem der gjorde hvad som root. Og så videre.

sudo adresserede disse problemer ved at lade folk køre en enkelt kommando som root. Det giver bedre kontrol og kontrol, mens det er lidt mere bekvemt for engangskommandoer.

Svar

ok, så lad mig se, om jeg forstår dette. I stedet for at folk har admin-konti har alle potentialet til at være administrator ved at bruge sudo-brugernavnet. Ved at bruge dette sudo-brugernavn bliver dine handlinger dog logget tilbage til dig, fordi det er som et helvede fra dit faktiske brugernavn. Hvis dette er tilfældet, kan jeg virkelig godt lide det. Det sparer masser af tid. Du behøver ikke vente på, at nogen med privatpersoner kommer hen til dig for at tilføje software og printere og lignende.

Kommentarer

  • sudo er et hjælpeprogram, ikke et brugernavn. Nogen er stadig nødt til at give dig ret til at bruge sudo. Retten kan være begrænset til brugen af bestemte kommandoer eller til at bruge sudo til at antage bestemte andre brugeridentiteter. sudo kan bruges til at skifte til andre roller end bare root.
  • åh så er det ligesom Active Directory organisationsgrupper? Du har dit eget brugernavn med privilegier, men hvis du får tilladelse, kan du få adgang til en specialiseret organisations rettigheder. ORGen i denne forstand ville være SUDO-værktøjet?
  • Ved ikke hvad en ” Active Directory ” er, Jeg kan ‘ ikke sige ja eller nej til det med sikkerhed.
  • Kontrolmekanisme for rettigheder og roller i windows.
  • Nej, sudo er ikke en gruppe eller en brugerkonto. – I Windows, Active Directory og LDAP kan du definere brugergrupper. I Linux kan du også definere brugergrupper. For eksempel har din linux normalt en admin gruppe. Hver bruger kan tilhøre en primær gruppe og flere sekundære grupper . – Du kan godkende sudo til alle medlemmer af en gruppe . Hvis du markerer /etc/sudoers, har de autoriserede grupper et % præfiks.

Svar

sudo giver dig mulighed for at køre et program som en anden bruger (inklusive rod) baseret på et konfigurerbart, foruddefineret sæt regler.

Til en Unix / POSIX / Linux-systemrod er gud. Rodbrugeren er også ental.

I mange miljøer er der flere administratorer, der muligvis har brug for fuld rootadgang, men der kan også være personer, der har brug for adgang til at udføre en bestemt funktion, der normalt er forbeholdt root; DBAer skal stoppe og starte DB-tjenester, redigere DB-konfigurationsfuler, netværksadministratorer skal konfigurere netværksenheder og ruter, sikkerhedsadministratorer skal administrere certifikater og konfigurere firewalls.

Ved at begrænse, hvilke kommandoer en person kan køre, anvender sudo princippet om mindst privilegium – brugere får ikke adgang, de ikke har brug for. Men det begrænser ikke kun de binære filer, som brugerne kører. Mange admin-opgaver udføres fra kommandolinjen – og parametrene, der sendes til denne kommando, kan også begrænses af sudo (eller fanges i et shell-script med adgang fra sudo), det er derfor muligt at begrænse de data / enheder, som disse specialiserede administratorer kan få adgang.

Hvorfor kan du ikke bare give dig selv tilladelser under dit brugernavn?

1) dette ville være dårligt.

  • Jeg har ofte haft adgang til rodkontoen på systemer – men jeg opretter altid en navngivet konto til brug til login , og kun “su” eller “sudo”, når jeg eksplicit vil påberåbe mig mine superkræfter. Ud over at undgå fjollede fejl, giver min navngivne konto en sandkasse til alle komponenter, der ikke fungerer korrekt.

  • hvad hvis der er 5 personer, der har brug for den privilegerede adgang, giver jeg det til hver og en? Hvad med 20? Hvad med 200?

2) dette ville være svært

  • det er ikke Unix sikkerhedsmodel. Sikker på, at du kunne ændre tilladelserne til nogle eksekverbare filer (se tidligere note om parametre). Men hvis du er sikkerhedsbevidst, anvender du patches regelmæssigt – hvilket kan underminere en tilpasset tilladelsesmodel (sudo OTOH opretholder sine tilladelser uafhængigt af selve kommandoerne).

Kommentarer

  • ahhh, det er derfor, Linux er lidt sværere at angribe. Færre mennesker med rettigheder. Angriberen bliver nødt til at finde den rigtige person med de rigtige rettigheder. per se.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *