Để làm rõ một chút: Không có "lệnh sudo", chỉ có các lệnh cần quyền root để hoạt động chính xác và sudo
là lệnh để có được chúng cho một lệnh: sudo
chỉ cần chạy lệnh đã cho là root (đọc "sudo" là mệnh lệnh câu "superuser, làm gì đó!"). Các quy tắc về người dùng có thể làm điều này được viết ra /etc/sudoers
. Trên bản cài đặt Raspbian mặc định, người dùng mặc định "pi" đã có quyền của anh ta từ dòng này:
pi ALL=(ALL) NOPASSWD: ALL
Điều này có nghĩa là: "Người dùng 'pi' trên TẤT CẢ các máy chủ được phép chuyển sang TẤT CẢ người dùng và KHÔNG phải nhập PASSWD của mình khi sử dụng các lệnh TẤT CẢ (đọc: bất kỳ)". (Tôi đã sử dụng ngữ pháp điên ở đây để giữ trật tự của dòng .. một lưu ý về lý do tại sao có cách phân biệt máy chủ: theo cách này, cùng một tệp sudoers có thể được phân phối cho nhiều máy trên mạng để quản trị viên mạng ít làm việc hơn) .
Có thể là việc có thể chạy các lệnh bằng sudo mà không cần cấp mật khẩu quản trị viên là lý do tại sao bạn cho rằng việc sử dụng sudo qua SSH là rất nguy hiểm (Tôi chưa nghe nói về một vấn đề chung khi làm điều đó ... bạn cũng có thể giải thích chính xác những gì nguy hiểm bạn có nghĩa là gì?).
Chắc chắn bạn có thể có nhiều người dùng với các quyền khác nhau. Nhưng tôi sợ rằng sử dụng sudo vẫn là cách tốt nhất để quản lý các quyền này.
Vì vậy, tôi hy vọng công thức nhỏ này ở đây là những gì bạn cần:
$ sudo adduser admin
Điều này sẽ tạo một "quản trị viên" người dùng, yêu cầu mật khẩu, tạo thư mục chính của anh ấy, v.v.
$ sudo adduser admin sudo
$ sudo adduser admin adm
Điều này sẽ đưa người dùng "quản trị" vào nhóm người dùng "sudo" và "adm". Và vì các quyền được quản lý trong Linux bằng cách thêm người dùng vào nhóm người dùng, điều này mang lại cho người dùng "quản trị" tất cả các đặc quyền và quyền mà anh ta cần. Có một dòng trong /etc/sudoers
đó cho phép bất kỳ người dùng nào trong nhóm người dùng "sudo" thực hiện bất kỳ lệnh nào với quyền root; và đặc quyền này là những gì chúng ta cần cho người dùng quản trị viên (thêm anh ta vào "adm" cho phép anh ta đọc một số tệp nhật ký /var/log
mà không cần sử dụng sudo
và một vài thứ khác). Bạn vẫn cần sử dụng sudo
khi đăng nhập với tư cách quản trị viên - nhưng bây giờ sudo hỏi lại mật khẩu của quản trị viên bất cứ khi nào bạn không sử dụng sudo trong khoảng năm phút.
Bây giờ hãy đăng xuất và đăng nhập với tư cách là "quản trị viên" của người dùng. Kiểm tra xem
$ sudo apt-get update
$ sudo apt-get upgrade
làm. Nếu vậy, bạn có thể thu hồi một số đặc quyền của người dùng "pi", vì bây giờ bạn chắc chắn rằng người dùng quản trị của bạn có các đặc quyền đúng:
$ sudo deluser pi sudo
$ sudo deluser pi adm
Điều này sẽ ném người dùng "pi" ra khỏi nhóm người dùng "sudo".
$ sudo visudo
Điều này sẽ bắt đầu một trình soạn thảo cho phép bạn chỉnh sửa /etc/sudoers
. Đặt thẻ băm ( #
) trước dòng bắt đầu bằng "pi", nhận xét nó (hoặc chỉ cần xóa nó). Sau đó lưu và thoát trình chỉnh sửa, visudo sau đó sẽ tải lại các quy tắc đặc quyền ngay lập tức. Bây giờ người dùng "pi" không được phép sử dụng sudo nữa.
Sau đó, bạn có thể đăng nhập lại với tư cách là người dùng "pi". Nếu bạn muốn chuyển sang quản trị viên cho một số lệnh, hãy sử dụng su
("chuyển người dùng"):
$ su - admin
Nếu bạn muốn thêm người dùng: sử dụng sudo adduser <name>
như trên, thì hãy kiểm tra danh sách nhóm người dùng mà người dùng "pi" đã có:
$ groups pi
pi : pi dialout cdrom audio video plugdev games users netdev input
Sử dụng sudo adduser <username> <groupname>
để thêm người dùng mới của bạn vào một số nhóm người dùng này, cho phép anh ta sử dụng âm thanh, video được tăng tốc, sử dụng các thiết bị có thể cắm, v.v. Nếu không chắc chắn, hãy thêm anh ta vào tất cả các nhóm người dùng này (nhưng không "sudo"!).