Odpowiedzi:
W systemie MacOS X użytkownik root jest domyślnie wyłączony, dlatego su
nie będzie działać. Jak stwierdzili inni, najlepiej go używać sudo
.
Jeśli musi umożliwić użytkownikowi root zobaczyć TechNote Apple: Włączanie i stosując „root” użytkownika w systemie Mac OS X .
sudo su
, co na świecie jest sens w wyłączaniu su
?
su
”, lecz o zapobieganie logowaniu do roota . Nie zezwalając na logowanie jako root
, zapobiega się wielu możliwym problemom bezpieczeństwa. Nie pozwalając ktoś, kto może sudo
do su
niby głupie. Zasadniczo su
wystarczy zmienić bieżący identyfikator użytkownika i wykonać polecenie (powłokę, jeśli nie została określona). Jeśli identyfikator użytkownika ma już 0 (root), na przykład gdy jest wykonywany przy pomocy sudo
, nie ma nic do zrobienia, więc po prostu wykonuje powłokę. Możesz uzyskać podobny efekt, robiąc sudo bash
.
Masz dwie opcje. Pierwszym z nich jest użycie sudo -s
- da ci to dostęp do administratora, ale nadal będziesz „sobą” (że tak powiem), więc rzeczy takie jak ~
nadal będą twoim katalogiem domowym. Alternatywnie możesz użyć sudo su
, co daje powłokę jako rzeczywisty użytkownik root twojego komputera Mac.
sudo
do uruchamiania poleceń wymagających podwyższonych uprawnień, a nie do przełączania się na powłokę root i pracy z tym.
sudo
skrajnie podnoszą etos. Ale cokolwiek: semantyka. Nie używaj powłok roota w OS X.
Na przykład, jeśli potrzebujesz przenieść pliki lub użyć git za pomocą interfejsu CLI, wówczas najlepszym rozwiązaniem będzie użycie sudo -s
polecenia. Po tym poleceniu nie musisz ciągle wprowadzać hasła.
Myślę, że nie możesz tego zrobić jako „normalny” użytkownik ...
Jeśli istnieje inne konto użytkownika z uprawnieniami administratora, musisz z niego skorzystać
restricted user$ su
Password:(the root password here)
Sorry!
restricted user$ su - (an admin account here)
password:(the admin account password)
$ su - root
Password:(The root password here)
# -> You are root user now
sudo -u
Aby uruchomić jako inne użycie, użyj sudo -u
.
Na przykład, aby uruchomić edytor tekstu, taki jak nano :
sudo -u someuser nano
… I wprowadź hasło administratora Macintosh po wyświetleniu monitu. W tym momencie przywołuje użytkownika administrator Mac sudo
, a nie someuser
użytkownik, więc nie wprowadzasz someuser
hasła.
sudo
oznacza uruchomienie czegoś przy użyciu uprawnień administratora.-u
oznacza „uruchom określone polecenie jako ten określony użytkownik”.someuser
należy zastąpić żądaną nazwą użytkownika.Aby zasymulować początkowe logowanie dla konkretnego użytkownika, w tym uruchomienie skryptów uruchamiania, użyj -I
.
sudo -u someuser -i nano
Spowoduje to uruchomienie nano
aplikacji jako użytkownika, someuser
ale dopiero po uruchomieniu skryptów uruchamiania dla tego użytkownika.
Jeśli zdecydujemy się nie określać polecenia lub aplikacji do uruchomienia, otrzymamy interaktywną powłokę działającą jako ten użytkownik.
sudo -u someuser -i
sudo su someuser
Inne podejście wykorzystuje su
polecenie w połączeniu z sudo
. su
Komenda oznacza „przełączenie”.
sudo su someuser
Lub, aby włączyć uruchamianie skryptów uruchamiania użytkownika, dodaj łącznik.
sudo su - someuser
root
użytkownikroot
Łatwy w Unix związanych z systemami operacyjnymi mieć władzę absolutną na nic.
Firma Apple postanowiła wyłączyć root
konto w systemie macOS, aby uniknąć luk w zabezpieczeniach i zabezpieczyć Cię przed postrzeleniem w nogę. Apple stworzył ideę kont użytkowników Administrator, które mają wiele uprawnień, więcej mocy niż standardowe konto użytkownika, ale nie root
ma takiej mocy absolutnej jak ma. W celu omówienia zapoznaj się z uwagą na temat wsparcia Apple .
W razie potrzeby możesz włączyć root
użytkownika w systemie macOS, a następnie przełączyć się na tego użytkownika. Jest to zdecydowanie odradzane. Zejdę tą ścieżką tylko w rozpaczliwej ostateczności.
Aby omówić to w kontekście postgres
użytkownika korzystającego z systemu bazy danych Postgres w systemie macOS, zobacz to pytanie na stronie siostrzanej DBA Stack Exchange .
sudo su
nadal działa, więc nie jest tak naprawdę wyłączone. Po prostu nie ma hasła.