Tại sao lại gọi là sudo?


30

Tại sao chúng ta sử dụng sudođể thực hiện một lệnh đầu cuối như là một hành chính? Tại sao không phải là nó adminhay cái gì khác? Có một lý do cho sudo?


19
Đọc sudo lslà "superuser, làm ls" (và không, nó không ngớ ngẩn, việc nhớ mật khẩu rất quan trọng để ghi nhớ các lệnh) (và không có, có lẽ nó có nghĩa là " s phù thủy u ser và làm , cho rằng suphương tiện chuyển đổi người dùng Nhưng tôi thấy đẹp nhất cựu. -))
Rmano

1
superuser tốt hơn nhiều so với admin :) cảm ơn bạn đã trả lời.
Mohammad

2
Đó là sudo voodoo mà bạn làm. :)
Shadur

14
Thực tế thú vị: trong tiếng Ý sudocó nghĩa là (tôi) đổ mồ hôi . Tôi thích diễn giải sudo Xnhư đổ mồ hôi vì sợ đưa ra mệnh lệnh sai và xóa sạch tất cả dữ liệu của tôi . Điều này giúp ghi nhớ rằng bạn chỉ nên thêm sudovào trước các lệnh khi 1) Cần thiết 2) Bạn biết những gì bạn đang làm 3) Bạn đã cẩn thận viết và đọc dòng lệnh để tránh lỗi chính tả (đặc biệt là những khoảng trống khó đọc bắt và có thể dẫn đến kết quả bất ngờ thực sự khủng khiếp).
Bakuriu

2
@Rmano su ban đầu có nghĩa là người dùng siêu cấp của người Hồi giáo , người dùng thay thế người dùng đã đến sau .
Gilles 'SO- ngừng trở nên xấu xa'

Câu trả lời:


32

Từ Wikipedia :

sudo là một chương trình dành cho các hệ điều hành máy tính giống Unix, cho phép người dùng chạy các chương trình với các đặc quyền bảo mật của người dùng khác (thông thường là siêu người dùng hoặc root). Tên của nó là một từ ghép của "su" (người dùng thay thế) và "làm", hoặc thực hiện hành động.

Không giống như lệnh su, người dùng thường cung cấp mật khẩu của riêng họ cho sudo chứ không phải mật khẩu gốc. Sau khi xác thực và nếu tệp cấu hình / usr / local / etc / sudoers (đôi khi được tìm thấy tại / etc / sudoers) cho phép người dùng truy cập, thì hệ thống sẽ gọi lệnh được yêu cầu. Tệp cấu hình sudoers cho phép một số lượng lớn cấu hình, bao gồm nhưng không giới hạn ở: chỉ bật các lệnh gốc từ thiết bị đầu cuối gọi; không yêu cầu mật khẩu cho một số lệnh nhất định; yêu cầu mật khẩu cho mỗi người dùng hoặc nhóm; yêu cầu nhập lại mật khẩu mỗi lần hoặc không bao giờ yêu cầu mật khẩu cho một dòng lệnh cụ thể. Nó cũng có thể được cấu hình để cho phép truyền các đối số hoặc nhiều lệnh và thậm chí hỗ trợ các lệnh với các biểu thức thông thường.

Đây là lệnh một lần tạm thời với các đặc quyền superuser (quản trị viên) mà không cần đăng nhập root trực tiếp.


11
Phần wiki là chính xác. Nhận xét về "Mac là Su" là không chính xác. Máy Mac có cả hai sudo, và su, giống như BSD và Linux.
daviewales

@Virusboy Xin chào, tôi rất tiếc khi thử trong chủ đề này. Nhưng tôi phải biết Có dễ sử dụng Ubuntu 14.04 với Toshiba M840 i3-3110M không. Cảm ơn bạn.
Bon

Thật dễ dàng trên mọi máy tính
Virusboy

21

xkcd: Sandwich

Trước sudo , hầu hết các quản trị viên đã đăng nhập với tư cách là người dùng root vì đây là cách dễ dàng để định cấu hình hệ thống của bạn, vì bạn có tất cả các quyền. Tuy nhiên, một lỗi nhỏ hoặc liên kết internet sai và toàn bộ hệ thống của bạn có thể bị ảnh hưởng hoặc thậm chí bị xâm phạm.

Do vấn đề này, sudo xuất hiện . Mục đích là chỉ sử dụng các đặc quyền quản trị trong một khoảng thời gian ngắn và chỉ khi được yêu cầu. Ngoài ra, điều này sẽ tránh người dùng đăng nhập vào tài khoản khác. Điều này rõ ràng sẽ tăng cường an toàn hệ thống .

Trong Ubuntu , họ chọn tăng cường sự an toàn cho hệ thống của bạn. Vì vậy, họ quyết định đi theo con đường 'sudo'. Người dùng root bị vô hiệu hóa; không cần nó và đặc biệt là không có rủi ro khi người dùng đăng nhập thông qua giao diện X với người dùng root. Ngoài ra, họ đã cho phép mọi lệnh được khởi chạy với sudo cho người dùng được ủy quyền. Điều thú vị là người dùng có quyền truy cập vào tài khoản root.

Hạn chế của sudo:

  • Những lệnh nào bạn cho phép thông qua sudo
  • Bạn cần viết sudotrước mỗi lệnh yêu cầu đặc quyền quản trị
  • Mỗi lần như vậy bạn cần nhập lại mật khẩu .

sudonghĩa là gì? Tên của nó là một từ ghép của "su" (người dùng thay thế) và "làm".

Tại sao sudokhông admin? Tôi nghĩ sudocó nghĩa là admintrong một thời gian cụ thể và chỉ khi bạn cần nó.

Những người đến từ môi trường windows nên hiểu tại sao không admin :)

Tham khảo: Hình ảnh trang web
: xkcd


vậy tại sao nó không được gọi là Rodo?
JamesRyan

3
Đoạn trước của bạn trước đoạn văn sudo là sai. Không có sự khác biệt giữa susudovề mặt này, sự khác biệt duy nhất giữa hai là thông tin đăng nhập được sử dụng. Sử dụng sudothay vì sukhông an toàn hơn (trên thực tế, nó có phần kém an toàn hơn); lợi ích chính của sudo (và lý do Ubuntu chọn nó) là sự đơn giản cho người dùng (chỉ cần nhớ một mật khẩu).
Gilles 'SO- ngừng trở thành ác quỷ'

11

Từ Linux.com, một sản phẩm của Quỹ Linux:

Sudo là viết tắt của " người dùng thay thế làm " hoặc " siêu người dùng làm " (tùy thuộc vào cách bạn muốn xem xét nó). Những gì sudo làm là cực kỳ quan trọng và quan trọng đối với nhiều bản phân phối Linux. Thực tế, sudo cho phép người dùng chạy một chương trình như một người dùng khác (thường là người dùng root).

[Nhấn mạnh mỏ.] Nguồn


3

siêu người làm

Có một lệnh, su, để trở thành siêu người dùng, vì vậy bạn có thể nói

$ su
# apt-get install somehorror
# exit
$

sudo cho phép bạn làm điều đó trong một cú đánh, và bạn không cần phải từ bỏ sức mạnh ma thuật của mình.

$ sudo apt-get install somehorror

2
su("Người dùng thay thế") cho phép bạn trở thành bất kỳ người dùng nào : bạn có thể chỉ định tên người dùng làm đối số.
David Richerby

1
Trên thực tế, cả hai không hoàn toàn giống nhau, nhưng giống nhau trong hầu hết các trường hợp. Nhưng sudo chủ yếu chỉ cho phép bạn chạy một chương trình với các đặc quyền siêu người dùng, nhưng giữ cho môi trường bình thường của bạn giống nhau. su thực sự làm cho bạn siêu người dùng, với môi trường siêu người dùng.
Marty Fried

3

Về lý do tại sao nó không phải là "quản trị viên" - hay gián tiếp hơn, tại sao su không phải là "switchUser" hay đại loại như thế - Các lệnh Unix truyền thống có xu hướng viết tắt tối thiểu vì lý do lịch sử phải làm với nguồn gốc của Unix.

Vì lý do cơ bản nhất, chúng ta cần quay lại cùng lý do nó được gọi là Unix ngay từ đầu. Phần lớn Unix được lấy cảm hứng từ một trong những hệ điều hành đa nhiệm đầu tiên, Multics của MIT. (Unix được đặt tên là "số ít của Multics" hoặc "Multics Multated", tùy thuộc vào người bạn hỏi và tâm trạng của họ tại thời điểm này.)

Trong số các đổi mới khác của Multics, nó đã đưa ra khái niệm tách vị trí tệp thực tế khỏi thông tin thư mục, cho phép một tệp có nhiều tên. ("Liên kết", theo thuật ngữ Unix.) Multics đã tận dụng (quá mức) toàn bộ lợi thế của việc này; hầu hết các lệnh Multics đều có cả ALongNameThatIsImpossibleToType và ASNTOECR (một tên ngắn mà chỉ các chuyên gia mới có thể nhớ). Kinh nghiệm cho thấy rằng những cái tên dài thực sự không tạo được nhiều sự thân thiện với người dùng vì thực tế, vào thời điểm đó, tất cả người dùng đã nhanh chóng trở thành "chuyên gia" và hầu như không ai từng sử dụng tên dài. Khi Unix áp dụng một số thiết kế của Multics, một trong những đơn giản hóa của chúng là loại bỏ các tên dài không sử dụng và chỉ giữ các tên ngắn thân thiện với chuyên gia.

Điều này cũng phù hợp với triết lý Unix về việc giảm hệ điều hành và lệnh cốt lõi của nó được đặt thành các yếu tố cần thiết của chúng, cho phép nó chạy hiệu quả trên các hệ thống nhỏ hơn. Trong những ngày đó, các lập trình viên vẫn bảo tồn từng byte và chu kỳ có thể. Bộ xử lý chậm hơn rất nhiều, tốc độ thiết bị đầu cuối cũng chậm hơn rất nhiều và bộ nhớ đắt hơn rất nhiều (và chậm hơn, và có bộ nhớ đệm nhỏ nếu có). Giữ các lệnh hệ thống xuống một độ dài tối thiểu có thể không thực sự tiết kiệm được nhiều tài nguyên thực sự (nếu có), nhưng nó "cảm thấy đúng" cho suy nghĩ của thời đại.

Nếu bạn thực sự nhấn mạnh vào tên lệnh thân thiện với người dùng, câu trả lời của Unix sẽ là "Bạn biết cách viết tập lệnh shell; tự thực hiện nó. Nếu bạn không biết cách viết tập lệnh shell, bạn cần học cách làm vì vậy. Nếu bạn không thích học và / hoặc viết mã, bạn sẽ không hài lòng với Unix và nên sử dụng thứ khác. "


3

Cho dù " superuser " là su nguồn gốc ban đầu, nó không chính xác vì tên người dùng bạn cung cấp không phải là siêu người dùng. Ditto để thực thi các lệnh như một người dùng khác sử dụng sudo -u.

"Người dùng thay thế " thì chính xác hơn, nhưng nghe có vẻ khó hiểu. Nó làm tôi nghĩ đến một giáo viên thay thế.

Do đó, tôi thích nghĩ suđơn giản là "chuyển đổi người dùng" và sudodo đó là "chuyển đổi người dùng và làm".


1
luôn luôn là siêu người dùng nhưng thay thế âm thanh của người dùng đúng hơn
BeyondProgrammer

1

Từ trang web Sudo :

"Sudo là gì?

Sudo (su "do") cho phép quản trị viên hệ thống ủy quyền cho người dùng (hoặc nhóm người dùng) nhất định khả năng chạy một số (hoặc tất cả) lệnh gốc hoặc người dùng khác trong khi cung cấp bản kiểm tra các lệnh và đối số của họ . "

"Sudo lần đầu tiên được hình thành và triển khai bởi Bob Coggeshall và Cliff Spencer vào khoảng năm 1980 tại Khoa Khoa học Máy tính tại SUNY / Buffalo. Nó chạy trên VAX-11/750 chạy 4.1BSD. Phiên bản cập nhật, được ghi có cho Phil Betchel, Cliff Spencer , Gretchen Phillips, John LoVerso và Don Gworek, đã được đăng lên mạng tin tức Usenet vào tháng 12 năm 1985. "

Điều đó nói rằng, trong khi tôi không tin có bất kỳ bằng chứng nào, tôi luôn tin tưởng mạnh mẽ rằng cái tên đó là một loại trò đùa lập trình viên táo bạo. Bạn có lệnh "su" (siêu người dùng) "làm" nhưng thực ra bạn không phải là siêu người dùng - biến "doo" thành "doh" và "sudo" trông giống như "giả" (giả , giả mạo).


-2

Hầu hết mọi người đã đưa ra câu trả lời rằng đó là một bản mashup của "siêu người dùng làm". Tôi thích điều này, nhưng có thể đúng hơn khi nói rằng đó là một sự kết hợp giữa "người dùng thay thế làm" bởi vì bạn có thể chọn người dùng mà bạn "làm" như với cờ -u.

Tôi cũng nghĩ về nó như một cách chơi chữ với từ psuedonymous bởi vì bạn có thể giả vờ là một người khác, hoặc root hoặc bất kỳ người dùng nào khác sử dụng cờ -u.


3
Chà, câu hỏi đặt ra là tại sao nó được đặt tên theo cách của nó, không phải là từ viết tắt và / hoặc ghi nhớ, vì vậy ... [cần dẫn nguồn]
derobert

Ngoài ra, người dùng mục tiêu mặc định không cần phải có root(mặc dù nó có ý nghĩa đối với nó hoặc ít nhất là một với uid 0 và nói chung là như vậy), hãy xem phần runas_defaulttrong sudoers.
Stéphane Chazelas

@derobert +1 để sử dụng "backronyms" và để giữ cho trang web sạch khỏi các câu trả lời không chính xác.
ba cốc

@sch cảm ơn, tôi không biết điều đó.
ba cốc
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.