Sự khác biệt giữa sudo và su là gì?

Một vài ngày trước, tôi nhận được một truy vấn từ Miguel, một người đọc blog thường xuyên và người bình luận bắt buộc, liên quan đến chính xác thì sự khác biệt giữa sudo y su. Đặc biệt, Miguel lo lắng về việc liệu phương pháp này có an toàn hơn phương pháp kia hay không. Nó xảy ra rằng tôi đã đọc ở đó rằng sudo không đủ an toàn và muốn biết thêm. Đây là một bài đăng khác dành riêng cho những người đã yêu cầu các bài viết khác về bí ẩn cuối cùng.

Su

Chương trình su Cho phép bạn sử dụng trình bao của người dùng khác mà không cần đăng xuất khỏi phiên hiện tại. Nó thường được sử dụng để đạt được quyền root cho các hoạt động quản trị mà không cần phải đăng xuất và vào lại hệ thống. Một số môi trường máy tính để bàn, bao gồm GNOME và KDE, có các chương trình yêu cầu mật khẩu bằng đồ thị trước khi cho phép người dùng thực thi một lệnh thường yêu cầu quyền truy cập đó.

Tên su xuất phát từ tiếng Anh sđồ ăn uống uđược (người dùng thay thế). Cũng có những người làm cho nó bắt nguồn từ snâng cấpuser (siêu người dùng, nghĩa là người dùng gốc hoặc người dùng quản trị) vì nó thường được sử dụng để áp dụng vai trò quản trị viên hệ thống.

Khi bạn chạy, su Nó yêu cầu mật khẩu của tài khoản bạn muốn truy cập và nếu nó được chấp nhận, nó sẽ cấp quyền truy cập vào tài khoản đó.

[guy @ localhost] $ Mật khẩu của bạn: [root @ localhost] # thoát đăng xuất [guy @ localhost] $

Bằng cách không đặt người dùng, nó được truy cập với tư cách quản trị viên. Tuy nhiên, cũng có thể chuyển một tên người dùng khác làm tham số.

[guy @ localhost] $ su mongo Mật khẩu: [mongo @ localhost] # thoát đăng xuất [guy @ localhost] $

Sau khi nhập mật khẩu, chúng tôi có thể thực hiện các lệnh như thể chúng tôi là người dùng khác. Bằng văn bản ra, chúng tôi quay trở lại người dùng của chúng tôi.

Một biến thể được sử dụng rộng rãi là sử dụng su theo sau là dấu gạch ngang. Vì vậy, để đăng nhập với quyền root, bạn phải nhập của anh ấy - và đăng nhập với tư cách người dùng khác của bạn - người dùng khác. Sự khác biệt giữa việc sử dụng script hay không? Bạn nên sử dụng tập lệnh vì nó mô phỏng rằng bạn sẽ đăng nhập với người dùng đó; do đó, nó thực thi tất cả các tệp khởi động của người dùng đó, thay đổi thư mục hiện tại thành HOME của người dùng đó, thay đổi giá trị của một số biến hệ thống thích ứng với người dùng mới (HOME, SHELL, TERM, USER, LOGNAME, trong số những biến khác) và khác nhiều điều hơn.

Một sysadmin phải rất cẩn thận khi chọn mật khẩu cho tài khoản root / administrator, để tránh bị tấn công bởi một người dùng không có đặc quyền đang chạy su. Một số hệ thống giống Unix có một nhóm người dùng được gọi là bánh xe, bao gồm những người duy nhất có thể thực thi su. Điều này có thể hoặc không thể làm giảm các lo ngại về bảo mật, vì kẻ xâm nhập có thể chỉ cần chiếm một trong những tài khoản đó. Anh ta su GNU, tuy nhiên, không hỗ trợ việc sử dụng nhóm đó; điều này đã được thực hiện vì lý do triết học.

Sudo

Một lệnh liên quan, được gọi là sudo, thực thi một lệnh với tư cách người dùng khác, nhưng tôn trọng một loạt các hạn chế mà người dùng có thể thực hiện lệnh nào thay mặt cho người dùng khác (thường được chỉ định trong tệp / etc / sudoers).

Mặt khác, không giống như su, sudo nhắc người dùng nhập mật khẩu của chính họ thay vì người dùng được yêu cầu; điều này cho phép ủy quyền các lệnh cho người dùng trên các máy khác mà không cần phải chia sẻ mật khẩu, giảm nguy cơ bỏ quên thiết bị đầu cuối.

Vấn đề Sudo: thời gian gia hạn

Lợi thế của sudo đôi vơi su là nó chỉ thực hiện lệnh được yêu cầu giả vờ là người dùng khác, mà không thực sự thay đổi người dùng hiện tại. Điều này ngụ ý rằng một người có thể thực hiện một lệnh với tư cách là quản trị viên và trong giây tiếp theo, họ sẽ có các đặc quyền của người dùng mà họ đã sử dụng trước đây ... hoặc gần như vậy.

Một số coi là vi phạm an ninh thực tế là sudo cấp một "thời gian gia hạn" cho phép người dùng thực hiện các lệnh với tư cách là một người dùng khác mà không cần phải nhập liên tục sudo trước lệnh và mật khẩu sau khi thực hiện lệnh đó. Sau "thời gian gia hạn" đó, sudo sẽ hỏi lại chúng tôi mật khẩu.

Điều này là "xấu", về cơ bản là vì ai đó có thể chiếm máy tính của chúng tôi sau khi chúng tôi đã nhập mật khẩu sudo và trong khi "thời gian gia hạn" đang hoạt động, tạo ra một KHUYẾN CÁO.

May mắn thay, có thể vô hiệu hóa "thời gian gia hạn", điều này sẽ cải thiện tính bảo mật cho hệ thống của bạn. Chỉ cần thêm một dòng trong tệp / etc / sudoers:

sudo nano / etc / sudoers

Và thêm dòng sau vào cuối tệp:

Mặc định: ALL timestamp_timeout = 0

Thay đổi có hiệu lực ngay lập tức mà không cần khởi động lại hệ thống.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.

  1.   lãnh đạo dijo

    Trên thực tế, nếu bạn có thể nhập với quyền quản trị viên với sudo và ở đó như khi bạn làm với su -, thì bạn phải viết: sudo -s do đó thay đổi người dùng hiện tại và để lại thời gian gia hạn như một trò đùa (vì bạn có thể điều này miễn là bạn muốn, với)

  2.   Miquel Mayol tôi Tur dijo

    Cảm ơn vì đã đề cập, nhưng tín dụng thực sự thuộc về cuộc trò chuyện Sabayon - cái mà tôi không còn sử dụng nữa vì ổ cứng của tôi bị hỏng và tôi muốn quay lại Ubuntu hơn -.

    Lý do họ đưa ra cho tôi là đôi khi khi thực hiện các cấu hình nhất định, họ không nhận được quyền tuyệt đối và chúng vẫn được định cấu hình không chính xác. Và điều đó bằng cách "đăng nhập" với su là root cho các tác vụ cập nhật và bảo trì, bạn sẽ ngăn điều này xảy ra.

    Sau đó, tôi đã gửi email cho bạn vì tôi đã hứa sẽ chia sẻ phát hiện có vẻ không tầm thường này đối với tôi.

    Vì Ubuntu được cài đặt theo mặc định mà không cần người dùng root, chỉ cần chạy

    "Sudo passwd gốc"

    nhập mật khẩu, xác nhận nó, và sau đó
    "Su gốc"
    cho các hoạt động bảo trì, ngoài việc tránh đặt sudo với mỗi đơn đặt hàng.

    Về nguyên tắc, trong Ubuntu tài khoản root bị xóa để bạn không phải lúc nào cũng đăng nhập bằng tài khoản này, nhưng vì tôi đã được đưa ra lời khuyên gần như trên tinh thần rằng sử dụng sudo là vi phạm, đề phòng tôi đã làm theo.

  3.   Con trỏ Nill dijo

    Bạn có thể truy cập tệp / etc / shadow và thay đổi mã băm mật khẩu gốc thành băm mật khẩu người dùng thông thường và sau đó thực hiện thay đổi mật khẩu cho người dùng gốc ??? Vào lúc khác, tôi cũng cố gắng như vậy….

  4.   Hãy sử dụng Linux dijo

    Thông thoáng. Nó không dành riêng cho Fedora.

  5.   mfcollf77 dijo

    Tôi nghĩ rằng «SU» chỉ có trong FEDORA.

  6.   Diego Kisai Alba Gallart dijo

    Thông tin rất tốt, với điều này chắc chắn sự nghi ngờ của nhiều người sẽ biến mất, bởi vì tôi biết một số người có nghi ngờ đó.

  7.   Alex dijo

    Trong ubunto, tôi nghĩ rằng tôi nhớ rằng bạn không thể sử dụng lệnh su (để nhập với tư cách người dùng gốc)

  8.   hazan pérez dijo

    Vâng, để "khôi phục" mật khẩu gốc (thực tế là bất kỳ mật khẩu nào khác), bạn có thể thực hiện một cuộc "tấn công" vào tệp mật khẩu hệ thống bằng John The Ripper. Tôi sẽ không nói thêm về điều này.

    Có thể có các phương pháp khác ... Có thể thay đổi mật khẩu bằng cách nhập bằng "sudo su" và sau đó là lệnh "passwd". Sẽ rất thú vị khi xem những gì người khác phản hồi ...

  9.   Hãy sử dụng Linux dijo

    Chính xác!

  10.   Hãy sử dụng Linux dijo

    Đúng vậy ... Tôi phải cảm ơn Miguel Mayol i Tur ... anh ấy là người có ý tưởng. 🙂
    Chúc mừng! Paul.

  11.   Boss dijo

    Cảm ơn bạn, luôn là một đóng góp tuyệt vời. Chúng tôi đánh giá cao điều đó.

  12.   Hãy sử dụng Linux dijo

    Cảm ơn ông chủ! Một cái ôm! Paul.

  13.   Jerome Navarro dijo

    Sự khác biệt giữa 'su' và 'sudo' là 'do'

  14.   Erick dijo

    Tôi quên mật khẩu root, may mắn là tôi có thể sử dụng sudo, và để sử dụng su, tôi sử dụng 'sudo su' và nó không yêu cầu pass (?)
    Có ai biết cách tìm ra mật khẩu root (tôi có quyền truy cập root thông qua sudo)?

    1.    marvergarab dijo

      mật khẩu sudo

  15.   Hãy sử dụng Linux dijo

    Ha! Rất thông minh!

  16.   Quốc gia Fabian dijo

    người muốn khôi phục mật khẩu gốc sẽ là "sudo passwd root" và ở đó nó sẽ yêu cầu bạn nhập một mật khẩu mới

  17.   alex-pilloku@hmail.com dijo

    xin chào cuộc sống của bạn thế nào

  18.   Cờ tổng hợp dijo

    Xin lỗi, nhưng bằng cách sử dụng lệnh su, như thế này:

    su -c "lệnh", giống như sử dụng sudo mà không có thời gian gia hạn. Tôi không thấy cần thiết phải sudo.

    Công dụng THỰC SỰ của sudo là cung cấp cho một số người dùng khả năng sử dụng lệnh này hoặc lệnh kia, nó được sử dụng nhiều hơn trong các công ty, để không phải chroot, một điều không thể thực hiện với su.

  19.   yacardis dijo

    Thân mến, tôi phải làm một TP Linux và tôi phải trả lời một số câu hỏi đơn giản. Có lẽ họ có thể giúp tôi. Cảm ơn vì bây giờ:

    Lệnh nào cho phép chúng ta cài đặt / xóa / sửa đổi các gói debian?
    Lệnh nào cho phép chúng tôi quản lý cài đặt dễ dàng hơn
    gói trong debian?
    Lệnh nào để có thể cài đặt các gói rpm?
    Chúng tôi sử dụng tùy chọn nào để gỡ cài đặt một gói?
    Thư mục chứa các kho lưu trữ yum là gì?
    Yum để làm gì?
    Chúng tôi sử dụng tùy chọn nào để tìm kiếm một gói có yum?
    Chúng tôi sử dụng tùy chọn nào để xóa một gói?
    Chúng tôi có thể sử dụng tùy chọn nào để cập nhật hệ thống?
    Những chữ cái nào xác định các giấy phép?
    Mỗi người trong số họ có ý nghĩa gì?
    Những lệnh nào liệt kê các quyền của một tệp?
    Ba nhóm trong đó các quyền được chia là gì?
    Có hai cách nào để triển khai quyền?
    Giấy phép sử dụng hệ thống số nào?
    Những chữ cái này có trọng lượng bao nhiêu?
    Giấy phép đặc biệt là gì?
    Các quyền đặc biệt hiện có là gì và người dùng để làm gì?
    Tôi sử dụng lệnh nào để thay đổi quyền?
    Tôi sử dụng tham số nào để cấp quyền thực thi cho tệp?
    Những thông số nào được sử dụng để chỉ cấp quyền đọc cho một nhóm?
    Những tham số nào được sử dụng để cấp quyền đọc / ghi cho nhóm người khác và xóa việc ghi khỏi người dùng sở hữu tệp?
    Những quyền nào được tạo theo mặc định cho các tệp và thư mục?
    Chúng ta sử dụng lệnh nào để xác minh nó?
    Làm cách nào để thay đổi mặt nạ mặc định?
    Làm thế nào để chúng tôi làm cho mặt nạ được sử dụng khác nhau? (Sử dụng mặt nạ mặc định chỉ để lại cho chủ sở hữu tất cả các quyền.)
    Lệnh nào liệt kê các tiến trình? Đề cập đến các thông số khác nhau và việc sử dụng chúng.
    Quá trình bắt đầu mọi thứ là gì?
    Liệt kê các quy trình tương ứng với người dùng đã đăng nhập.
    Liệt kê tất cả các quy trình trên hệ thống.
    Tôi sử dụng những tùy chọn nào để có thêm thông tin?
    Liệt kê tất cả các quy trình đang được sử dụng trong một thiết bị đầu cuối
    Tùy chọn nào liệt kê các quy trình và sự phụ thuộc của chúng?
    Giải thích quy trình cha mẹ-con là gì và cách xác định nó
    Lệnh nào liệt kê các tiến trình dưới dạng cây?
    Lệnh nào giám sát các quá trình trong thời gian thực?
    Chỉ giám sát một quá trình
    Lệnh nào hiển thị mức sử dụng bộ nhớ?
    Tham số nào hiển thị bộ nhớ tính bằng megabyte?
    Tham số nào nó trong khoảng thời gian?
    Lệnh nào hiển thị thông tin về thời gian nhóm hoạt động?
    Tôi sử dụng lệnh nào để ngắt các tiến trình?
    Các quy trình này xử lý những gì để được hoàn thiện?
    Những loại tín hiệu nào là phổ biến nhất?
    Liệt kê các loại tín hiệu được hỗ trợ.
    Trong một thiết bị đầu cuối, thực hiện kiểm tra vi, và sau đó đi đến thiết bị đầu cuối khác, tìm kiếm quá trình và kết thúc nó với tín hiệu 15. Ditto nhưng với tín hiệu 9.
    Sự khác biệt giữa tín hiệu 9 và 15 là gì?
    Cái nào hoạt động theo mặc định?
    Tại sao một tiến trình được chạy trong nền? Và ở phía trước?
    Chạy vi kiểm tra và sau đó nhấn ctrl + z, điều gì đã xảy ra?
    Lặp lại vi kiểm tra, ctr + z, 4 lần, làm thế nào tôi hoàn thành những gì tôi không thành công?
    Chuyển một trong các quy trình tới tiền cảnh và đóng vi.
    Chúng ta thực hiện tham số nào của lệnh để nó không chiếm shell?
    Lệnh nào sửa đổi các mức độ ưu tiên của một tiến trình đang chạy? Bạn sẽ thay đổi mức độ ưu tiên của thiết bị đầu cuối đang chạy như thế nào?
    Có những giá trị cấp độ nào và thứ bậc của chúng là gì?
    Mở tệp / etc / passwd và xem nó có mức độ ưu tiên nào.
    Thay đổi mức độ ưu tiên thành 4 và sau đó thành 25 Bạn có thể chỉ định cả hai không? Tại sao?
    Liệt kê các quy trình với các giá trị ưu tiên của chúng.
    Lệnh nào giám sát tất cả các tiến trình đang chạy?

  20.   vv dijo

    Xin chào, tôi muốn tắt sudo như tôi làm. Tôi nhận được điều này:
    [sudo] mật khẩu cho xxx:
    xxx không có trong tệp sudoers. Sự cố này sẽ được báo cáo.

    khi tôi vô hiệu hóa nó, vì tôi sử dụng su trong debian

    1.    hãy sử dụng linux dijo

      Xin chào ecc!

      Tôi nghĩ sẽ tốt hơn nếu bạn nêu câu hỏi này trong dịch vụ hỏi đáp của chúng tôi có tên Xin DesdeLinux để cả cộng đồng có thể giúp bạn giải quyết vấn đề của mình.

      Một cái ôm, Pablo.

  21.   Berthold dijo

    Chào. Tôi đã sử dụng lệnh nhiệt độ đĩa cứng trong Linux Mint: 'sudo hddtemp / dev / sda', nó yêu cầu mật khẩu và cho tôi kết quả mong đợi.
    nhưng, sau đó khi thực thi trong cùng một thiết bị đầu cuối 'hddtemp / dev / sda', nó cho tôi biết rằng Quyền bị Từ chối.
    Như vậy, thời gian gia hạn không có tác dụng với tôi, tại sao vậy?

  22.   Berthold dijo

    Xin chào blog.
    Tôi cũng thấy rằng khi cài đặt bản phân phối (ví dụ: ubuntu, linux mint), nó sẽ yêu cầu mật khẩu quản trị viên.
    Và trong giao diện đồ họa của trung tâm điều khiển, tôi đã sử dụng tùy chọn để thay đổi mật khẩu của người dùng của mình.
    Vì vậy, bây giờ sử dụng "su -" nó yêu cầu mật khẩu, không phải là mật khẩu của người dùng hiện tại của tôi, mà là mật khẩu tôi đã sử dụng khi cài đặt bản phân phối, vẫn là người dùng root hoặc quản trị viên.
    Điều này sẽ dẫn đến nhiều người dùng quên mật khẩu quản trị viên thực.

  23.   Kendall Davila dijo

    Xin chào, lời giải thích của bạn có vẻ xuất sắc, rất rõ ràng, ngắn gọn và súc tích. Cảm ơn các đầu vào