Tại sao `restart` và` poweroff` hoạt động mà không có đặc quyền siêu người dùng trong Ubuntu 16.04?


10

Có rất nhiều câu hỏi về lý do tại sao shutdownrebootyêu cầu quyền root. Có rất nhiều câu trả lời tốt có sẵn quá.

Nhưng có một số điều tôi không hiểu : Nếu có thể khởi động lại hoặc tắt máy mà không có quyền root trong hệ thống nhiều người dùng là một ý tưởng rất tồi ... thì tại sao điều này lại khả thi trong Ubuntu 16.04?

Khi tôi gõ poweroffhoặc reboottrong một thiết bị đầu cuối và nhấn Enter, nó thực sự tắt / khởi động lại!

Nó ổn đối với tôi khi poweroffrebootkhông yêu cầu quyền root ... nhưng tại sao lại suspendcần quyền root? Khi tôi gõ suspendvào một thiết bị đầu cuối và nhấn Enter, nó không bị treo, thay vào đó nó bị kẹt ... và khi tôi chạy pm-suspend, Nó yêu cầu sudo.


Điều này cũng có thể có trong các phiên bản cũ hơn, nếu bạn định cấu hình nó làm như vậy ( askubfox.com/a/570969/158442 , lưu ý các hành động cho các phiên đột biến). Systemd thực hiện điều này theo mặc định. Cũng thấy trên Arch Linux.
muru

Câu trả lời:


3

Đối với tôi, cả hai poweroffcũng không rebootcần mật khẩu trên Ubuntu 16.04.

Tuy nhiên, để điều này xảy ra, tôi đã phải tạo một tài khoản người dùng có tên là "foo", ví dụ, sau đó ssh đến localhost với tư cách là người dùng đó hoặc là chính tôi. Khi tôi làm điều này, tôi cần phải xác thực chính mình. Dường như nhận ra một người dùng khác đã đăng nhập.

Ví dụ: tôi nhận được thông báo này:

User foo is logged in on sshd.
Please retry operation after closing inhibitors and logging out other users.
Alternatively, ignore inhibitors and users with 'systemctl reboot -i'.

Có lẽ, nó "thông minh" đủ để nhận ra khi thực tế có một người dùng khác đăng nhập.

(Tôi đồng ý với bạn rằng sẽ rất tốt nếu luôn xác thực là root. Đôi khi, không có người dùng nào khác đăng nhập, nhưng một quy trình quan trọng đang chạy trong nền thực hiện một số phép tính.)

Chỉnh sửa: Chỉ cần cố gắng bản thân mình. Nếu tôi đăng nhập dưới dạng foo, tôi cần xác thực chính mình (người thuộc nhóm sudo). Nếu tôi khởi động lại như chính mình với foo vẫn đăng nhập, tôi phải gõ systemctl reboot -imà không cần mật khẩu. Tôi đoán sự khác biệt là hệ thống biết tôi thuộc nhóm sudo.

Chỉnh sửa 2: Theo ghi nhận của Severus Tux, systemctl suspend -ihoạt động tương tự như systemctl reboot -ichỉnh sửa trước đó.


À .. tôi đã không thử điều đó. BTW có đình chỉ lệnh làm việc trên máy của bạn không? Tôi cần chắc chắn rằng đó là một lỗi
Severus Tux

Nếu tôi ssh đến localhost và tạm ngưng, tôi không thành công. Tôi nhận được "-bash: đình chỉ: không thể tạm ngưng vỏ đăng nhập".
Ray

Nếu tôi mở một cửa sổ và thử "tạm dừng", cửa sổ đầu cuối sẽ đóng băng. :-) Không phải là một dấu hiệu tốt ... Tôi nghĩ điều đó không liên quan. Dù sao, cảm ơn đã hỏi! Tôi chưa bao giờ nghĩ đến việc thử bản thân mình nhưng câu hỏi của bạn khiến tôi tò mò. Tôi vẫn có thói quen khởi động lại với sudo ... không nhận thấy sự thay đổi tinh tế này.
Ray

Cảm ơn bạn. Như bạn đã nói về khởi động lại, "systemctl đình chỉ -i" cũng hoạt động tốt. xem xét thêm câu trả lời vào câu trả lời của bạn
Severus Tux

Đồng ý! Có lẽ tôi nên thêm tất cả bằng một tin nhắn, nhưng mỗi lần tôi thử thứ gì đó, nó lại gây ra khởi động lại, vì vậy tôi phải lưu lại những gì tôi đã đăng ...
Ray
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.