it-swarm-vi.com

Làm thế nào tôi có thể thực hiện tắt máy không yêu cầu mật khẩu quản trị viên?

Nếu có nhiều người đăng nhập vào máy tính của tôi, Ubuntu yêu cầu xác thực siêu người dùng khi tắt máy tính. Làm thế nào tôi có thể làm cho nó để bất kỳ người dùng nào có thể tắt máy tính mà không bị yêu cầu nhập mật khẩu?

49
Isaiah

Bạn không cần một cách giải quyết, chỉ cần thay đổi chính sách để cho phép bạn tắt mà không cần xác thực là quản trị viên để tắt máy và khởi động lại khi nhiều người dùng đăng nhập.

Chỉnh sửa tập tin /usr/share/polkit-1/ilities/org.freedesktop.consolekit.policy bằng trình soạn thảo văn bản yêu thích của bạn. Bạn sẽ cần quyền root.

Thay đổi phần liên quan đến tắt máy khi những người khác đăng nhập từ

  <action id="org.freedesktop.consolekit.system.stop-multiple-users">
    <description>Stop the system when multiple users are logged in</description>
    <message>System policy prevents stopping the system when other users are logged in</message>
    <defaults>
      <allow_inactive>no</allow_inactive>
      <allow_active>auth_admin_keep</allow_active>
    </defaults>
  </action>

đến

  <action id="org.freedesktop.consolekit.system.stop-multiple-users">
    <description>Stop the system when multiple users are logged in</description>
    <message>System policy prevents stopping the system when other users are logged in</message>
    <defaults>
      <allow_inactive>no</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
  </action>

và phần liên quan đến khởi động lại khi những người khác đăng nhập từ

  <action id="org.freedesktop.consolekit.system.restart-multiple-users">
    <description>Restart the system when multiple users are logged in</description>
    <message>System policy prevents restarting the system when other users are logged in</message>
    <defaults>
      <allow_inactive>no</allow_inactive>
      <allow_active>auth_admin_keep</allow_active>
    </defaults>
  </action>

đến

  <action id="org.freedesktop.consolekit.system.restart-multiple-users">
    <description>Restart the system when multiple users are logged in</description>
    <message>System policy prevents restarting the system when other users are logged in</message>
    <defaults>
      <allow_inactive>no</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
  </action>

Và điều đó sẽ cho phép bạn tắt và khởi động lại PC khi nhiều người dùng đăng nhập. Bạn có muốn làm điều đó không.

27
Richard Holloway

Câu trả lời của Richard Holloway không thực sự là cách ủy quyền của PolickKit. Các tệp được cài đặt trong /usr/share/polkit-1/actions không có nghĩa là phải sửa đổi. Thay vào đó, bạn nên sửa đổi các quyền trong /etc/polkit-1/localauthority/50-local.d/.

Đây là cách bạn làm điều đó cho câu hỏi này:

Tạo một tệp có tên /etc/polkit-1/localauthority/50-local.d/allow_all_users_to_shutdown.pkla và chỉnh sửa nó bằng cách sử dụng sudoedit để trông như thế này:

[Allow all users to shutdown]
Identity=unix-user:*
Action=org.freedesktop.consolekit.system.stop-multiple-users
ResultInactive=no
ResultActive=yes

Sau đó tạo một tệp .pkla khác trong cùng thư mục. Sử dụng bất kỳ tên nào bạn muốn kết thúc bằng .pkla, ví dụ: allow_all_users_to_restart.pkla và điền vào đó với các nội dung sau:

[Allow all users to restart]
Identity=unix-user:*
Action=org.freedesktop.consolekit.system.restart-multiple-users
ResultInactive=no
ResultActive=yes

Tài liệu tham khảo:

33
Flimm

Có một cách tốt hơn. Nếu bạn đã cài đặt dbus-send, bạn có thể tắt máy thông qua dbus mà không cần phải leo thang lên quyền root.

Tôi không thể nhớ trang có tài liệu hướng dẫn, nhưng một người dùng Archlinux đã tìm ra điều này.

Tắt máy:

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

Khởi động lại:

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

Tạm dừng:

dbus-send --system --print-reply --dest=org.freedesktop.Hal \
          /org/freedesktop/Hal/devices/computer \
          org.freedesktop.Hal.Device.SystemPowerManagement.Suspend int32:1

Ngủ đông:

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

Trân trọng.

16
ibuclaw

HAL dường như đã hết thời và không được cài đặt trong các bản phát hành Ubuntu mới nhất.

Bạn phải sử dụng ConsoleKitPower dịch vụ dbus để quản lý trạng thái nguồn

Tắt:

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

Khởi động lại:

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

Đình chỉ:

dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend

Ngủ đông:

dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Hibernate

Cảm ơn Arch Linux diễn đàn .

Điều này hiện đang hoạt động trong Chính xác và Định lượng, nhưng không biết bao lâu kể từ khi tiêu điểm Freedesktop dường như được chuyển từ ConsoleKit sang systemd. Không biết liệu Canonical có quan tâm ...

12
Epeli

Điều này hoạt động vào ngày 14.04. Một biến thể được cập nhật của IMO trước, chính xác câu trả lời của Flimm .

Sudo mkdir -p /etc/polkit-1/localauthority/50-local.d
sudoedit /etc/polkit-1/localauthority/50-local.d/allow_all_users_to_shutdown_reboot_suspend.pkla 

Dán cái này vào bên trong:

[Allow all users to shutdown]
Identity=unix-user:*
Action=org.freedesktop.login1.power-off-multiple-sessions
ResultActive=yes

[Allow all users to reboot]
Identity=unix-user:*
Action=org.freedesktop.login1.reboot-multiple-sessions
ResultActive=yes

[Allow all users to suspend]
Identity=unix-user:*
Action=org.freedesktop.login1.suspend-multiple-sessions
ResultActive=yes

[Allow all users to ignore inhibit of shutdown]
Identity=unix-user:*
Action=org.freedesktop.login1.power-off-ignore-inhibit
ResultActive=yes

[Allow all users to ignore inhibit of reboot]
Identity=unix-user:*
Action=org.freedesktop.login1.reboot-ignore-inhibit
ResultActive=yes

[Allow all users to ignore inhibit of suspend]
Identity=unix-user:*
Action=org.freedesktop.login1.suspend-ignore-inhibit
ResultActive=yes
4
Konstigt

Không có cách nào để phá vỡ Lời nhắc cho mật khẩu siêu người dùng khi khởi động lại trong khi những người dùng khác đăng nhập bằng cách mở một cửa sổ đầu cuối và ban hành lệnh reboot dưới dạng root:

Sudo reboot

Thậm chí, nếu không được định cấu hình để bỏ qua lời nhắc mật khẩu cho tài khoản người dùng của bạn, Sudo cũng sẽ nhắc bạn nhập mật khẩu của bạn.

Đừng lo lắng, đây là những điều TỐT. Việc khởi động lại nên rất hiếm và mật khẩu quản trị viên đơn giản Nhắc nhở việc vô tình tự lừa mình!

1
jathanism

Thêm tạm dừng và/hoặc khởi động lại vào tệp sudoers được gán cho nhóm/người dùng mà bạn muốn cho phép thực hiện tác vụ này. Bằng cách đó, bạn vẫn có thể kiểm soát ai có thể tắt máy, nhưng không cho họ quyền truy cập root đầy đủ vào máy ..

http://linux.byexamples.com/archives/315/how-to-shutdown-and-reboot-without-Sudo-password/

0
tommed

Tôi tin rằng đây chỉ là một vấn đề khi thực hiện nó thông qua dòng lệnh.

Nếu vậy thì đây là một link có thể giúp giải quyết vấn đề của bạn.

0
myusuf3