Các giải pháp
Trong Wayland, thường rất khó để chạy các chương trình ứng dụng GUI với quyền nâng cao (sudo -H, gksu ...). Đó là một ý tưởng tốt để làm các nhiệm vụ như vậy với các công cụ dòng lệnh.
Nhưng có một cách giải quyết, nếu bạn có một công cụ GUI, nó hoạt động tốt cho bạn và cần các quyền nâng cao. (Tôi sử dụng hai công cụ tiêu chuẩn như: các Synaptic Package Manager, synaptic
và các công cụ phân vùng GParted, gparted
tôi sử dụng MakeUSB để tạo ổ USB khởi động,. mkusb
, Quá, nhưng nó có thể chạy những phần cần quyền cao mà không cần đồ họa.)
xhost
và sudo -H
Có một cách giải quyết để cho phép các chương trình ứng dụng đồ họa thuộc sở hữu của người dùng khác ngoài người dùng đã đăng nhập trong Wayland,
xhost +si:localuser:root
gksu
và gksudo
không được gói cùng với Ubuntu tiêu chuẩn và không hoạt động ở đây, nhưng chúng hoạt động trong Xorg.
Thay vào đó bạn có thể sử dụng
sudo -H
Đó là một ý tưởng tốt để ngăn chặn các chương trình ứng dụng đồ họa thuộc sở hữu của người dùng khác ngoài người dùng đã đăng nhập sau đó,
xhost -si:localuser:root
quản trị phụ trợ gvfs
Trong Ubuntu 17.10 (gvfs> = 1.29.4), bạn có thể sử dụng phụ trợ quản trị gvfs. Lưu ý rằng bạn cần đường dẫn đầy đủ,
gedit admin:///path/to/file
Về lý thuyết, phương pháp phụ trợ quản trị viên gvfs (sử dụng polkit) sẽ tốt hơn và an toàn hơn (hơn xhost
và xudo -H
), bất kể UI bạn sử dụng là gì.
Bạn không chạy toàn bộ ứng dụng với quyền root. Sự leo thang đặc quyền chỉ xảy ra khi thực sự cần thiết. Xem các liên kết sau đây và các liên kết từ nó,
nautilus-admin
Cũng có thể sử dụng nautilus-admin
cho các hoạt động tập tin với quyền nâng cao và sử dụng gedit
với quyền nâng cao. Điều này được mô tả trong câu trả lời AskUbfox sau đây,
Truy cập tạm thời để root vào máy tính để bàn Wayland thông qua chức năng gks
Hãy tránh sudo GUI-program
. Nó có thể khiến hệ thống ghi đè lên các tệp cấu hình cho ID người dùng thông thường của bạn với root
cấu hình và đặt quyền sở hữu cũng như quyền để phù hợp root
và khóa ID người dùng thông thường của bạn. Bạn nên chạy các ứng dụng GUI với sudo -H
, ghi các tệp cấu hình trong root
thư mục chính của /root
. Thí dụ:
sudo -H gedit myfile.txt
Nhưng có một rủi ro mà bạn quên -H
. Thay vào đó, bạn có thể tạo một chức năng, ví dụgks
gks () { xhost +si:localuser:root; sudo -H "$@"; xhost -si:localuser:root; }
và lưu trữ nó trong ~/.bashrc
bí danh của bạn . Sau đó bạn có thể chạy
gks gedit myfile.txt
theo cách tương tự như cách bạn đã sử dụng gksudo
trước đây.
Kiểm tra
Bạn có thể kiểm tra như thế nào sudo
, sudo -H
và gks
làm việc với các lệnh sau
sudodus@xenial32 ~ $ sudo bash -c "echo ~"
/home/sudodus
sudodus@xenial32 ~ $ sudo -H bash -c "echo ~"
/root
sudodus@xenial32 ~ $ gks () { xhost +si:localuser:root; sudo -H "$@"; xhost -si:localuser:root; }
sudodus@xenial32 ~ $ gks bash -c "echo ~"
localuser:root being added to access control list
/root
localuser:root being removed from access control list
sudodus@xenial32 ~ $
và dĩ nhiên
gks gedit myfile.txt
theo ví dụ trong phần trước.
Phương thức hoạt động thông qua menu Alt-F2 và Gnome Shell
Thay vì thêm một chức năng một dòng đơn giản vào ~/.bashrc
, bạn có thể tạo một hệ thống, cũng hoạt động mà không cần bash. Nó có thể thuận tiện để sử dụng, nhưng phức tạp hơn để thiết lập. Xin lưu ý rằng bạn chỉ nên cài đặt một trong các lựa chọn thay thế, vì chức năng một dòng sẽ làm phiền khi sử dụng hệ thống phức tạp hơn này.
Ba tập tin
Bản tóm tắt gks
:
#!/bin/bash
xhost +si:localuser:root
if [ $# -eq 0 ]
then
xterm -T "gks console - enter command and password" \
-fa default -fs 14 -geometry 60x4 \
-e bash -c 'echo "gks lets you run command lines with GUI programs
with temporary elevated permissions in Wayland."; \
read -p "Enter command: " cmd; \
cmdfile=$(mktemp); echo "$cmd" > "$cmdfile"; \
sudo -H bash "$cmdfile"; rm "$cmdfile"'
else
xterm -T "gks console - enter password" -fa default -fs 14 -geometry 60x4 -e sudo -H "$@"
fi
xhost -si:localuser:root;
Tệp máy tính để bàn gks.desktop
:
[Desktop Entry]
Version=1.0
Categories=Application;System;
Type=Application
Name=gks
Description=Run program with temporary elevated permissions in Wayland
Comment=Run program with temporary elevated permissions in Wayland
Exec=gks %f
Icon=/usr/share/icons/gks.svg
Terminal=false
StartupNotify=false
GenericName[en_US.UTF-8]=Run program with temporary elevated permissions in Wayland
Tệp biểu tượng gks.svg
trông như thế này:
Bạn có thể tải xuống tệp biểu tượng hoặc tarball với cả ba tệp từ liên kết này,
wiki.ubfox.com/Wayland/gks
Sao chép các tệp [giải nén hoặc sao chép và dán] vào các vị trí sau,
sudo cp gks /usr/bin
sudo cp gks.desktop /usr/share/applications/
sudo cp gks.svg /usr/share/icons
Đăng xuất / đăng nhập hoặc khởi động lại, và cần có một biểu tượng máy tính để bàn hoạt động. Nó sẽ làm việc từ một cửa sổ đầu cuối như với giải pháp đơn giản với chức năng.
Alt F2 cái hộp:
Menu Gnome Shell:
bảng điều khiển gks và gparted:
Tập lệnh tùy chỉnh và tập tin máy tính để bàn
Nếu bạn chỉ có một vài ứng dụng GUI, cần có quyền nâng cao, bạn có thể tạo tập lệnh tùy chỉnh và tệp máy tính để bàn cho chúng và tránh nhập lệnh (tên ứng dụng). Bạn sẽ chỉ nhập mật khẩu, điều này không khó hơn so với các phiên bản trước của Ubuntu (dù sao bạn cũng nên nhập mật khẩu).
Ví dụ với chương trình GUI đơn giản xlogo
đi kèm với gói chương trình x11-apps
:
Shellscript gkslogo
(đơn giản hóa so với gks
),
#!/bin/bash
xhost +si:localuser:root
xterm -T "gks console - enter password" -fa default -fs 14 -geometry 60x4 -e sudo -H xlogo
xhost -si:localuser:root;
Tệp máy tính để bàn gkslogo.desktop
:
[Desktop Entry]
Version=1.0
Categories=Application;System;
Type=Application
Name=gkslogo
Description=Run program with temporary elevated permissions in Wayland
Comment=Run program with temporary elevated permissions in Wayland
Exec=gkslogo
Icon=/usr/share/icons/gks.svg
Terminal=false
StartupNotify=false
GenericName[en_US.UTF-8]=Run program with temporary elevated permissions in Wayland
Tôi đã lười biếng và sử dụng cùng một tập tin biểu tượng gks.svg
Sao chép các tệp [đã sao chép & dán] vào các vị trí sau,
sudo cp gkslogo /usr/bin
sudo cp gkslogo.desktop /usr/share/applications/
bảng điều khiển gks [logo] và xlogo:
gksudo
sẽ không hoạt động trong phiên Wayland , bạn có thể chuyển sang phiên Xorg và thử.