Những lợi ích của sudo trên su là gì?


19

Lợi ích thực tế mà Ubuntu (hoặc các dẫn xuất Debian) đạt được bằng cách vô hiệu hóa người dùng root là gì?

Ở mọi nơi tôi đọc, nó nói để ngăn chặn thiệt hại không chủ ý cho người dùng thiếu kinh nghiệm. Tôi muốn biết chính xác những gì, vì sudocó thể thực thi tất cả các lệnh (mà tôi biết / sử dụng).

Vì vậy, trong trường hợp nào root có thể gây ra thiệt hại trong khi sudokhông thể?

PS: Tôi biết cách làm sudoviệc.


Câu trả lời:


31

Vì vậy, trong trường hợp nào root có thể gây ra thiệt hại trong khi sudo không thể?

Vì bạn thường phải gọi sudomỗi lần bạn muốn làm điều gì đó đòi hỏi phải có đặc quyền, lý do là bạn sẽ "nghĩ trước khi nhảy", tức là không chỉ dán sudo trước một thứ gì đó mà không suy nghĩ trong giây lát lệnh bạn đang chạy sẽ làm

Với suMặt khác, một khi bạn đang ở, bạn đang ở. Bạn có carte blanche (một giấy phép mở) để làm bất cứ điều gì và tất cả mọi thứ, và lý do là bạn có thể quên trong chốc lát rằng bạn có những đặc quyền và nếu bạn Thật không may mắn, thực thi một cái gì đó sẽ ảnh hưởng nghiêm trọng / làm hỏng hệ thống của bạn - nếu bạn không có đặc quyền su, lệnh sẽ không làm gì nghiêm trọng.


8
Logic "suy nghĩ trước khi bạn nhảy" cũng ngây thơ như suy nghĩ người dùng sẽ dừng lại để suy nghĩ khi hiển thị hộp thoại có nội dung "Bạn có thực sự muốn cài đặt TrashTheComputer.Virus: Có / không?" sẽ giảm tỷ lệ nhiễm phần mềm độc hại.
Dan Neely

9
@DanNeely - Tôi không nghĩ vậy. Tôi gõ rất nhiều lệnh và hầu hết trong số chúng không yêu cầu sudo, vì vậy tôi không sử dụng nó. Khi tôi sử dụng nó, nó cho tôi một chút thời gian tạm dừng. Vâng, tôi đang nói với tư cách là một lập trình viên, không phải là người dùng trung bình, nhưng một lần nữa, người dùng trung bình không sử dụng dòng lệnh.
Nathan Long

2
@NathanLong không hoàn toàn đúng với Linux, lý do câu hỏi này tồn tại cho thấy "người dùng trung bình" không hiểu tại sao nên sử dụng sudohơn su. Quá thường xuyên, mọi người nói "sử dụng sudo vì nó an toàn hơn su" - thật ngây thơ khi nghĩ rằng nó không an toàn hơn chút nào. Để quên bạn đã sử dụng sukhông phải là lý do, đó chỉ là sự bất tài hoàn toàn nếu bạn vô tình chạy một lệnh dưới dạng root.
tro

1
@ash Tôi vẫn nói rằng một người dùng trung bình sẽ không hỏi về ý nghĩa bảo mật so sánh của hai phương pháp leo thang đặc quyền người dùng. Trên thực tế, OP có câu hỏi về StackOverflow. Nhưng OP sang một bên, nhớ những gì bạn đã làm 15 giây trước dễ hơn là nhớ những gì bạn đã làm ngày hôm qua, và bạn có thể dễ dàng có một phiên cuối kéo dài nhiều ngày. Vì vậy, có, bạn không nên quên khi bạn sử dụng su, nhưng cá nhân tôi không muốn thiết lập bom hơn là giả sử tôi sẽ nhớ giải giáp chúng.
Nathan Long

16

IMO những ưu điểm chính của sudo so với su là sudo có khả năng ghi nhật ký cao hơn những lệnh đã được chạy và sudo cho phép kiểm soát tốt hơn những gì người dùng có thể làm.

su là tất cả hoặc không, nhưng sudo có thể được cấu hình để cho phép truy cập vào một số, nhưng không phải tất cả các lệnh.

Xem https://help.ubfox.com/community/RootSudo để thảo luận đầy đủ hơn, bao gồm cả ưu điểm và nhược điểm.


11

su -

Khi đăng nhập với quyền root , mọi tác vụ bạn bắt đầu, hành động bạn kích hoạt hoặc sự kiện ngẫu nhiên gây ra bằng cách truy cập một trang web nhất định, v.v. sẽ chạy như siêu người dùng .

sudo

Khi bạn gọi sudo , khi bạn chạy một lệnh, chỉ có lệnh đó sẽ chạy như siêu người dùng .

Bạn sẽ được yêu cầu nhập mật khẩu , trước khi lệnh được thực thi. Vì vậy, tương tác người dùng của bạn cũng được yêu cầu .

Nỗ lực gọi sudo cũng có thể được ghi lại .


2
Thật vậy, nó yêu cầu mật khẩu người dùng hiện tại, giúp quản lý mật khẩu root dễ dàng hơn. Nếu một tài khoản bị xóa khỏi hệ thống, mật khẩu root không cần thiết lập lại. Thậm chí tốt hơn, tài khoản root thậm chí không yêu cầu mật khẩu, vì vậy tài khoản root không thể bị xâm phạm thông qua việc ép buộc.
jippie

@jippie nói chung các trạng thái thực hành tốt để xóa / chặn / làm mất hiệu lực mật khẩu gốc và chỉ cho phép truy cập qua sudo su. trong khi dấu gạch nối -là cờ được chấp nhận suvà xử lý trình bao của bạn như thể bạn đã đăng nhập với tư cách người dùng (chạy một tập các tệp môi trường khác nhau, ví dụ: .bashrc / .profile)
tro

3

Đó là về quản lý người dùng / mật khẩu cho sysadmin.

Nếu bạn có nhiều người dùng, tất cả họ sẽ có các tài khoản riêng biệt và có thể được theo dõi bằng các tài khoản đó. Điều này có nghĩa là mọi người không thể che giấu danh tính của họ. Ngoài ra, nếu bạn cần thu hồi quyền người dùng cụ thể, bạn cũng không phải đặt lại mật khẩu gốc. Để cung cấp cho mỗi người trong một môi trường có hơn 2 quản trị viên, mật khẩu gốc tạo ra một cơn ác mộng khi một người bỏ cuộc. Bạn không chỉ thay đổi nó, mà còn giao tiếp nó, v.v ... Tất cả những thứ này cũng phải xảy ra khi một trong số chúng bị đánh cắp máy tính xách tay hoặc những thứ tương tự. Một tài khoản với một mật khẩu cho mỗi người giúp việc quản trị trở nên đơn giản hơn. Nó tương tự như triết lý đằng sau tại sao mỗi dịch vụ nên có tài khoản riêng. Nếu một tài khoản bị xâm phạm, bạn không phải cấu hình lại hàng tá dịch vụ khác (chẳng hạn như các tác vụ sao lưu) để sử dụng một tài khoản khác.

Cá nhân tôi cũng thấy thuận tiện khi không có một mật khẩu khác để theo dõi, mất và đã bị xâm phạm. Trên RHEL tôi đặc biệt vô hiệu hóa tài khoản root sau khi định cấu hình sudo để tôi không phải theo dõi nó. Một lần nữa, một người dùng b0rks tệp sudo, nhưng nó có thể sửa được trong chế độ một người dùng. (Đương nhiên, nó thường là một máy sản xuất.)

LƯU Ý: 'sudo bash' sẽ cho phép bạn bỏ qua việc gõ sudo cho mỗi lệnh ...


Tôi luôn luôn sudo mc: D
Rony

Câu trả lời duy nhất ở đây xứng đáng để bỏ phiếu, trả lời rõ ràng câu hỏi mà không làm sai lệch câu hỏi hoặc đánh lừa mọi người thành một ý nghĩa sai về thông tin.
tro

@flickerfly, tôi tin rằng trong "đặt lại mật khẩu gốc cho cùng một người dùng" thì "xóa" cho cùng một người dùng đó - sẽ chính xác hơn theo cách đó.
Richlv

@Richlv, bạn nói đúng. Tôi đã thực hiện chỉnh sửa mà bạn đề xuất. Không chắc chắn những gì tôi dự định ở đó.
flickerfly

2

Tôi nghĩ trước tiên, chúng ta cần xem xét su và sudo thực sự là gì

su - là viết tắt của Người dùng thay thế. Bạn sử dụng điều này để chuyển sang shell như một người dùng khác sử dụng mật khẩu của người dùng đó. Thường dùng với root. Không yêu cầu mật khẩu khi thực thi bằng root.

sudo - cho phép người dùng được phép thực thi một lệnh được chỉ định là người dùng khác. Cũng thường được sử dụng với root. Tuy nhiên, điều này cho phép bạn quản lý cụ thể những lệnh nào có thể được thực thi khi sử dụng khác. (Ví dụ: bạn có thể cung cấp cho người dùng khả năng chạy tập lệnh init.d nhưng không có gì khác.)

Lưu ý, bạn luôn có thể chạy sudo suhoặc sudo -isẽ cung cấp cho bạn một vỏ gốc. Tuy nhiên, không có mật khẩu gốc có nghĩa là không đăng nhập trực tiếp bằng root ... có nghĩa là không ai có thể xâm nhập vào người dùng đó.

EDIT: vì vậy có lẽ câu trả lời mà bạn đang tìm kiếm là: không có mật khẩu gốc buộc bạn phải sử dụng sudo, điều này tự nhiên làm cho bạn phù hợp với sudotriết lý cho thấy bạn thực thi quyền kiểm soát tốt hơn đối với các hành động chạy dưới quyền root.


Tôi đã tự viết cái này ....
user606723

2

Ngoài ra, có những cân nhắc đăng nhập để xem xét giữa sudo và su. Là su chỉ đơn giản là làm mọi thứ với quyền root mà không có mục nào ngoài một dòng trong nhật ký xác thực nói rằng bạn đã trở thành root.

Mặt khác, Sudo - luôn được ghi lại dưới dạng ID người dùng của bạn với quyền riêng tư leo thang.


0

Thông thường, đăng nhập như su sẽ dễ dàng hơn khi thực hiện các nhiệm vụ hành chính. Tuy nhiên, có ít nhất một ngoại lệ: khi quyền sở hữu tệp có vấn đề. Nếu bạn cần một người dùng là chủ sở hữu của một tệp, sau đó đăng nhập với tư cách là người dùng đó và sử dụng sudo để donwload hoặc sao chép các tệp. Ví dụ đơn giản là bookmark và tập tin hình nền. Nếu người dùng không sở hữu tệp, dấu trang "Khôi phục" của Firefox "Từ tệp" sẽ thất bại. Khi bạn đặt hình nền máy tính, nó có thể không hoạt động trừ khi bạn sở hữu tệp. Đôi khi bạn chỉ có thể đặt đặc quyền hoặc kích hoạt dưới dạng tệp thực thi, nhưng một số cài đặt hoặc chương trình không thành công nếu bạn không phải là chủ sở hữu của tệp.


Bạn đăng nhập với quyền root và sử dụng Firefox để duyệt web? Tôi nghĩ rằng đây là lý do để vô hiệu hóa tài khoản root. Nó loại bỏ khả năng chỉ cần đăng nhập bằng root để sử dụng hàng ngày.
adempewolff
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.