OS X – dodawanie użytkownika do grupy

No i stało się. Nastał moment, w którym trzeba było porzucić klikalne narzędzia i pochylić się nad makowym terminalem. Co takiego się stało? Ano, zapragnąłem mieć jak w Linuksie.

OS X, podobnie jak Ubuntu, do wykonywania poleceń administracyjnych w terminalu używa polecenia sudo. Każde konto administracyjne w tym systemie należy do grupy admin, posiada więc prawa do sudo, zatem problemu z operacjami w terminalu nie ma. Zasadę najmniejszych uprawnień mam głęboko zakodowaną w świadomości, więc na co dzień pracuję na koncie „standardowym”. Dowcip polega na tym, że konto to nie ma uprawnień do sudo, więc żeby wykonać cokolwiek sensownego w konsoli powinienem przełączać się na inne konto, administracyjne. Nie, nie chcę odblokowywać roota, wykonywać su. Chcę mieć sudo i basta, przyzwyczaiłem się.

Recz w tym, że w Leopardzie Apple zmieniło sposób przechowywania informacji o grupach, użytkownikach, hostach i punktach montowania – ze zwykłych plików tekstowych na oparte na XML pliki .plist. Zmianie tej nie towarzyszyło niestety wydanie nowej wersji graficznego narzędzia Netinfo Manager – po prostu zostało ono usunięte z systemu. Makjuzer nie ma już GUI, przez które mógłby sobie wyklikać to i owo w temacie grup – został rzucony na pożarcie terminala, co w tym kręgu kulturowym jest ostateczną formą tortury.

O dziwo, w Ubuntu mogę sobie grzebać w grupach z wykorzystaniem okienek i to bez konieczności znajomości nazw samych grup wbudowanych – mogę po prostu odklikać konkretne uprawnienia. W Maku trzeba zrobić dwie rzeczy, żeby zwykły użytkownik mógł używać sudo.

Rzecz pierwsza – odblokowanie w pliku sudoers grupy wheel, która jest standardową w rodzinie BSD grupą użytkowników, którzy mogą korzystać z wszystkich poleceń systemu, nie będąc przy tym administratorami. Przełączamy się (lub przelegowujemy) na konto o uprawnieniach administracyjnych, uruchamiany terminal i wykonujemy:

sudo visudo

Podajemy hasło, otwiera się plik sudoers, w którym odszukujemy fragment

# Uncomment to allow people in group wheel to run all commands
# %wheel  ALL=(ALL)       ALL

po czym usuwamy znak komentarza i zamykamy vi, zapisując plik.

Rzecz druga to dodanie nas samych do potężnej grupy wheel. Wykonujemy polecenie:

sudo dseditgroup -o edit -a nasz_login -t user wheel

Koniec. Można się wylogować (przełączyć) i od tego momentu cieszyć się działającym sudo na swoim zwykłym, szarym koncie.