Begynn finjustering Sudo på Linux

sudo verktøyet er en av arbeidshestene i Linux, men det er ofte ikke brukt så dyktig som det kunne være. Hvis du bare bruker sudo for å gi full root-tilgang til vanlige brukere, er det på tide å ta et skritt tilbake og finjustere sudo for å være litt mer kresen.

Helt tilbake i dag, mange Linux-brukere ville bare su til root for å håndtere pakker eller gjøre andre systemoppgaver. Noen folk ville selv bare kjøre som " rot, " fordi det var enklere. Det er en dårlig vane, en som Ubuntu hjalp meg (og sannsynligvis en god del andre) pause.

Men blindt legge folk til admin-gruppen, eller bare legge dem med alle rettigheter, er en ganske dårlig vane som godt. Hvis du er den eneste brukeren på systemet, noe som gir den klassiske ALL kan være greit, men hvis du deler et system hjemme eller sette opp et system for flere brukere, være mer finkornet med sudo er en bedre idé.

finjustering Sudo

For å finjustere sudo, skal vi starte med å redigere sudoers filen. Det er vanligvis /etc /sudoers. Til å redigere denne, du ikke
åpne sudoers i editor, normalt – du kommer til å bruke visudo program. Det vil åpne sudoers fil i standard editor, men du kan ikke anbefale bare åpne filen i Gedit eller whatnot. Du må også være root eller bruk sudo, som er litt rekursiv, men OK.

Standardinnstillingene for den sudoers filen varierer avhengig av hvilken distribusjon du bruker. Jeg bruker en Linux Mint system i forbindelse med dette stykket, så hvis du bruker Fedora, opensuse, eller en annen distro det sannsynligvis vil være annerledes.

La oss ta en titt på noen av linjene fra sudoers filen:


 # Bruker privilegium specificationroot ALL = (ALL: ALL) ALL # Medlemmer av admin gruppen kan få root-tilgang% admin ALL = (ALL) ALL # Tillat medlemmer av gruppen sudo for å utføre en kommando% sudo ALL = (ALL: ALL) ALL 


I utgangspunktet er dette slik at roten til å gjøre noe med sudo, og gi medlemmene av admin gruppen og sudo grupper ganske mye ubegrenset makt. Dette fungerer på enkle brukersystemer eller for svært små butikker, kanskje, men ikke så bra når du har mye av admins og brukere som kanskje trenger noen utvidede rettigheter, men ikke alle.

La oss si at du ønsker å la en bruker gjøre noe som ville kreve utvidede rettigheter, men uten å gi kjøring av systemet. For eksempel, hva om du ønsker å la en bruker kjøre apt-get update og apt-get upgrade?

Zonker ALL = (root) /usr /bin /apt-get

La oss pause dette ned. Det første feltet er brukernavnet, i dette tilfellet ". Zonker " Selvfølgelig, du ønsker å erstatte denne med ønsket brukernavn. Neste felt er vertsnavnet. I dette tilfellet er jeg slik at " alle " om du kan begrense til localhost eller noe annet hvis du foretrekker det. Dette er for mer komplekse situasjoner, og jeg vil dekke dette i en fremtidig opplæringen.

Det neste feltet (root) er brukeren som skal utføre kommandoen. Dette trenger ikke å være rot, for øvrig. Du vil kanskje gi en bruker muligheten til å utføre en kommando som en annen bruker i en rekke situasjoner, for eksempel når en prosess kjører som en annen bruker enn root.

Til slutt kommandoen du ønsker å kjøre. Hele banen er nødvendig der, så bruk /usr /bin /apt-get i stedet for bare apt-get. Merk at du ikke trenger å skrive inn den fullstendige kommandonavnet når du bruker sudo.

Mer enn én Command

Hva om du ønsker å gi tillatelse til å bruke mer enn én kommando? Du kan gjøre det i et par måter. Hvis det er bare en bruker og et par kommandoer, kan du bare skille dem med komma, slik:

Zonker ALL = (root) /usr /bin /apt-get, /usr /bin /dpkg

Nå kan Zonker kjøre apt-get eller dpkg. En ting å merke seg, selv om du kan kjøre en kommando som en vanlig bruker, kan du ikke bruke den med sudo mindre du eksplisitt lov til å gjøre det. For eksempel kan selv vanlige brukere kjøre dpkg -l for å se hvilke pakker som er installert. Men du kan ikke bruke den med sudo hvis du ikke har lov til å bruke dpkg, fordi du ville være å kjøre den med utvidede rettigheter.

Du kan også lage aliaser med et sett med kommandoer, slik at du kan gi et alias i stedet for en liste over kommandoer. Siden du har til å generere en liste over kommandoer uansett
, hva er fordelen her? Vel, hvis du har en komplisert oppsett, kan det være lurt å gi ulike grupper forskjellige sett med kommandoer. For eksempel si at du har en gruppe for admins, og en gruppe for webutviklere. Du ønsker kanskje å bare gi utviklere muligheten til å starte Apache, men admins bør være i stand til å starte Apache eller slå av eller starte maskinen på nytt. Her har du to aliaser:


 Cmnd_Alias ​​NEDSTENGING = /sbin /shutdown, sbin /reboot, /sbin /haltCmnd_Alias ​​APACHE = /etc/init.d/apache2 


Nå kan du bruke dem, som så:


 Admins ALL = nedleggelse, APACHEWEB ALL = APACHE 


Dette er vist litt annerledes på Ubuntu fellesskapet wiki.

Merk at du bør bruke litt tid på å verifisere eventuelle endringer. Du ønsker ikke å forlate brukere en krenging, eller gi dem mer makt enn beregnet.

Dette har vært en ganske rask oversikt, men det burde hjelpe deg i gang i finjustering sudo. Ganske snart, vil jeg følge opp og ta for oss hvordan du kan konfigurere flere kompliserte oppsett med bruker aliaser og flere verter. Inntil da, glad sudo'ing. Anmeldelser