Slik legger du til en bruker i Sudoers-filen i Mac OS X

Avanserte brukere må kanskje legge til en brukerkonto i sudoers-filen, som tillater at brukeren kjører bestemte kommandoer med rotasjonsrettigheter. For å forenkle hva som betyr, vil disse nyopprettede brukerkontoene kunne utføre kommandoer uten å få tillatelse nektet feil eller måtte prefikse en terminalkommando med sudo. Dette kan være nyttig (eller nødvendig) for noen komplekse situasjoner, men det utgjør en sikkerhetsrisiko for andre, og derfor er dette ikke noe som skal endres uheldig. Vanligvis er de fleste brukere bedre med å bruke en adminkonto, bruker sudo på en kommandobase eller aktiverer rotbrukeren. Likevel, direkte modifisering av sudoers har mange brukssituasjoner for avanserte personer med grundig kunnskap om kommandolinjen, og det er for de mer komplekse situasjonene som vi vil fokusere på å justere sudoers-filen som beskrevet her.

Sudoers-filen er plassert på / etc / sudoers, men i motsetning til / etc / hosts og mange andre systemkonfigurasjonsfiler, vil du ikke peke på en generell tekstredigerer på filen for å endre den. I stedet vil du bruke en bestemt kommando kalt visudo, som bekrefter riktig syntaks før du lagrer dokumentet.

Viktig: Justering av sudoers er ikke beregnet for de fleste OS X-brukere. Bare avanserte brukere som har en overbevisende grunn til å gjøre det, bør aldri endre sudoers-filen. Hvis du ikke vet hva du gjør og hvorfor du gjør det, må du ikke redigere sudoers-filen, og ikke legge til noen brukere i sudoers-filen. Det kan utgjøre en sikkerhetsrisiko, eller du kan bryte noe.

Legg til en bruker til Sudoers i Mac OS X

Legge til brukere til sudoerne krever bruk av vi, noe som kan være ganske forvirrende hvis du ikke er vant til det. For de ukjente, skisserer vi de nøyaktige nøkkelkommandosekvensene for å redigere, sette inn og lagre filen i vi, følg instruksjonene nøye.

  1. Start Terminal og skriv inn følgende kommando:
  2. sudo visudo

  3. Bruk piltastene til å navigere ned til «#User privilegespesifikasjon» -delen, slik at den ser slik ut:
  4. # User privilege specification
    root ALL=(ALL) ALL
    %admin ALL=(ALL) ALL

  5. Sett markøren på neste tomme linje under% admin-oppføringen, og trykk deretter på "A" -tasten for å sette inn tekst, skriv deretter inn følgende på en ny linje, erstatt brukernavnet med brukernavnet på kontoen du ønsker å gi privilegium til (klikk kategorien mellom brukernavn og ALLE):
  6. username ALL=(ALL) ALL

  7. Klikk nå på "ESC" (escape) -tasten for å slutte å redigere filen
  8. Trykk på: tasten (kolon) og skriv deretter "wq" etterfulgt av retur-tasten for å lagre endringer og avslutte vi

Dette er omtrent hva det skal se ut, eksempelvis skjermbildet viser brukernavn 'osxdaily' lagt til:

Du bør være god å gå, du kan katte sudoers filen for å være sikker på at filen ble endret:

cat /etc/sudoers

Bruk katt med grep for å finne brukernavnet raskt hvis du ikke vil skanne gjennom hele filen:

cat /etc/sudoers | grep username

Nå som "brukernavn" er lagt til sudoers-filen, bør du være god å gå.

Løse en "/ etc / sudoers opptatt, prøv igjen senere" -feil

Hvis du prøver å endre sudoers og få en visudo: / etc / sudoers opptatt, prøv igjen senere 'feil, som vanligvis betyr at filen allerede er åpnet, enten av en annen bruker eller ved et uhell, eller ved feil å lukke visudo. Hvis du er på en multifunksjonsmaskin, må du sjekke med andre brukere før du gjør noe videre, men vanligvis bør dette ikke skje ofte på en enkeltbruker maskin. Det er viktig å skille mellom de to, fordi hvis du skruer opp sudoers-filen, kan du være i en verden med frustrasjon, problemer og eventuelt gjenoppretting av operativsystemet (eller sudoers-filen) fra sikkerhetskopier, hvorav løsningen er utenfor rammen av denne artikkelen .

På enbruker-Macer kan den "sudoers busy" -feilen skje etter at du har sluttet ut av Terminal app uten å forlate vi, eller hvis Terminal eller OS X krasjet, eller hvis filen for øyeblikket er åpen i en annen økt. Løsningen for de sistnevnte beskrivelsene for engangsmaskinsaker er ganske enkel, og du kan løse feilen ved å fjerne sudoers midlertidige filen som fungerer som en lås:

sudo rm /etc/sudoers.tmp

Du vil bare gjøre det hvis du er sikker på at en annen bruker (eller deg selv) ikke aktivt endrer filen, enten lokalt eller eksternt. Siden justering av sudoers er ganske avansert generelt antar vi at du vet hva du gjør her, men hvis du ikke kan spore opp hva eller hvorfor sudoers er åpne, kan du prøve å bruke dtrace eller opensnoop for å overvåke filbruken.