- Sudo-kommandoen giver dig mulighed for at udføre specifikke administrative handlinger uden at logge ind som root, hvilket reducerer risici.
- Konfigurationen af tilladelser og autoriserede brugere administreres via sudoers-filen og /etc/sudoers.d/-mappen.
- Valgmuligheder som -u, -so, -i giver dig mulighed for at køre kommandoer eller åbne skaller som andre brugere, samtidig med at sporbarheden opretholdes.
- At bruge sudo omhyggeligt og begrænse direkte adgang til root er nøglen til at opretholde Linux-systemets stabilitet og sikkerhed.
Hvis du bruger Linux dagligt, vil du før eller siden støde på sudo-kommandoenDen lille kommando, der dukker op i næsten alle vejledninger, når du skal røre ved noget følsomt i systemet. Tilføjelse af en bruger, installation af en pakke, redigering af en konfigurationsfil eller genstart af en tjeneste... så snart noget ligner "administration", kommer sudo i spil for at give dig særlige tilladelser uden at du behøver at logge ind permanent som root.
At forstå, hvordan man bruger sudo i Linux, er nøglen til at arbejde sikkert med systemet.Det er ikke bare et spørgsmål om at skrive `sudo` før en kommando og indtaste en adgangskode: der er et helt system af tilladelser, grupper, udløbstider og en konfigurationsfil (sudoers), der dikterer, hvem der kan gøre hvad. Lad os se på det roligt, på almindeligt sprog, men uden at udelade nogen vigtige detaljer.
Hvad er sudo præcist i Linux, og hvad bruges det til?
sudo-kommandoen i Linux giver dig mulighed for at køre programmer med en anden brugers rettigheder, normalt den superbrugerrodDens navn forklares normalt som "superbruger do" eller "erstat bruger og do", og dens mission er enkel: at give dig mulighed for at udføre administrative opgaver uden at logge ind som root.
I de fleste moderne distributioner (Ubuntu, Debian, openSUSE osv.) er sudo forudinstalleret. og konfigureret, så en gruppe brugere kan bruge den. Takket være dette har en almindelig bruger begrænsede tilladelser til daglig brug, men kan "låne" root-tilladelser, når det er nødvendigt.
Denne fremgangsmåde er meget sikrere end altid at arbejde som root.Hvis du browser på internettet, kører grafiske applikationer eller åbner vedhæftede filer med en almindelig konto, er ethvert potentielt angreb betydeligt mere begrænset. Kun når du virkelig har brug for at ændre systemet, tilføjer du `sudo` til kommandoen og godkender.
Vigtigt: sudo gør dig ikke til absolut root for evigtAfhængigt af konfigurationen giver den dig kun forhøjede rettigheder til den kommando, du udfører, eller i et bestemt tidsinterval inden for den pågældende terminalsession. Derefter vil den bede om din adgangskode igen.
Kort sagt er sudo den kontrollerede bro mellem en almindelig bruger og administrative opgaver.Det giver dig mulighed for at installere software, ændre kritiske tilladelser eller administrere tjenester, men altid under opsyn af en politik, der er defineret i systemet.
Hvordan fungerer sudo internt, og hvad er dens grundlæggende syntaks?

Den grundlæggende brug af sudo er meget ligetil: du placerer den før den kommando, du vil udføre med privilegier.Den generelle form er:
sudo comando argumentos
Når du trykker på Enter, kontrollerer systemet først, om din bruger har tilladelse til at bruge sudoDenne autorisation er defineret i filen /etc/sudoers og i filerne i mappen /etc/sudoers.dHvis du har tilladelse, vil systemet bede dig om en adgangskode.
Den adgangskode, du indtaster med sudo, er normalt din normale brugeradgangskode, ikke root-adgangskoden.Bortset fra i specifikke konfigurationer eller visse virksomhedsdistributioner, vil du ikke se nogen stjerner eller tegn, når du skriver det i terminalen; det indtastes "blindt", selvom denne adfærd kan ændres, som vi vil se senere.
Når du har godkendt kommandoen, udfører sudo kommandoen, som om du var målbrugeren. (normalt root). Derudover efterlades der normalt en post i systemloggene, så administratoren kan kontrollere, hvad der blev gjort med sudo.
Som standard har sudo-godkendelse en midlertidig gyldighedsperiode. (normalt omkring 15 minutter). Så længe du ikke lukker terminalen, og tiden ikke er gået, vil efterfølgende kommandoer med `sudo` ikke bede om din adgangskode igen. Du kan fremtvinge en opdatering eller nulstille tiden ved hjælp af bestemte indstillinger.
Almindelige muligheder og parametre for sudo-kommandoen
Udover at fungere som et simpelt præfiks har sudo en række meget nyttige muligheder. Disse giver dig mulighed for at se oplysninger, forny loginoplysninger eller køre konti som andre brugere. Nogle af de vigtigste er:
- -hviser en kort hjælpemeddelelse med syntaksen og alle tilgængelige muligheder for sudo.
- -Vviser den installerede version af sudo-programmet og kompileringsdetaljer.
- -vFornyer godkendelsens "frist" uden at udføre nogen kommandoer. Den bruges til at opdatere adgangskodens gyldighedsperiode. og forhindre den i at udløbe, mens du fortsætter med at arbejde.
- -k: ugyldiggør øjeblikkeligt cachelagrede legitimationsoplysninger. Efter at have brugt -k, vil den næste sudo bede dig om din adgangskode igen.selvom der ikke er gået 15 minutter.
- -lviser listen over privilegier, som din bruger har med sudo. Det er meget nyttigt til at vide, hvilke kommandoer du har tilladelse til at køre. i henhold til trøjernes konfiguration.
- -sÅbner en shell ved hjælp af sudo, og arver miljøet fra din nuværende bruger.
- -iåbner en "ren" login-shell for målbrugeren, svarende til at logge ind direkte som den pågældende bruger.
- -u BRUGER: angiver, at du vil udføre kommandoen som en anden bruger end root, for eksempel
sudo -u pedro whoami.
Ved at kombinere disse muligheder kan du tilpasse sudos opførsel til dine behov når som helst., fra at se din tilladelsesliste til at hente en shell med en anden brugers miljø.
Forskelle mellem sudo og su: to måder at få tilladelser på
I Linux er der to klassiske måder at få administratorrettigheder på: sudo og suDe bliver ofte forvekslet, men i virkeligheden dækker de forskellige behov, og det er vigtigt at være tydelig omkring forskellen.
Kommandoen `su` (substitute user) giver dig mulighed for at skifte brugere i den samme terminalHvis du ikke angiver, hvem du vil skifte til, antager den, at du vil logge ind som root. Den vil bede om adgangskoden til den bruger, du vil skifte til:
su pedro
Contraseña: **
Når du bruger `su`, lukkes den oprindelige brugers session ikke.Du starter blot en ny session "indlejret" i den forrige. Hvis du kæder flere `su`-kommandoer sammen, kan du ende med en mærkelig stak af sessioner indlejret i hinanden. For at gå tilbage, skriver du exit så mange gange som nødvendigt.
Det praktiske problem med at bruge din til alt Problemet er, at folk ender med at arbejde som root i lange perioder, med alle de risici, det medfører: enhver dårligt skrevet kommando kan ødelægge halvdelen af systemet.
Sudo ser ud til at løse netop dette.I stedet for helt at skifte brugere, beholder du din normale session og øger kun rettighederne for de specifikke kommandoer, der kræver det. Mange distributioner anbefaler ikke engang at logge ind som root via den grafiske brugerflade.
For at opsummere hovedideen: du skifter brugere (normalt til root), mens du bevarer den identitet, indtil du afslutter.sudo, hvorimod den udfører en specifik kommando (eller en begrænset serie) med forhøjede tilladelser, og så vender du automatisk tilbage til at være en normal bruger.
Praktiske eksempler: brug af sudo med almindelige administrative kommandoer
Den bedste måde at se kraften i sudo på er gennem hverdagseksempler på systemadministration.hvor en normal bruger ville støde på den klassiske "Tilladelse nægtet".
Installer eller opdater pakkerHvis du forsøger at bruge pakkehåndteringen uden rettigheder, vil den normalt mislykkes, når der skrives til systemmapper. For eksempel i Debian eller Ubuntu:
apt-get update
Uden sudo vil systemet ikke kunne åbne de låste filer i /var/lib/apt/ Du vil se tilladelsesfejl. Hvis du gentager kommandoen med `sudo`, vil du blive bedt om din brugeradgangskode (hvis du er autoriseret), og processen vil fungere.
sudo apt-get update
Administrer brugereDet kræver rettigheder at oprette en ny bruger, ændre deres adgangskode eller ændre deres grupper. Et typisk eksempel ville være:
sudo useradd edward
Uden sudo-præfikset kan en normal bruger ikke få adgang til kontosystemet. og kommandoen ville mislykkes. Det samme gælder for værktøjer som usermod o deluser.
Rediger systemkonfigurationsfilerMange indstillinger gemmes i tekstfiler i /etcFor at åbne en af disse filer med en editor skal du bruge sudo. For eksempel for at redigere /etc/hosts:
sudo nano /etc/hosts
På systemer, der bruger systemd, skal du også bruge sudo til at administrere tjenesterFor eksempel, genstart af Apache:
sudo systemctl restart apache2
Bemærk at dette gælder for handlinger, der kun læser information og ikke ændrer systemet. (såsom at kontrollere status for en tjeneste), er sudo i mange tilfælde ikke nødvendigt, for eksempel:
systemctl status NetworkManager
Kør kommandoer som en anden bruger med sudo (-u, -s, -i)
Udover at køre som root, giver sudo dig også mulighed for at agere som andre systembrugere.Dette er meget nyttigt, når du vil teste tilladelser, gennemgå filer, der tilhører en anden konto, eller starte processer med en anden identitet.
Den mest direkte måde er at bruge -u efterfulgt af brugernavnet Og så den kommando, du vil udføre:
whoami
sudo -u pedro whoami
I første linje returnerer whoami dit rigtige brugernavn.; i den anden, takket være sudo -u pedroKommandoen udføres med identiteten "pedro". Du skal selvfølgelig også have tilladelse i sudoers-konfigurationen til dette.
Hvis det du ønsker er en fuld shell ligesom en anden bruger, har du to muligheder meget vigtigt:
- Sudo-sÅbner en privilegeret shell, der arver dit nuværende miljø. Målbrugeren (som standard root) starter i samme mappe og med dine miljøvariabler.
- sudo -iåbner en login-shell for målbrugeren. I dette tilfælde er dets "rene" miljø indlæst., udføres dens opstartsskripter (f.eks.
.profileo.bash_profile) og starter i dens$HOME.
Begge metoder efterlader et spor i kommandohistorikkenhvilket er interessant fra et revisionsperspektiv og for at huske, hvad der blev gjort i tidligere sessioner.
Sudoers-filen: hjertet i sudo-konfigurationen
Al sudo-adfærd (hvem kan bruge den, med hvilke kommandoer og under hvilke betingelser) styres fra sudoers-filen, beliggende i /etc/sudoers og suppleret med filerne i mappen /etc/sudoers.d/.
Denne fil bør ikke redigeres med en standard editor.Fordi en syntaksfejl kan gøre sudo ubrugelig og komplicere tingene alvorligt. Den korrekte måde er at bruge kommandoen visudo, som åbner filen med den konfigurerede editor og validerer dens indhold, før den gemmes.
For at redigere hovedfilen sudoers bruger du normalt:
sudo visudo -f /etc/sudoers
Inde i filen vil du se flere nøglelinjerfor eksempel:
- rod ALLE=(ALLE:ALLE) ALLE: angiver, at root-brugeren kan udføre enhver kommando på enhver vært, ligesom enhver anden bruger og gruppe.
- %admin ALLE=(ALLE) ALLE%-tegnet foran et navn refererer til en gruppe. Brugere i administratorgruppen har rettigheder svarende til root.
- %sudo ALLE=(ALLE:ALLE) ALLEsamme, men for sudo-gruppen, der er meget brugt i Debian og Ubuntu.
- # inkluderer /etc/sudoers.dDenne direktiv inkluderer automatisk alle konfigurationsfiler i den pågældende mappe.
Den anbefalede praksis er at undgå at rode for meget med hovedrodlinjen. og i stedet oprette specifikke filer i /etc/sudoers.d/ for specifikke grupper eller brugere. Dette gør det nemmere at holde konfigurationen organiseret og reducerer risici.
Giv sudo-tilladelser til en bruger: grupper og brugerdefinerede poster
I mange distributioner tilhører den første bruger, der blev oprettet under installationen, allerede sudo-gruppen. (eller admin), og det er derfor, de kan bruge sudo fra starten. Hvis du vil give tilladelser til flere brugere, er den nemmeste måde normalt at tilføje dem til den gruppe.
For at se hvilke brugere der tilhører sudo-gruppen kan du bruge:
grep 'sudo' /etc/group
Hvis du ønsker, at en bruger ved navn "bill" skal have fulde sudo-rettighederDu skal blot tilføje det til den relevante gruppe:
sudo adduser bill sudo
Efter dette vil Bill kunne udføre enhver kommando med sudo. (med undtagelse af specifikke begrænsninger tilføjet i sudoers). Hvis du senere vil fjerne disse privilegier, skal du fjerne ham fra gruppen:
sudo deluser bill sudo
Når du har brug for finere kontrol, giver sudoers dig mulighed for at definere meget detaljerede regler.For eksempel kan du oprette en særlig gruppe (netadmin) og begrænse den til specifikke netværkskommandoer ved hjælp af kommandoaliaser:
Cmnd_Alias CAPTURE = /usr/sbin/tcpdump
Cmnd_Alias SERVERS = /usr/sbin/apache2ctl, /usr/bin/htpasswd
Cmnd_Alias NETALL = CAPTURE, SERVERS
%netadmin ALL=NETALL
Med denne konfiguration vil alle, der tilhører netadmin-gruppen, kunne bruge tcpdump. og nogle Apache-kommandoer med sudo, men det vil ikke have frie tøjler over hele systemet. For at fuldføre opsætningen skal du tilføje bill til netadmin-gruppen:
sudo adduser bill netadmin
Konfigurer "sikker" og "komfortabel" sudo (med eller uden adgangskode)
En af de hyppigste praktiske beslutninger er, om sudo altid skal bede om en adgangskode eller ej.Begge metoder er mulige og konfigureres i sudoere eller i filer. /etc/sudoers.d/.
"Sikker" tilstand: beder altid om en adgangskodeDette er den mest fornuftige løsning: brugeren kan udføre enhver kommando som root med `sudo`, men hver gang de gør det, skal de indtaste deres adgangskode. En typisk indtastning til dette ville være:
usuario ALL=(ALL:ALL) ALL
"Praktisk" tilstand: ingen adgangskode (NOPASSWD)I desktopmiljøer eller testmaskiner foretrækker nogle brugere, at sudo ikke beder dem om adgangskoden hver gang. For at gøre dette kan du bruge noget i retning af:
usuario ALL=(ALL) NOPASSWD: ALL
I begge tilfælde er ideen den samme: en autorisationsfil oprettes i /etc/sudoers.d For den pågældende bruger kan dette gøres enten manuelt med Visudo eller via et script. Nogle automatiserer dette med små bash-scripts, der kopierer den relevante linje til den pågældende mappe ved hjælp af su -c at skrive som rod.
Bemærk venligst, at deaktivering af adgangskodebeskeder reducerer sikkerheden.En kommando, du utilsigtet kører (eller et ondsindet script), vil kunne bruge sudo uden yderligere barrierer.
Tilpas adgangskodeindtastning: Vis stjerner med pwfeedback
Adgangskoden indtastet med sudo viser efter design ikke noget på skærmen.Ingen bogstaver eller stjerner. Dette var tænkt som en sikkerhedsforanstaltning for at undgå at afsløre nøglelængden, men mange brugere finder det uvenligt.
I årevis har sudo tilladt at ændre denne adfærd med pwfeedback-indstillingen.Hvis du aktiverer det, vil du se en stjerne for hvert tegn, du indtaster, når du skriver din adgangskode.
For at aktivere det skal du redigere indstillingerne med visudo:
sudo visudo
Inde i filen skal du tilføje en linje som denne:
Defaults pwfeedback
Gem ændringer og lukFra det tidspunkt, når du kører en kommando med `sudo` og beder dig om din adgangskode, vil du se stjerner vises. Hvis du nogensinde foretrækker at vende tilbage til lydløs funktionalitet, skal du blot fjerne den linje fra `sudoers`.
Risici ved uforsigtig brug af sudo og root
At arbejde med sudo eller som root er utroligt kraftfuldt, men det kan også være katastrofalt. Hvis du ikke er forsigtig. Linux er designet til at være sikkert som standard, men når du hæver privilegier, fjernes mange af disse sikkerhedsforanstaltninger.
En af de mest åbenlyse risici er at slette kritiske systemfilerKommandoer som rm -rf / eller variationer med forkert stavede stier kan gøre systemet fuldstændig ubrugeligt. Selv noget tilsyneladende uskyldigt som rm -rf "$directorio"/* Det kan være dødeligt, hvis variablen er tom.
En anden alvorlig fare er at køre scripts eller binære filer downloadet fra internettet med sudo uden at kontrollere dem.Med superbrugerrettigheder kan de installere rootkits, bagdøre og alle former for malware, der er meget vanskelige at opdage bagefter.
Du kan også ødelægge systemet ved at ændre tilladelserne for vigtige filer.Spiller den slags ting på en vanvittig måde /etc/passwd, /boot eller GRUB selv med chmod o chown Det kan endda forhindre maskinen i at starte, hvilket tvinger dig til at geninstallere eller bruge avancerede gendannelsesværktøjer.
Den gyldne regel er klar: når du bruger sudo eller som root, så tænk dig om to gange, før du trykker på Enter.Og når det er muligt, kopier kommandoer fra pålidelige kilder, læs dem, og forstå, hvad de gør.
Deaktiver eller begræns root-kontoen ved at holde sudo nede
I mange delte miljøer er det ønskeligt at begrænse den direkte brug af root-kontoen.Hvis root-adgangskoden deles mellem for mange mennesker, kan alle foretage dybe ændringer i systemet uden sporbarhed.
En almindelig strategi er at blokere root-kontoen. så den ikke kan logges ind eller bruges direkte su med det, men stadig tillade visse brugere at bruge sudo. For eksempel:
sudo passwd -l root
Denne kommando låser root-adgangskoden.Du vil ikke kunne logge ind som root fra login eller bruge su til at skifte til den uden en gyldig adgangskode, men brugere, der er autoriseret i sudo-gruppen (eller med regler i sudoers), vil stadig kunne udføre administrative kommandoer.
Hvis du vil genaktivere root senereDu skal blot tildele en ny adgangskode ved hjælp af passwd root fra et miljø med de nødvendige rettigheder (f.eks. en gendannelsestilstand).
Alternative kommandoer og relaterede værktøjer: your og doas
Udover sudo og su bliver en alternativ kommando kaldet doas populær på nogle systemer (og run0, sudo-erstatning), inspireret af OpenBSD og med en enklere og mere minimalistisk filosofi.
Doas er normalt ikke installeret som standard.Derfor er den normale procedure at inkorporere den fra arkiverne og derefter oprette dens konfigurationsfil. /etc/doas.conf. Et grundlæggende eksempel ville være:
sudo apt-get install doas
sudo nano /etc/doas.conf
I den fil kan du definere meget simple reglerfor eksempel:
permit nopass manz
Denne linje angiver, at brugeren “manz” kan bruge doas uden en adgangskode. Du kan også bruge deny at blokere eller konfigurere finere tilladelser, men filosofien er, at syntaksen skal være mere direkte end sudoers.
Alligevel forbliver de facto-standarden sudo i de fleste Linux-distributioner.på grund af dens fleksibilitet, den store mængde tilgængelig dokumentation og dens integration med revisionsværktøjer.
At mestre brugen af sudo i Linux giver dig mulighed for at bevæge dig problemfrit mellem normale brugeropgaver og administrative opgaver.At opretholde systemsikkerhed ved at undgå vedvarende root-sessioner og tilpasse hver kontos tilladelser til dens faktiske behov; at forstå forskellen mellem `sudo` og `sudo`, at vide, hvordan man manipulerer `sudo` med `visudo`, at kontrollere indstillinger som `pwfeedback` eller `NOPASSWD` og at være opmærksom på risiciene ved en dårligt udført kommando er det, der adskiller "bare at afprøve kommandoer" fra at administrere et Linux-system ansvarligt.
Passioneret forfatter om bytes-verdenen og teknologien generelt. Jeg elsker at dele min viden gennem skrivning, og det er det, jeg vil gøre i denne blog, vise dig alle de mest interessante ting om gadgets, software, hardware, teknologiske trends og mere. Mit mål er at hjælpe dig med at navigere i den digitale verden på en enkel og underholdende måde.