Làm thế nào để máy tính để bàn Linux thực hiện các hành động hệ thống?


8

Máy tính để bàn Linux có thể thực hiện một số hành động mà người dùng không có sẵn khi đăng nhập từ thiết bị đầu cuối. Các hành động như tắt hệ thống và thay đổi thời gian hệ thống chỉ có thể truy cập đối với người dùng sudo sau khi nhập mật khẩu. Cái này hoạt động ra sao. Có một daemon gốc đang chạy mà nhận lệnh từ người dùng đăng nhập. Hãy hướng dẫn tôi trả lời đúng.

Tôi đang chạy Ubuntu 13.10.


1
Không có thứ gọi là "máy tính để bàn Linux". Bạn đang sử dụng môi trường máy tính để bàn nào?
Mat

Tôi đang sử dụng Ubuntu 13.10 Unity (máy tính để bàn Ubuntu). Tôi cho rằng ý tưởng này giống nhau trên các bản phân phối, do đó được hỏi ở đây thay vì hỏi trên Ubuntu.
cnvzmxcvmcx

Đây không phải là vấn đề của distro, đó là vấn đề bạn sử dụng môi trường máy tính để bàn nào - KDE có thể không làm điều đó giống như Gnome, cũng như Unity. (Tất cả họ có thể sử dụng cùng một kỹ thuật.)
Mat

Có lẽ các câu trả lời / nhận xét về " cách mọi thứ hoạt động dưới mui xe (hay còn gọi là GUI)" ở đây -> unix.stackexchange.com/questions/101074/ , được giải thích về ví dụ về mount(ing) có thể giúp hiểu một chút. Tôi, cá nhân, nhai rất nhiều vào chúng vào lúc này
erch 30/11/13

@Mat AFAIK hiện tại tất cả họ đã được chuẩn hóa trên D-Bus.
Gilles 'SO- ngừng trở nên xấu xa'

Câu trả lời:


6

Hiện tại trên Ubuntu, việc tắt máy thực tế được thực hiện bởi console-kit-daemon, daemon ConsoleKit , chạy với quyền root. Trình nền ConsoleKit nhận được yêu cầu tắt máy từ ứng dụng bảng điều khiển máy tính để bàn thông qua D-Bus . Chính sách cho phép các quy trình không có đặc quyền nói chuyện với các quy trình đặc quyền được xử lý bởi polkit (trước đây là PolicyKit). Bạn có thể mô phỏng lời gọi ConsoleKit thông qua dbus-sendnếu bạn muốn. Cụ thể, để báo cho ConsoleKit thực hiện tắt máy bạn có thể làm:

dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" \
/org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop

Trên Ubuntu, ConsoleKit đã thay thế Lớp trừu tượng phần cứng (HAL), một hệ thống con nhằm mục đích cho phép các ứng dụng máy tính để bàn khám phá và sử dụng phần cứng của hệ thống máy chủ thông qua API di động và trừu tượng, bất kể loại phần cứng cơ bản nào. HAL ngày nay không được dùng nữa trong hầu hết các bản phân phối Linux. Lệnh dbus-sendgọi tương đương sử dụng HAL là:

dbus-send --print-reply --system --dest=org.freedesktop.Hal \ 
/org/freedesktop/Hal/devices/computer/org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown

Hiện tại, ConsoleKit không được duy trì tích cực. Trọng tâm của dự án freedesktop.org đã chuyển sang quản lý chỗ ngồi / người dùng / phiên tích hợp của hệ thống init systemd được gọi là systemd-logind . Làm thế nào điều này sẽ ảnh hưởng đến các bản phân phối đã áp dụng các hệ thống init của riêng họ, như mới bắt đầu trong Ubuntu, vẫn còn được nhìn thấy.

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.