Hur man lägger till en användare till Sudoers-filen i Mac OS X
Innehållsförteckning:
Avancerade användare kan behöva lägga till ett användarkonto i sudoers-filen, vilket gör att användaren kan köra vissa kommandon med root-behörighet.
För att avsevärt förenkla vad det betyder, kommer dessa nyligen privilegierade användarkonton sedan att kunna köra kommandon utan att få tillstånd nekad fel eller att behöva prefixa ett terminalkommando med sudo. Detta kan vara användbart (eller nödvändigt) för vissa komplexa situationer, men det utgör en säkerhetsrisk för andra, så detta är inte något som bör ändras slentrianmässigt.
Generellt sett är de flesta användare bättre av att använda ett administratörskonto, använda sudo per kommando eller aktivera root-användaren. Icke desto mindre har direkt modifierande sudoers gott om användningssituationer för avancerade individer med djup kunskap om kommandoraden, och det är för de mer komplexa situationerna som vi kommer att fokusera på att justera sudoers-filen enligt beskrivningen här.
Sudoers-filen finns på /etc/sudoers men, till skillnad från /etc/hosts och många andra systemkonfigurationsfiler, vill du inte peka en allmän textredigerare mot filen för att ändra den. Istället vill du använda ett specifikt kommando som kallas "visudo", som bekräftar korrekt syntax innan du sparar dokumentet.
Viktigt: Justering av sudoers är inte avsedd för de flesta Mac OS X-användare. Endast avancerade användare som har en övertygande anledning att göra det bör någonsin ändra sudoers-filen. Om du inte vet vad du gör och varför du gör det, redigera inte sudoers-filen och lägg inte till några användare i sudoers-filen.Det kan utgöra en säkerhetsrisk, eller så kan du gå sönder något.
Lägg till en användare till Sudoers i Mac OS X
Att lägga till användare till sudoers kräver användning av vi, vilket kan vara ganska förvirrande om du inte är van vid det. För den obekanta kommer vi att beskriva de exakta tangentkommandosekvenserna för att redigera, infoga och spara filen i vi, följ instruktionerna noggrant.
- Starta Terminal och skriv följande kommando:
- Använd piltangenterna för att navigera ner till avsnittet "User privilege specification", det ska se ut så här:
- Sätt markören på nästa tomma rad under %admin-posten och tryck sedan på “A”-tangenten för att infoga text, skriv sedan följande på en ny rad, ersätt "användarnamn" med användarens korta namn på kontot du vill ge privilegier till (tryckfliken mellan användarnamn och ALLA):
- Tryck nu på "ESC" (escape)-tangenten för att sluta redigera filen
- Tryck på :-tangenten (kolon) och skriv sedan "wq" följt av returtangenten för att spara ändringar och avsluta vi
sudo visudo
Användarbehörighetsspecifikation root ALL=(ALLA) ALL %admin ALL=(ALLA) ALL
användarnamn ALLA=(ALLA) ALLA
cat /etc/sudoers
Använd cat med grep för att hitta användarnamnet snabbt om du inte vill scanna igenom hela filen:
cat /etc/sudoers | grep användarnamn
Nu när 'användarnamn' har lagts till i sudoers-filen bör du vara klar.
Löser ett "/etc/sudoers upptaget, försök igen senare"-fel
Om du försöker ändra sudoers och får ett 'visudo: /etc/sudoers busy, try again later'-fel, det betyder vanligtvis att filen redan är öppnad, antingen av en annan användare eller av olycka eller genom att visudo stängs felaktigt. Om du är på en fleranvändarmaskin, se till att kolla med andra användare innan du gör något vidare, men i allmänhet bör detta inte hända ofta på en enda användares dator. Det är viktigt att skilja de två åt, för om du förstör sudoers-filen kan du hamna i en värld av frustration, problem och eventuell återställning av operativsystemet (eller sudoers-filen) från säkerhetskopior, vars lösning ligger utanför ramen för denna artikel .
På enanvändar-Mac kan det där "sudoers busy"-felet inträffa efter att ha avslutat Terminal-appen utan att avsluta vi, eller om Terminal eller Mac OS X kraschade, eller om filen för närvarande är öppen i en annan session. Lösningen för de sistnämnda beskrivna engångsmaskinerna är ganska enkel, och du kan lösa felet genom att ta bort sudoers temporära fil som fungerar som ett lås:
sudo rm /etc/sudoers.tmp
Du vill bara göra det om du är säker på att en annan användare (eller du själv) inte aktivt modifierar filen, vare sig lok alt eller på distans. Eftersom justering av sudoers är ganska avancerat i allmänhet, antar vi att du vet vad du gör här, men om du inte kan spåra vad eller varför sudoers är öppet kan du prova att använda dtrace eller opensnoop för att övervaka filanvändningen.