Câu trả lời:
Trong MacOS X, người dùng root bị tắt theo mặc định, do đó su
sẽ không hoạt động. Như những người khác đã tuyên bố, tốt nhất nên sử dụng sudo
.
Nếu bạn phải cho phép người dùng root, xem technote của Apple: Việc kích hoạt và sử dụng người dùng "root" trong Mac OS X .
sudo su
, điều gì trên thế giới là điểm vô hiệu hóa su
?
su
", đó là để ngăn chặn đăng nhập root . Bằng cách không cho phép đăng nhập như root
, bạn ngăn chặn một loạt các vấn đề bảo mật có thể xảy ra. Không cho phép một người có thể sudo
cho su
là loại ngớ ngẩn. Về cơ bản, su
chỉ cần thay đổi id người dùng hiện tại và thực thi một lệnh (shell, nếu không được chỉ định). Nếu id người dùng đã là 0 (root), chẳng hạn như khi được thực thi sudo
, sẽ không có gì để nó thực hiện, vì vậy nó chỉ thực thi shell. Bạn có thể có được một hiệu ứng tương tự bằng cách làm sudo bash
.
Bạn có hai lựa chọn. Đầu tiên là sử dụng sudo -s
- điều này sẽ cung cấp cho bạn quyền truy cập siêu người dùng, nhưng bạn vẫn sẽ là "chính mình" (có thể nói), vì vậy những thứ như ~
vẫn sẽ là thư mục chính của bạn. Ngoài ra, bạn có thể sử dụng sudo su
, cung cấp cho bạn một vỏ là người dùng root thực sự của máy Mac.
sudo
để chạy các lệnh yêu cầu đặc quyền nâng cao, không chuyển sang vỏ gốc và hoạt động từ đó.
sudo
ethos đến cùng cực. Nhưng bất cứ điều gì: ngữ nghĩa. Không sử dụng shell root trong OS X.
Ví dụ, nếu bạn cần di chuyển tệp hoặc sử dụng git bằng CLI thì trong trường hợp đó, giải pháp tốt nhất sẽ là sử dụng sudo -s
lệnh. Sau lệnh đó, bạn không phải tiếp tục nhập mật khẩu nhiều lần.
Tôi nghĩ bạn không thể làm điều này như một người dùng "bình thường" ...
Nếu có một tài khoản người dùng khác có quyền quản trị, bạn phải sử dụng tài khoản này
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
Để chạy như sử dụng khác, sử dụng sudo -u
.
Ví dụ: để chạy trình soạn thảo văn bản, chẳng hạn như nano :
sudo -u someuser nano
Hãy và nhập mật khẩu người dùng quản trị Mac của bạn khi được nhắc. Tại thời điểm này, chính người dùng quản trị Mac của bạn đang gọi sudo
, không phải someuser
người dùng để bạn không nhập someuser
mật khẩu.
sudo
có nghĩa là để chạy một cái gì đó bằng cách sử dụng đặc quyền superuser.-u
nghĩa là có thể chạy một lệnh được chỉ định như người dùng được chỉ định này.someuser
nên được thay thế bằng tên người dùng mong muốn của bạn.Để mô phỏng thông tin đăng nhập ban đầu với tư cách là một người dùng cụ thể, bao gồm chạy các tập lệnh khởi động của họ, hãy sử dụng -I
.
sudo -u someuser -i nano
Điều này chạy nano
ứng dụng với tư cách là người dùng someuser
nhưng chỉ sau khi đã chạy các tập lệnh khởi động cho người dùng đó.
Nếu chúng tôi chọn không chỉ định một lệnh hoặc ứng dụng để chạy, chúng tôi sẽ nhận được một vỏ tương tác chạy như người dùng đó.
sudo -u someuser -i
sudo su someuser
Một cách tiếp cận khác sử dụng su
lệnh kết hợp với sudo
. Các su
lệnh có nghĩa là “người sử dụng chuyển đổi”.
sudo su someuser
Hoặc, để bao gồm chạy các tập lệnh khởi động của người dùng, hãy thêm dấu gạch nối.
sudo su - someuser
root
người sử dụngNgười root
dùng trong các hệ điều hành liên quan đến Unix có sức mạnh tuyệt đối để làm bất cứ điều gì.
Apple đã chọn vô hiệu hóa root
tài khoản trong macOS, để tránh khai thác lỗ hổng bảo mật và bảo vệ bạn khỏi tự bắn vào chân mình. Apple đã tạo ra ý tưởng về tài khoản người dùng Quản trị viên có nhiều quyền hạn, nhiều quyền hạn hơn tài khoản người dùng Chuẩn , nhưng không có quyền lực tuyệt đối như root
có. Xem ghi chú Hỗ trợ này của Apple để thảo luận.
Nếu cần, bạn có thể kích hoạt root
người dùng trong macOS và sau đó chuyển sang người dùng đó. Điều này được khuyến khích mạnh mẽ . Tôi sẽ đi xuống con đường này chỉ như một phương sách cuối cùng tuyệt vọng.
Để thảo luận về vấn đề này trong bối cảnh postgres
người dùng đang chạy hệ thống cơ sở dữ liệu Postgres trên macOS, hãy xem Câu hỏi này trên trang web chị em, DBA Stack Exchange .
sudo su
vẫn hoạt động, vì vậy nó không thực sự bị vô hiệu hóa. Nó chỉ không có mật khẩu.