Điểm:0

Cách định cấu hình nút Hibernate để không hỏi mật khẩu khi thực hiện ngủ đông (đối với tiện ích mở rộng Simpler Off Menu cho Ubuntu 20.04)

lá cờ it

Tôi đã cấu hình ngủ đông như mô tả đây và cài đặt Menu tắt đơn giản hơn gnome-shell-extension với sự giúp đỡ của cái này hướng dẫn. ngủ đông nút đang hoạt động nhưng mỗi lần đều yêu cầu mật khẩu để cho phép ngủ đông. Cách cấu hình để nó không hỏi mật khẩu và thực hiện ngủ đông ngay như thế nào đình chỉ nút thực hiện đình chỉ?

Điểm:0
lá cờ it

Trong Ubuntu 18,19,20 hệ thống ngủ đông lệnh yêu cầu sudo để thực hiện nó: Quyền "tạm dừng systemctl" so với "ngủ đông systemctl"

Để tắt lời nhắc mật khẩu systemctl ngủ đông lệnh nên được thêm vào danh sách sudoers (/etc/sudoers.tmp) Sử dụng sudo visudo lệnh và thêm vào cuối tệp dòng sau:

<user_name> ALL=NOPASSWD: /usr/bin/systemctl ngủ đông

Nhưng bây giờ có lỗi trong Menu tắt đơn giản hơn sự mở rộng. Hibernate được thực hiện trong đó bởi systemctl ngủ đông, không phải bởi sudo systemctl ngủ đông theo yêu cầu. Việc thực hiện này là trong tập tin [email protected]/extension.js

Tôi đã tạo vấn đề tương ứng cho tiện ích mở rộng này: Lỗi trong Ubuntu 20.04: Nhấn nút [Ngủ đông] yêu cầu nhập mật khẩu trước khi thực hiện ngủ đông

Cam kết cuối cùng được thực hiện khoảng 1 năm trước. Vì vậy, phần mở rộng không được hỗ trợ tích cực.

Dưới đây là chi tiết đầy đủ về sự cố với cách giải quyết:

hành vi dự kiến

ép ngủ đông nút thực thi sudo systemctl ngủ đông. Nếu có người dùng thích hợp trong danh sách sudoers (/etc/sudoers.tmp sửa bởi sudo visudo):

<user_name> ALL=NOPASSWD: /usr/bin/systemctl ngủ đông

hành động ngủ đông được thực hiện ngay sau khi nhấn ngủ đông cái nút.

Kết quả thực tế

Nhấn nút [Ngủ đông] yêu cầu nhập mật khẩu người dùng để thực hiện ủy quyền cho hành động. Trong nhật ký hệ thống (ít hơn /var/log/syslog) có lỗi - "Không thể ngủ đông hệ thống thông qua đăng nhập: Truy cập bị từ chối":

02:51:06 gnome-shell[1983]: st_widget_get_theme_node được gọi trên tiện ích [0x564b127af6f0 Gjs_ui_popupMenu_PopupSubMenuMenuItem.popup-menu-item popup-submenu-menu-item:last-child ("")] không có trong giai đoạn.
02:51:06 Tgnome-shell[1983]: st_widget_get_theme_node được gọi trên tiện ích [0x564b127b6d00 StWidget:last-child] không ở trong giai đoạn.
02:51:06 gnome-shell[1983]: st_widget_get_theme_node được gọi trên tiện ích [0x564b12781480 StBoxLayout ("")] không ở trong giai đoạn.
02:51:13 systemd[1735]: Bắt đầu Ứng dụng do gnome-shell khởi chạy.
02:51:13 gnome-Shell [5729]: Hệ thống ngủ đông không thành công thông qua đăng nhập: Truy cập bị từ chối
02:51:27 gnome-shell[5729]: Không thể bắt đầu ngủ đông.mục tiêu: Truy cập bị từ chối
02:51:27 gnome-shell[5729]: Xem nhật ký hệ thống và 'trạng thái systemctl hibernate.target' để biết chi tiết.

Sau khi nhập mật khẩu, hành động ngủ đông có thể được thực hiện bởi không systemctl ngủ đông nhưng một số lệnh khác. Tôi không chắc nhưng có thể do chiều ngủ đông hoặc ngủ đông lệnh - những gì không được khuyến nghị.

Sự khác biệt giữa "pm-hibernate" và "systemctl hibernate"

Một câu trả lời khá ngắn gọn cho điều này là systemd được duy trì tích cực, trong khi pm-utils thì không. Trên thực tế, pm-utils đã không được cập nhật từ năm 2010, vì vậy tôi sẽ coi phần mềm này vừa cũ vừa lỗi thời. Bạn nên sử dụng systemctl từ thời điểm này.

Sự khác biệt giữa "ngủ đông systemctl" và "ngủ đông":

lệnh ngủ đông đã được thay thế bằng systemctl hibernate. Bạn nên sử dụng systemctl hibernate. lệnh ngủ đông vẫn có sẵn trong hệ thống vì lý do tương thích.

Trong Ubuntu 18,19,20 hệ thống ngủ đông lệnh yêu cầu sudo để thực hiện nó: Quyền "tạm dừng systemctl" so với "ngủ đông systemctl"

Trong việc thực hiện Đơn giản hơnTắtMenu mở rộng trong ngủ đông nút trình xử lý sử dụng systemctl ngủ đông, không phải sudo systemctl ngủ đông đó là cần thiết để khắc phục vấn đề này.

Sửa chữa

Biến đổi tiện ích mở rộng.js tập tin như sau:

function FuncHibernate(widget, event) {
    Main.overview.hide(); cố gắng {
       // sửa lỗi bắt đầu: thêm sudo
       //Util.trySpawnCommandLine('systemctl hibernate');
       Util.trySpawnCommandLine('sudo systemctl hibernate');
       //sửa kết thúc
    } bắt (lỗi) {
        Main.notify("Lỗi " + err);
    }
}

đã sửa tiện ích mở rộng.js tập tin là đây.

cách giải quyết

Để khắc phục sự cố này trong Ubuntu 20.04 sau khi tiện ích mở rộng đã được cài đặt, bạn cần thực hiện như sau:

Thay đổi tập lệnh JS của tiện ích mở rộng đã được cài đặt tại đây:

/home/<your_user_name>/.local/share/gnome-shell/extensions/[email protected]/extension.js

(bạn có thể tìm vị trí của tiện ích mở rộng.js tập tin bởi sudo find /* -name "extension.js")

Sau đó thêm sudo như được mô tả trong bản sửa lỗi ở trên và bảo vệ tệp.

Để áp dụng bản sửa lỗi, có thể chỉ cần lưu tệp là đủ. Tôi chỉ trong trường hợp thực hiện các hướng dẫn từ đây:

  • Đã tắt và bật tiện ích mở rộng, nhấn nút cấu hình trên trang mở rộng
  • ép thay thế+F2, đã nhập r và ép đi vào
  • Đăng xuất và đăng nhập

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.