Lợi ích thực sự của việc gán đặc quyền sudo cho người dùng thay vì sử dụng root là gì?


25

Tôi còn khá mới đối với quản trị máy chủ và tôi đã thấy rất nhiều trang web khuyên bạn nên gán đặc quyền sudo cho người dùng được tạo bởi người dùng root và cung cấp cho người dùng root mật khẩu cực kỳ dài để tăng cường bảo mật.

Tuy nhiên, nếu người dùng mới được tạo có thể thực hiện các chức năng tương tự như người dùng root, thì lợi ích thực sự của việc này là gì?


7
Sudoer không thể làm mọi thứ root có thể, chỉ những gì root cho phép sudoers sudo và sudoer vẫn phải sudo lệnh. Cuối cùng, sudoers sudo mọi thứ như tài khoản người dùng của riêng họ, đầu tiên có nghĩa là họ không phải đăng nhập với quyền root và thứ hai cho phép bạn xem ai đã lừa đảo điều gì đó.
KeithS

Câu trả lời:


48

Có một số lợi ích khi sử dụng sudobàn giao mật khẩu gốc. Không theo thứ tự đặc biệt:

  • Bạn không đưa ra mật khẩu gốc
    Theo quy tắc chung, nếu ai đó rời khỏi công ty của bạn và họ biết (các) mật khẩu gốc, giờ bạn phải thay đổi mật khẩu đó ở mọi nơi. Với quản lý cấu hình phù hợp đây là một phiền toái nhỏ. Không có nó, nó là một việc vặt rất lớn.

  • Bạn không trao chìa khóa cho vương quốc
    sudo cho phép bạn chỉ định danh sách các lệnh bị hạn chế mà người dùng có thể chạy, vì vậy nếu bạn quyết định rằng Alice chỉ cần khả năng dừng và khởi động Apache, nhưng Bob cần toàn quyền root mà bạn có thể đặt chúng lên theo.

  • Bạn có thể quản lý ủy quyền tập trung sudo hỗ trợ cấu hình LDAP, có nghĩa là mọi hệ thống trong công ty của bạn có thể nhìn vào máy chủ LDAP trung tâm để xác định ai được phép làm gì.
    Cần ủy quyền (hoặc ủy quyền) cho ai đó? Thay đổi cấu hình sudoers trong LDAP và tất cả các hệ thống của bạn được cập nhật cùng một lúc.

  • Có một đường mòn kiểm toán
    Ngoại trừ những người dùng được phép làm sudo su -, sudo shhoặc một cái gì đó tương đương, sudosẽ tạo ra một đường mòn kiểm toán trong đó người sử dụng ran những gì lệnh.
    (Nó cũng sẽ tạo ra một danh sách những người đã cho mình một cái vỏ gốc chưa được dán, vì vậy bạn có thể chỉ tay vào họ và rít lên không tán thành.)

  • sudotốt cho nhiều thứ hơn là chỉ root Mọi người tập trung vào sudonhư một cách để làm công cụ như người nhận su , nhưng đó không phải là tất cả .
    Nói Alice chịu trách nhiệm xây dựng phần mềm cụ thể, nhưng Bob cũng có thể chạy tập lệnh xây dựng. Bạn có thể cung cấp cho Bob một mục trong sudoers cho phép anh ta chạy tập lệnh xây dựng với tư cách là người dùng của Alice. (Vâng, chắc chắn, có nhiều cách tốt hơn để giải quyết trường hợp cụ thể này, nhưng nguyên tắc Let user A run a program as user Bcó thể hữu ích ...).
    Bạn cũng nhận được tất cả các lợi ích theo dõi kiểm toán mà tôi đã đề cập ở trên khi bạn làm điều này ...


1
Câu trả lời rất hữu ích - nếu tôi biết (và ý tôi là chắc chắn 100%) rằng tôi sẽ là người duy nhất quản lý một máy chủ duy nhất, tuy nhiên, bạn có thấy nhiều lợi ích khi gán đặc quyền sudo cho người dùng khác không (dù sao cũng sẽ là chính tôi) bên ngoài ngăn cản bản thân khỏi làm hỏng cái gì đó?
JM4

3
@ JM4 Tính nhất quán và thực hành tốt cho một ngày trong tương lai khi bạn làm việc trong môi trường lớn hơn. Từ quan điểm thực tế, bạn không bao giờ nên đăng nhập trực tiếp với quyền root trừ khi bạn đang ở trên bảng điều khiển vật lý đang sửa chữa một cái gì đó thực sự hoành hành, do đó, sudoso với đó sulà một sự khác biệt về học thuật - bạn sẽ phải nhảy qua một vòng hoặc khác. Sử dụng sudocung cấp cho bạn cơ hội để thực hiện nguyên tắc đặc quyền tối thiểu (điểm cuối cùng của tôi) khi thực tế và đó luôn là điều cần xem xét nghiêm túc.
voretaq7

2
Ngoài ra, sử dụng visudo để chỉnh sửa tập tin sudoers của bạn.
Justin thân mến

3
Lưu ý rằng nhiều lệnh tương tác sẽ cho phép người dùng bỏ qua dấu vết kiểm toán. Ví dụ, bất kỳ người dùng nào có sudo vithể :! bashmột lần bên trong vi.
Dietrich Epp

4
@DietrichEpp NOEXECThẻ giúp trong trường hợp đó.
Shane Madden

17

Sự khác biệt chính là người dùng xác thực sudobằng cách sử dụng mật khẩu của riêng họ , trong khi với suhoặc đăng nhập gốc trực tiếp mật khẩu gốc được sử dụng.

Điều này có nghĩa là bạn không phải chia sẻ mật khẩu gốc với tất cả và lặt vặt , và nếu bạn cần vô hiệu hóa quyền truy cập root cho một hoặc hai người dùng trong tương lai, bạn có thể vô hiệu hóa nó cho họ, thay vì phải thay đổi mật khẩu gốc.

sudocũng có khả năng giới hạn các lệnh mà mỗi người dùng có thể chạy như root, vì vậy người dùng cụ thể chỉ có thể được cấp quyền truy cập vào các tác vụ họ cần thực hiện, nếu họ không yêu cầu quyền truy cập root đầy đủ.


1
cảm ơn sự giúp đỡ của bạn. Tôi thấy lợi ích từ quan điểm của bạn, nhưng tôi cũng thực sự xem một người dùng cơ bản cho người dùng root như một điểm xác thực kép do tôi đã vô hiệu hóa đăng nhập người dùng root từ ssh trên máy chủ của tôi.
JM4

4

Trên đầu câu trả lời là hợp lệ, đừng quên rằng người dùng đã đăng nhập bằng root có khả năng phá vỡ hệ thống ở mọi lệnh. Nếu bạn buộc họ gõ sudo trước khi làm điều gì đó có khả năng nguy hiểm, ít nhất bạn làm cho họ biết rằng họ cần kiểm tra lại trước khi thực hiện một lệnh cụ thể.


2

Có thực sự - từ một quan điểm kiểm soát và đăng nhập sudo là tốt hơn nhiều.

Ví dụ: nếu bạn kiện sự kiện duy nhất được ghi lại trong nhật ký là bạn đang kiện. Bất cứ điều gì sau đó đi như root. Và nếu bạn đã từng xem các bản ghi trong Unix / Linux, bạn sẽ biết root thực hiện rất nhiều thứ.

Mặt khác, Sudo ghi lại khá nhiều thứ NHƯ người dùng ban đầu.


0

Sử dụng sudo khiến người dùng độc hại khó truy cập vào hệ thống hơn. Khi có một tài khoản root được mở khóa, một người dùng độc hại sẽ biết tên người dùng của tài khoản mà cô ấy muốn bẻ khóa trước khi bắt đầu. Khi tài khoản root bị khóa, người dùng phải xác định tên người dùng và mật khẩu để xâm nhập vào hệ thống.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.