Tệp sudo
dịch vụ tồn tại để đảm bảo rằng các đặc quyền được gọi là không ở lại sau khi khởi động lại. Về cơ bản, nó đảm bảo rằng sau khi khởi động lại, người dùng bình thường được gọi là quyền root sẽ vẫn là người dùng bình thường.
Một lời giải thích chi tiết về sudo
Tất cả các giải thích dưới đây là để có được tất cả thông tin cho mọi người đọc câu hỏi này và sau đó giải thích những gì tập tin sudo trong thư mục dịch vụ đang làm ở đó.
Khi bạn cài đặt Ubuntu hoặc bất kỳ bản phân phối nào khác sử dụng sudo
sự khác biệt giữa việc là root và là người dùng sử dụng sudo
để đạt được các đặc quyền "root like" (Đặc quyền quản trị hoặc siêu người dùng) là như sau:
Là gốc
- Bạn không được yêu cầu nhập mật khẩu cho mỗi hoặc tất cả các lệnh bạn chạy trên một phiên
- Không phải tất cả các lệnh bạn thực hiện sẽ được ghi lại theo mặc định
- Hệ thống giả định rằng bạn biết bạn đang làm gì (Lý do tại sao nó không yêu cầu mật khẩu mỗi khi bạn thực thi lệnh)
- Không có cơ hội thứ hai hoặc tùy chọn vào phút cuối nếu bạn mắc lỗi
Như sudo
- Bạn được yêu cầu nhập mật khẩu cho mỗi hoặc tất cả các lệnh bạn chạy trên một phiên. Ví dụ: nếu bạn mở một thiết bị đầu cuối và thực thi một lệnh cần đặc quyền quản trị, nó sẽ hỏi mật khẩu một lần cho phiên đó cho đến khi bạn đóng thiết bị đầu cuối hoặc đăng xuất. Điều này thay đổi tùy thuộc vào lệnh bạn sử dụng và ở đâu. Nó có thể hỏi một lần hoặc nhiều lần.
- Tất cả các lệnh bạn thực hiện sẽ được ghi lại vì bạn thực sự đang xin phép sử dụng lệnh siêu đặc quyền người dùng.
- Hệ thống giả định rằng bạn đang xin phép tạm thời và quyền quản trị sẽ được cho mượn tạm thời (Cho đến khi bạn đăng xuất, đóng thiết bị đầu cuối, v.v.)
- Bạn có một tùy chọn phút cuối để sửa chữa bất kỳ sai lầm. Điều này được thực hiện trong thời điểm bạn nhận được yêu cầu nhập mật khẩu.
Tại sao SUDO được tạo ra
Việc tạo SUDO đã được thực hiện bởi vì trong quá khứ, việc sử dụng root đã tạo ra nhiều vấn đề hơn các giải pháp. Người dùng đã có tất cả các quyền, điều này có nghĩa rằng nếu họ đã làm một số dọn dẹp mùa xuân và theo nghĩa đen xóa /usr
, /lib
và /bin
thư mục (vì họ nghĩ rằng họ không cần thiết cho họ) .. đoán những gì sẽ xảy ra. Nhiều vấn đề trong quá khứ là do người dùng không biết sức mạnh họ có khi sử dụng root. Về cơ bản họ đã root nhưng không hiểu Linux, hệ thống phân cấp hệ thống tệp, tập tin nào là quan trọng, v.v. (Một cái gì đó giống như có ferrari và không biết lái xe ... trên đường cao tốc!)
SUDO cũng được sử dụng bởi các ứng dụng GUI (Giống như Trình quản lý cập nhật) khi chúng cần các đặc quyền quản trị tạm thời để làm một cái gì đó. Họ chỉ cần nó cho một số lượng lệnh cụ thể (Thông thường là 1) và sau đó họ quay lại đặc quyền cấp độ người dùng. Điều này là để tránh có quyền root mọi lúc và để tránh mắc lỗi nếu người dùng quyết định loại bỏ một phần quan trọng của hệ thống.
Ngoài ra, nó cung cấp bảo mật tốt hơn vì người dùng root bị tắt theo mặc định.
Cuối cùng, nếu bạn có Máy tính để bàn hoặc Máy chủ, bạn thực sự không muốn mọi người đều root, cũng không có tất cả các đặc quyền của quản trị viên. Ý tưởng rất tệ nếu em gái hoặc em trai của bạn bắt đầu tự hỏi điều gì sẽ xảy ra nếu /boot
gặp DELchìa khóa. Đây là nơi sudo
đến để giảm cơ hội điều gì đó xấu xảy ra.
Gì Cung cấp đặc quyền siêu người dùng giới hạn cho người dùng cụ thể nghĩa là gì?
Người dùng sudo hoặc sudoers thực sự có một tệp cấu hình cho họ biết mức độ giới hạn hoặc mở lệnh sudo cho một người dùng cụ thể. Tệp /etc/sudoers
có tất cả thông tin để giới hạn hoặc cấp quyền truy cập cho người dùng sudo. Theo mặc định, nó đi kèm với quyền truy cập vào mọi thứ, nhưng bạn có thể định cấu hình hoặc giới hạn điều này theo ý muốn.
Để biết thông tin về cách sử dụng loại tệp sudoers man sudoers
trong một thiết bị đầu cuối. Ví dụ, định dạng thông thường là:
NGƯỜI DÙNG HOST = THÔNG TIN
Ví dụ cyrex server1 = /bin/ls
sẽ cung cấp cho người dùng cyrex trong máy chủ truy cập1 để chạy lệnh ls.
Ví dụ cyrex server1 (root) = /bin/ls
sẽ cung cấp cho người dùng cyrex trong máy chủ truy cập1 để chạy lệnh ls với quyền root.
Ví dụ cyrex ALL = /bin/ls
sẽ cung cấp cho người dùng cyrex trong tất cả các máy chủ truy cập để chạy lệnh ls.
Ví dụ cyrex ALL = ALL
sẽ cung cấp cho người dùng cyrex trong tất cả các máy chủ truy cập để chạy tất cả các lệnh.
Ví dụ luis ALL=(root) NOPASSWD: /bin/kill, /usr/bin/killall
sẽ cho phép tôi chạy sudo cho kill
và killall
các lệnh dưới dạng root mà không yêu cầu mật khẩu.
