Chúng tôi muốn rằng một số người dùng sẽ có thể làm ví dụ sudo
và trở thành root,
Vâng, đó là vấn đề sudo được thiết kế để giải quyết, vì vậy phần đó đủ dễ dàng.
nhưng với hạn chế là người dùng không thể thay đổi mật khẩu root.
Bạn có thể, như SHW đã chỉ ra trong một bình luận, cấu hình sudo để chỉ cho phép một số hành động nhất định được thực hiện dưới quyền root bởi một số người dùng. Nghĩa là, bạn có thể cho phép user1 làm sudo services apache2 restart
, cho phép user2 làm sudo reboot
nhưng không làm gì khác, trong khi cho phép người quản trị được thuê làm hệ thống user3
làm sudo -i
. Có nhiều hướng dẫn về cách thiết lập sudo như thế hoặc bạn có thể tìm kiếm (hoặc hỏi) tại đây. Đó là một vấn đề có thể giải quyết được.
Tuy nhiên, một người dùng đã được cấp khả năng sudo -i
hoặc sudo
vào một vỏ ( sudo bash
ví dụ) có thể làm bất cứ điều gì. Đó là bởi vì vào thời điểm sudo ra mắt shell, sudo đã ra khỏi hình ảnh. Nó cung cấp bối cảnh bảo mật của một người dùng khác (thường là root), nhưng không nói rõ ứng dụng đã thực hiện là gì. Nếu ứng dụng đó lần lượt ra mắt passwd root
, không có gì sudo có thể làm về nó. Lưu ý rằng điều này cũng có thể được thực hiện thông qua các ứng dụng khác; ví dụ, nhiều trình soạn thảo nâng cao hơn cung cấp các phương tiện để thực thi lệnh thông qua shell, shell sẽ được thực thi với uid hiệu quả của quá trình soạn thảo đó (nghĩa là root).
Đó là, đảm bảo rằng chúng tôi vẫn có thể đăng nhập vào máy chủ đó và trở thành root bất kể người dùng khác sẽ làm gì.
Lấy làm tiếc; nếu bạn thực sự có nghĩa là "đảm bảo chúng tôi sẽ có thể đăng nhập và sử dụng hệ thống bất kể ai đó có quyền truy cập root làm gì với nó", điều đó (cho tất cả ý định và mục đích) không thể được thực hiện. Một "sudo rm / etc / passwd" hoặc "sudo chmod -x / bin / bash" nhanh chóng (hoặc bất cứ cách nào sử dụng root shell) và dù sao bạn cũng bị hos khá nhiều. "Khá nhiều hosed" có nghĩa là "bạn sẽ cần khôi phục từ bản sao lưu và hy vọng họ không làm gì tệ hơn là trượt ngón tay". Bạn có thể thực hiện một số bước để giảm nguy cơ rủi ro do tai nạn dẫn đến một hệ thống không thể sử dụng được, nhưng bạn không thể ngăn chặn ác ý gây ra các vấn đề rất nghiêm trọng và bao gồm cả việc cần phải xây dựng lại hệ thống từ đầu hoặc ít nhất là đã biết sao lưu tốt.
Bằng cách cấp quyền truy cập root không bị chặn trên hệ thống cho người dùng, bạn tin tưởng người dùng đó (bao gồm mọi phần mềm họ có thể chọn để thực thi, thậm chí một thứ gì đó trần tục như ls) để không có ý định xấu và không gây rối. Đó là bản chất của quyền truy cập root.
Truy cập root hạn chế thông qua ví dụ sudo tốt hơn một chút, nhưng bạn vẫn phải cẩn thận để không mở bất kỳ vectơ tấn công nào. Và với quyền truy cập root, có rất nhiều vectơ tấn công có thể cho các cuộc tấn công leo thang đặc quyền.
Nếu bạn không thể tin tưởng họ với mức độ truy cập đó là gốc đòi hỏi, bạn sẽ cần hoặc là một rất chặt xuống cấu hình sudo, hay chỉ đơn giản là không cấp cho người dùng trong việc tiếp cận gốc câu hỏi ở tất cả các thông qua bất kỳ phương tiện nào, sudo hoặc ngược lại.
sudo
để cấp quyền cho ứng dụng đặc quyền gốc cụ thể. Theo cách đó, người dùng sẽ không được phép thay đổi mật khẩu gốc