Câu trả lời:
Hai khả năng chính của dòng lệnh là:
su
và nhập mật khẩu root khi được nhắc.sudo
trước lệnh và nhập mật khẩu của bạn khi được nhắc.Đây là phương pháp ưa thích trên hầu hết các hệ thống, bao gồm Ubuntu, Linux Mint, (có thể nói là) Debian và các hệ thống khác. Nếu bạn không biết mật khẩu root riêng, hãy sử dụng phương pháp này.
Sudo yêu cầu bạn nhập mật khẩu của riêng bạn. (Mục đích là để hạn chế thiệt hại nếu bạn để bàn phím không được giám sát và mở khóa, và cũng để đảm bảo rằng bạn thực sự muốn chạy lệnh đó và đó không phải là một lỗi đánh máy.) Nó thường được cấu hình để không hỏi lại một vài lần vài phút để bạn có thể chạy một số sudo
lệnh liên tiếp.
Thí dụ:
sudo service apache restart
Nếu bạn cần chạy một số lệnh dưới dạng root, hãy thêm tiền tố vào mỗi lệnh sudo
. Đôi khi, sẽ thuận tiện hơn khi chạy shell tương tác với quyền root. Bạn có thể sử dụng sudo -i
cho điều đó:
$ sudo -i
# command 1
# command 2
...
# exit
Thay vì sudo -i
, bạn có thể sử dụng sudo -s
. Sự khác biệt là -i
tái i nitializes môi trường để giá trị mặc định lành mạnh, trong khi -s
sử dụng các file cấu hình của bạn cho tốt hơn hoặc tồi tệ hơn.
Để biết thêm thông tin, hãy xem trang web sudo hoặc gõ man sudo
trên hệ thống của bạn. Sudo rất cấu hình; ví dụ, nó có thể được cấu hình để cho phép một người dùng nhất định chỉ thực hiện một số lệnh nhất định dưới dạng root. Đọc sudoers
trang người đàn ông để biết thêm thông tin; sử dụng sudo visudo
để chỉnh sửa tập tin sudoers.
Các su
lệnh tồn tại trên hầu hết các hệ thống unix-like. Nó cho phép bạn chạy một lệnh như một người dùng khác, miễn là bạn biết mật khẩu của người dùng đó. Khi chạy không có người dùng chỉ định, su
sẽ mặc định cho tài khoản root.
Thí dụ:
su -c 'service apache restart'
Lệnh để chạy phải được thông qua bằng cách sử dụng -c
tùy chọn. Lưu ý rằng bạn cần dấu ngoặc kép để lệnh không bị phân tách bởi shell của bạn, nhưng được truyền nguyên vẹn cho shell gốc su
chạy.
Để chạy nhiều lệnh với quyền root, sẽ thuận tiện hơn khi bắt đầu một shell tương tác.
$ su
# command 1
# command 2
...
# exit
Trên một số hệ thống, bạn cần ở trong nhóm số 0 (được gọi wheel
) để sử dụng su
. (Vấn đề là hạn chế thiệt hại nếu mật khẩu root vô tình bị rò rỉ cho ai đó.)
Nếu có một mật khẩu gốc được đặt và bạn đang sở hữu nó, bạn chỉ cần gõ root
vào dấu nhắc đăng nhập và nhập mật khẩu gốc. Hãy cẩn thận và tránh chạy các ứng dụng phức tạp như root vì chúng có thể làm điều gì đó bạn không có ý định. Đăng nhập trực tiếp bằng root chủ yếu hữu ích trong các tình huống khẩn cấp, chẳng hạn như lỗi đĩa hoặc khi bạn tự khóa tài khoản của mình.
Chế độ người dùng đơn, hoặc cấp 1, cũng cung cấp cho bạn quyền root. Điều này chủ yếu dành cho các tình huống bảo trì khẩn cấp trong đó việc khởi động vào cấp độ chạy nhiều người dùng là không thể. Bạn có thể khởi động vào chế độ người dùng bằng cách chuyển single
hoặc emergency
trên dòng lệnh kernel. Lưu ý rằng việc khởi động vào chế độ một người dùng không giống như khởi động hệ thống bình thường và đăng nhập với quyền root. Thay vào đó, hệ thống sẽ chỉ khởi động các dịch vụ được xác định cho cấp 1. Thông thường, đây là số lượng dịch vụ nhỏ nhất cần có để có một hệ thống có thể sử dụng được.
Bạn cũng có thể chuyển sang chế độ người dùng bằng cách sử dụng lệnh telinit : telinit 1
; tuy nhiên, lệnh này yêu cầu bạn phải có quyền root thông qua một số phương thức khác để chạy.
Trên nhiều hệ thống, việc khởi động vào chế độ người dùng sẽ cung cấp cho người dùng quyền truy cập vào thư mục gốc mà không cần nhắc mật khẩu. Đáng chú ý, systemd
các hệ thống dựa trên cơ sở sẽ nhắc bạn nhập mật khẩu gốc khi bạn khởi động theo cách này.
Calife cho phép bạn chạy các lệnh như một người dùng khác bằng cách nhập mật khẩu của riêng bạn, nếu được ủy quyền. Nó tương tự như sudo phổ biến hơn nhiều (xem ở trên). Calife có trọng lượng nhẹ hơn sudo nhưng cũng ít cấu hình hơn.
Op cho phép bạn chạy các lệnh như một người dùng khác, bao gồm cả root. Đây không phải là một công cụ toàn diện để chạy các lệnh tùy ý: bạn gõ op
tiếp theo là một ghi nhớ cấu hình bởi người quản trị hệ thống để chạy một lệnh cụ thể.
Super cho phép bạn chạy các lệnh như một người dùng khác, bao gồm cả root. Lệnh phải được người quản trị hệ thống cho phép.
Xem thêm Wikipedia .
Đơn giản chỉ cần tiền tố lệnh mong muốn của bạn với lệnh pkexec
. Xin lưu ý rằng trong khi điều này hoạt động trong hầu hết các trường hợp, nó không hoạt động phổ biến.
Xem man pkexec
để biết thêm thông tin.
kdesu
và kdesudo
là mặt trước đồ họa đến su
và sudo
tương ứng. Chúng cho phép bạn chạy các chương trình X Window với quyền root mà không gặp rắc rối. Chúng là một phần của KDE . Thể loại
kdesu -c 'command --option argument'
và nhập mật khẩu gốc hoặc gõ
kdesudo -c 'command --option argument'
và nhập mật khẩu của bạn (nếu được phép chạy sudo
). Nếu bạn kiểm tra tùy chọn Mật khẩu giữ mật khẩu trong KdeSu, bạn sẽ chỉ phải nhập mật khẩu gốc một lần cho mỗi phiên đăng nhập.
Ktsuss (Dịch vụ giữ đơn giản, ngu ngốc) là phiên bản đồ họa của su.
Sáp ongBeesu là một giao diện đồ họa cho lệnh su đã thay thế Gksu trong các hệ điều hành dựa trên Red Hat. Nó đã được phát triển chủ yếu cho RHEL và Fedora.
gksu
và gksudo
gksu
và gksudo
là mặt trước đồ họa đến su
và sudo
tương ứng. Chúng cho phép bạn chạy các chương trình X Window với quyền root mà không gặp rắc rối. Họ là một phần của Gnome . Thể loại
gksu command --option argument
và nhập mật khẩu gốc hoặc gõ
gksudo command --option argument
và nhập mật khẩu của bạn (nếu được phép chạy sudo
).
gksu
và gksudo
đã lỗi thời. Chúng đã được thay thế bởi PolicyKit trong Gnome và nhiều bản phân phối (như Ubuntu) không còn cài đặt chúng theo mặc định. Bạn không nên phụ thuộc vào chúng có sẵn hoặc hoạt động đúng.
Sử dụng một trong các phương thức trong "chạy lệnh shell làm phần gốc". Bạn sẽ cần đảm bảo rằng cả DISPLAY
môi trường và môi trường đều không XAUTHORITY
được thiết lập lại trong quá trình chuyển đổi sang root. Điều này có thể yêu cầu cấu hình bổ sung của các phương thức nằm ngoài phạm vi của câu hỏi này.
Nhìn chung, đây là một ý tưởng tồi, chủ yếu là vì các ứng dụng đồ họa sẽ đọc và ghi các tệp cấu hình dưới dạng root và khi bạn cố gắng sử dụng lại các ứng dụng đó như người dùng bình thường của mình, các ứng dụng đó sẽ không được phép đọc cấu hình của riêng chúng.
sudo
sẽ chỉ hoạt động nếu (1) nó được cài đặt và (2) nếu việc sử dụng của bạn nằm trong tệp sudoers và nó được phép thực hiện thao tác.
pkexec
đang thay thế gksu
/ gksudo
trong rất nhiều bản phân phối hiện nay.
Sử dụng su
:
$ su -c command
hoặc là
$ su
# command
# exit
Trong cả hai trường hợp, bạn sẽ được nhắc root
nhập mật khẩu. Để biết thêm thông tin, xem trang hướng dẫn .
Vì câu hỏi không phải là Linux cụ thể, nên đây là cách bạn đạt được mục tiêu tương tự trong Solaris 9+ (hoặc Trusted Solaris 8):
Solaris, kể từ phiên bản 9, đã bao gồm một bộ công cụ được gọi một cách trìu mến là RBAC hoặc Kiểm soát truy cập dựa trên vai trò.
Điểm chính của RBAC là thông qua việc cấp Quyền và Quyền, cho Người dùng và / hoặc Vai trò hoặc cấp Vai trò cho Người dùng, bạn có thể tạo các mô hình chi tiết cực kỳ tốt cho những ai có thể chạy những đặc quyền nào.
Về cơ bản, bạn xác định ủy quyền trong / etc / security / auth_attr, sau đó cấp chúng cho người dùng hoặc vai trò trong / etc / user_attr.
Bạn xác định hồ sơ trong / etc / security / prof_attr. Sau đó, bạn liên kết các lệnh với các cấu hình đó trong / etc / security / exec_attr, sau đó bằng cách gán các cấu hình đó cho người dùng trong tệp / etc / user_attr.
Một khi những điều đó được thực hiện, bạn thực sự chạy pfexec <command>
để thực hiện lệnh với đặc quyền hay quyền được cấp cho rằng người dùng cho rằng lệnh.
Điều thú vị về RBAC là không có đặc quyền bổ sung nào được cấp cho chính lệnh hoặc người dùng, chỉ cho sự kết hợp của lệnh user +. Vì vậy, an toàn hơn là tạo nhị phân + hoặc chỉ sử dụng sudo để khiến người dùng có thể thực hiện khá nhiều thứ. (Tôi biết rằng bạn có thể khóa sudo, nhưng theo kinh nghiệm của tôi, hầu hết mọi người không)
Một ưu điểm khác của RBAC là bạn có thể tạo tài khoản vai trò gốc và gán vai trò đó cho người dùng có khả năng trở thành root bằng lệnh 'su' và mật khẩu gốc. Người dùng root cũng có thể đăng nhập ở Chế độ một người dùng, điều này tốt hơn (theo ý kiến của tôi) so với mô hình Linux nơi bạn có thể vô hiệu hóa mật khẩu gốc passwd -d root
hoặc khóa tài khoản root passwd -l root
, cả hai đều giúp đăng nhập bằng root khó khăn khi có sự cố xảy ra
Ben Rockwood có một bài đăng blog tuyệt vời về RBAC có thể được đọc tại Sử dụng RBAC trên (Mở) Solaris .
Hoặc bạn có thể cung cấp cho một số lệnh một siêu năng lực. Tôi đang nói về các quyền đặc biệt trong đó các lệnh được thực thi với sự cho phép của chủ sở hữu.
Nhận đường dẫn lệnh #which <command>
và đặt SUID hoặc SGID cho đường dẫn đó.
Các bit PS - SUID và SGID nên được chú ý cẩn thận. Họ có thể làm cho hệ thống của bạn không an toàn.