Tắt máy từ terminal mà không nhập mật khẩu?


51

Tôi có phiên bản máy tính để bàn của Ubuntu.

Tôi thích Terminal để tôi thích tắt máy tính của mình bằng shutdownlệnh.

Tuy nhiên, khi tôi gõ, shutdown nownó sẽ nhắc tôi nhập mật khẩu. Có cách nào để tôi tắt máy tính bằng lệnh này mà không cần nhập mật khẩu không?


4
Có ai biết lệnh nào được thực thi khi tôi bấm "shutdown" trong Môi trường máy tính để bàn không?
kubahaha

Câu trả lời:


53

Mở một thiết bị đầu cuối (CTRL + T) và gõ như sau sudo visudo

Thêm dòng sau:

%group_name ALL=(ALL) NOPASSWD: /sbin/poweroff, /sbin/reboot, /sbin/shutdown

hoặc là

user_name ALL=(ALL) NOPASSWD: /sbin/poweroff, /sbin/reboot, /sbin/shutdown

Điều này cho phép người dùng / nhóm chạy ba lệnh trên, sử dụng sudo , tuy nhiên không có mật khẩu.

Vì vậy, sudo poweroffbây giờ sẽ dẫn đến tắt máy không mật khẩu.


Tuy nhiên, để làm cho điều này thậm chí còn sạch hơn, chúng tôi sẽ thêm một bí danh, để thực hiện shutdowncác cuộc gọi sudo shutdown now.

Mở ~/.bash_aliasesđể chỉnh sửa.

nano ~/.bash_aliases

Chèn dòng sau vào cuối tập tin:

alias shutdown='sudo shutdown now' 

Cuối cùng, tải các thay đổi vào .bash_aliasestệp ...

source ~/.bash_aliases

Hãy thử nó!

shutdown

Cảm ơn, Eric .


36

Một cách an toàn để làm điều này mà không cần sử dụng sudo và không sửa đổi hệ thống, là thực hiện các lệnh một lớp này :

Đối với Ubuntu 14.10 trở về trước:

Tắt:

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

Khởi động lại:

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

consolekitCài đặt bộ điều khiển tất nhiên nên được cài đặt hệ thống của bạn.

Các lệnh khác bạn có thể thích:

Đình chỉ:

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

Hibernate: (nếu được bật trên hệ thống của bạn)

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


Đối với Ubuntu 15.04 trở lên:

(Điều này là do sự thay đổi của Ubuntu trong việc sử dụng systemdthay vì Upstart)

systemctl poweroff

systemctl reboot

systemctl suspend

systemctl hibernate

systemctl hybrid-sleep

hibernate thường bị tắt theo mặc định trong các hệ thống Ubuntu, bạn có thể kích hoạt tính năng này bằng cách kiểm tra câu trả lời này: https://askubfox.com/a/617254/101985

Nguồn gốc: https://bbs.archlinux.org/viewtopic.php?id=127962


3

unity sử dụng nhiều dịch vụ gnome và trong trường hợp đó cũng vậy - bạn có thể tắt cách gnome.

gnome-session-quit --power-off --force --no-prompt

sẽ làm việc


Có vẻ như điều này chỉ hoạt động để đăng xuất. Từ trang người đàn ông của --no-prompt:End the session without user interaction. This only works with --logout.
Pylinux

1

Trong khi bạn có thể sử dụng phương pháp của việc cho phép NOPASSWDtrên /usr/sbin/shutdown, mặc dù khác, giải pháp DE-độc lập là chỉ cần sử dụng init 0.


0

điều đó thật dễ. sử dụng tùy chọn -S như thế này:

echo <your-password> | sudo -S poweroff
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.