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.
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)
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.
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….
Thông thoáng. Nó không dành riêng cho Fedora.
Tôi nghĩ rằng «SU» chỉ có trong FEDORA.
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ờ đó.
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)
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 ...
Chính xác!
Đú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.
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 đó.
Cảm ơn ông chủ! Một cái ôm! Paul.
Sự khác biệt giữa 'su' và 'sudo' là 'do'
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)?
mật khẩu sudo
Ha! Rất thông minh!
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
xin chào cuộc sống của bạn thế nào
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.
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?
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
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.
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?
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.
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