Sudo

Bách khoa toàn thư mở Wikipedia
sudo
Phát triển bởiTodd C. Miller
Phiên bản ổn định
1.8.23 / 30 tháng 4 năm 2018; 5 năm trước (2018-04-30)[1]
Kho mã nguồn
Viết bằngC
Hệ điều hànhtương tự Unix
Thể loạiPrivilege authorization
Giấy phépISC-style[2]
Websitewww.sudo.ws

sudo (/ˈsd/ or /ˈsd/[3]) là một chương trình cho các hệ điều hành tương tự Unix cho phép người dùng chạy các chương trình với đặc quyền bảo mật của người dùng khác, và mặc định là superuser (thường là tài khoản root). Nó ban đầu được gọi là "superuser do"[4] vì các phiên bản cũ hơn của sudo được thiết kế để chỉ chạy các lệnh như superuser. Tuy nhiên, các phiên bản sau này các phiên bản sau này đã thêm hỗ trợ cho các lệnh chạy không chỉ là superuser mà còn là những người dùng khác (bị hạn chế),  và do đó nó cũng thường được mở rộng thành "substitute user do".[5][6]  Mặc dù trường hợp thứ hai phản ánh chức năng hiện tại của nó chính xác hơn, sudo vẫn thường được gọi là "superuser do" vì nó thường được sử dụng cho các tác vụ quản trị.

Không giống như lệnh tương tự su, người dùng phải, theo mặc định, cung cấp mật khẩu  của họ để xác thực, thay vì mật khẩu của người dùng đích. Sau khi xác thực và nếu file cấu hình, thường nằm ở /etc/sudoers, cho phép người dùng truy cập, hệ thống sẽ gọi ra lệnh được yêu cầu. File cấu hình cung cấp các quyền truy cập chi tiết, bao gồm chỉ cho phép các lệnh từ thiết bị đầu cuối gọi; 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 các đối số truyền hoặc nhiều lệnh.

Root là người dùng hiện có trên mọi hệ thống Linux. Nói chính xác hơn, đó là một người dùng đặc biệt - siêu người dùng cao nhất! root là người dùng duy nhất có đặc quyền thật sự để làm mọi thứ.

Trái ngược với hai loại tài khoản người dùng mà bạn có thể tạo (người dùng quản trị viên và người dùng bị hạn chế), root nó tồn tại theo mặc định và không thể đổi tên hoặc xóa. Thông thường, đăng nhập hoặc truy cập với tư cách root vốn bị tàn tật vì lý do bảo mật.

Bạn có thể nghĩ rằng người dùng quản trị của bạn là tài khoản mạnh nhất trên máy của bạn và có thể làm mọi thứ, nhưng điều đó là sai. Đơn giản hóa và nói chung, người dùng quản trị của bạn gần như ngang bằng với người dùng bị hạn chế quyền. Nó cũng chỉ có quyền ghi trong thư mục chính của chính nó và cũng có thể không thay đổi cài đặt trên toàn hệ thống. Tuy nhiên, người dùng quản trị có một đặc quyền đặc biệt và quan trọng. Vì đăng nhập với quyền root bị cấm trên Ubuntu theo mặc định, nên phải có một cách khác trở thành root trong một số trường hợp để có thể thực hiện các tác vụ quản trị quan trọng trên toàn hệ thống.

Lệnh sudo<- (viết tắt của "Super User DO ...")

Tài khoản người dùng quản trị viên có quyền sử dụng sudo lệnh để thực thi một lệnh duy nhất với tư cách là người chủ / với đặc quyền người chủ(root) để nhận quyền root tối thiểu (root được kiểm soát).

Nói đơn giản. Chỉ cần viết sudo trước mỗi lệnh đầu cuối cần các quyền đặc biệt nâng cao để chạy và thực thi lệnh đó. Nó sẽ hiển thị cho bạn lời nhắc và yêu cầu mật khẩu. root là tên người dùng hoặc tài khoản theo mặc định có quyền truy cập vào tất cả các lệnh và tệp trên Linux hoặc hệ điều hành giống Unix khác. Nó cũng được gọi là tài khoản gốc, người dùng gốc và siêu người dùng.

Vì vậy, sẽ có một số trường hợp phát sinh khi bạn sẽ phải thực thi với tư cách người dùng root để chạy các lệnh đó.

Theo mặc định, mật khẩu tài khoản gốc bị khóa trong Ubuntu. Điều này có nghĩa là bạn không thể đăng nhập với quyền root trực tiếp hoặc sử dụng lệnh su để trở thành người dùng root. Tuy nhiên, vì tài khoản gốc tồn tại về mặt lý thuyết nên vẫn có thể chạy các chương trình có đặc quyền cấp gốc.

Lịch sử[sửa | sửa mã nguồn]

Robert Coggeshall và Cliff Spencer đã viết hệ thống con ban đầu vào khoảng năm 1980 tại Department of Computer Science ở SUNY/Buffalo. Tính đến năm 2018 phiên bản hiện tại đang được phát triển tích cực, được duy trì bởi nhà phát triển OpenBSD Todd C. Miller và được phân phối theo giấy phép ISC-style.

Tháng 9/2009 Thomas Claburn, để đáp lại những lo ngại rằng Microsoft đã đăng ký bằng sáng chế sudo,,[7] đặc trưng những nghi ngờ như bị thổi phồng.[8] Các xác nhận quyền sở hữu được đóng khung hẹp với một giao diện cụ thể, thay vì cho khái niệm sudo.[9]

Thiết kế[sửa | sửa mã nguồn]

Không giống lệnh su,người dùng cung cấp mật khẩu cá nhân của họ cho sudo nếu cần. Sau khi xác thực và nếu tệp cấu hình cho phép người dùng truy cập, hệ thống sẽ gọi ra lệnh được yêu cầu dưới tư cách là superuser hoặc tài khoản được chỉ định.Theo mặc định, mật khẩu của người dùng có thể được giữ lại thông qua thời gian gia hạn (15 phút cho mỗi pseudo terminal), cho phép người dùng thực hiện một số lệnh liên tiếp như người dùng được yêu cầu mà không phải cung cấp lại mật khẩu.

có thể được cấu hình để ghi lại mỗi lần chạy lệnh. Khi người dùng cố gắng gọi sudo mà không được liệt kê trong tệp cấu hình, một dấu hiệu ngoại lệ được trình bày cho người dùng chỉ ra rằng nỗ lực đã được ghi lại. Người dùng root sẽ được cảnh báo qua thư và một mục được ghi lại trong nhật ký hệ thống.[10]

Cấu hình[sửa | sửa mã nguồn]

File /etc/sudoers chứa danh sách người dùng hoặc nhóm người dùng có quyền thực thi một tập các lệnh trong khi có đặc quyền của người dùng root hoặc một người dùng được chỉ định khác. Chương trình có thể được cấu hình để yêu cầu mật khẩu.

Ảnh hưởng[sửa | sửa mã nguồn]

Trong một số bản phân phối, sudo đã thay thế phần lớn việc đăng nhập superuser riêng biệt cho các nhiệm vụ quản trị, đáng chú ý nhất trong một số bản phân phối Linux cũng như Mac OS X.

RBAC[sửa | sửa mã nguồn]

Cùng với SELinux, sudo có thể được sử dụng để chuyển đổi giữa các vai trò trong điều khiển truy cập dựa trên vai trò (RBAC).[11]

Công cụ và chương trình tương tự[sửa | sửa mã nguồn]

visudo là tiện ích dòng lệnh cho phép chỉnh sửa tệp cấu hình theo cách không an toàn. Nó ngăn cản nhiều chỉnh sửa đồng thời với khóa và thực hiện kiểm tra độ chính xác và cú pháp.

Chương trình runas cung cấp các tính năng tương tự trên Microsoft Windows,nhưng nó không thể vượt qua các thư mục hiện tại, các biến môi trường hoặc các dòng lệnh dài. Và trong khi nó hỗ trợ chạy một tiến trình con như một người dùng khác, nó không hỗ trợ phân cấp đơn giản. Một su thực sự và sudo cho Windows có thể vượt qua tất cả thông tin trạng thái đó được bao gồm trong Hamilton C shell.[12][13]

Giao diện đồ họa có sẵn cho sudo, đáng chú ý là kdesudo, và gksudo. Các giao diện người dùng khác không được xây dựng trực tiếp trên sudo, nhưng cung cấp các đặc quyền cao tạm thời cho mục đích quản trị tương tự như User Account Control trên Microsoft WindowsMac OS X Authorization Services.[14]

doas[15]  đã được viết để thay thế sudo trong hệ thống dựa trên OpenBSD, với các bản mới hơn vẫn đang được cung cấp dưới dạng port.

Xem thêm[sửa | sửa mã nguồn]

Chú thích[sửa | sửa mã nguồn]

  1. ^ “Sudo Main Page”. News section. Truy cập ngày 30 tháng 4 năm 2018.
  2. ^ Todd C. Miller (ngày 17 tháng 6 năm 2011). “Sudo License”. Sudo.ws. Truy cập ngày 17 tháng 11 năm 2011.
  3. ^ “How do YOU pronounce "sudo"?”. Ars Technica. Truy cập ngày 1 tháng 6 năm 2018.
  4. ^ “Aaron Toponce: The Meaning of 'su'. Bản gốc lưu trữ ngày 24 tháng 2 năm 2023. Truy cập 6 tháng 6 năm 2018.
  5. ^ “Sudo - ArchWiki” (MediaWiki). wiki.archlinux.org.
  6. ^ Haeder, A.; Schneiter, S. A..; Pessanha, B. G.; Stanger, J. LPI Linux Certification in a Nutshell. O'Reilly Media, 2010. p. 409. ISBN 978-0596804879.
  7. ^ Lilly, Paul. “Microsoft has Patented "sudo." Yes, the Command”. Truy cập ngày 13 tháng 11 năm 2009.
  8. ^ Thomas, Claburn (ngày 16 tháng 11 năm 2009). “Does New Microsoft Patent Infringe On Unix Program Sudo? Some in the open source community suspicious of Microsoft's intent”. Dark Reading. Bản gốc lưu trữ ngày 26 tháng 3 năm 2012. Truy cập ngày 29 tháng 11 năm 2010. A patent granted to Microsoft (NSDQ: MSFT) has stirred up worry that world's largest software company wants to claim Unix's "sudo" as its own. [...] In short, suspicions about this patent are overblown.
  9. ^ Eaton, Nick (ngày 12 tháng 11 năm 2009). “Did Microsoft just sneakily patent an open-source tool?”. seattlepi.com. Truy cập ngày 24 tháng 4 năm 2011.
  10. ^ https://www.sudo.ws/man/1.8.14/sudoers.man.html
  11. ^ “SELinux Lockdown Part Five: SELinux RBAC”. Truy cập ngày 17 tháng 11 năm 2012.
  12. ^ “su”. Hamilton Laboratories. Truy cập ngày 17 tháng 8 năm 2015.
  13. ^ “Predefined aliases: sudo”. Hamilton Laboratories. Truy cập ngày 17 tháng 8 năm 2015.
  14. ^ “Introduction to Authorization Services Programming Guide”. Developer.apple.com. Truy cập ngày 17 tháng 11 năm 2011.
  15. ^ “doas”.

Lỗi chú thích: Thẻ <ref> có tên “nyt080526” được định nghĩa trong <references> không được đoạn văn bản trên sử dụng.
Lỗi chú thích: Thẻ <ref> có tên “macdv4” được định nghĩa trong <references> không được đoạn văn bản trên sử dụng.
Lỗi chú thích: Thẻ <ref> có tên “ubunt5” được định nghĩa trong <references> không được đoạn văn bản trên sử dụng.
Lỗi chú thích: Thẻ <ref> có tên “grati6” được định nghĩa trong <references> không được đoạn văn bản trên sử dụng.
Lỗi chú thích: Thẻ <ref> có tên “todmil8” được định nghĩa trong <references> không được đoạn văn bản trên sử dụng.

Lỗi chú thích: Thẻ <ref> có tên “grati9” được định nghĩa trong <references> không được đoạn văn bản trên sử dụng.

Liên kết ngoài[sửa | sửa mã nguồn]