समाधान
वेलैंड में अक्सर उन्नत (sudo -H, gksu ...) अनुमतियों के साथ GUI एप्लिकेशन प्रोग्राम चलाना मुश्किल है। कमांड लाइन टूल के साथ ऐसे कार्यों को करना एक अच्छा विचार है।
लेकिन वर्कअराउंड हैं, अगर आपके पास एक GUI टूल है, जो आपके लिए अच्छी तरह से काम करता है और एलिवेटेड परमिशन की आवश्यकता है। (मैं ऐसे दो मानक उपकरणों का उपयोग करता हूं: सिनैप्टिक पैकेज मैनेजर, synaptic
और विभाजन उपकरण Gparted gparted
। मैं USB बूट ड्राइव बनाने के लिए MakeUSB का उपयोग करता हूं mkusb
, भी, लेकिन यह उन हिस्सों को चला सकता है जिन्हें ग्राफिक्स के बिना उन्नत अनुमतियों की आवश्यकता होती है।)
xhost
तथा sudo -H
वेनलैंड में लॉग इन उपयोगकर्ता की तुलना में अन्य उपयोगकर्ताओं के स्वामित्व वाले ग्राफिकल एप्लिकेशन प्रोग्राम को अनुमति देने के लिए वर्कअराउंड है,
xhost +si:localuser:root
gksu
और gksudo
मानक उबंटू के साथ बंडल नहीं किए जाते हैं और यहां काम नहीं करते हैं, लेकिन वे Xorg में काम करते हैं।
इसके बजाय आप उपयोग कर सकते हैं
sudo -H
बाद में लॉग इन उपयोगकर्ता की तुलना में अन्य उपयोगकर्ताओं के स्वामित्व वाले ग्राफिकल एप्लिकेशन प्रोग्राम को रोकना एक अच्छा विचार है।
xhost -si:localuser:root
gvfs व्यवस्थापक बैकएंड
Ubuntu 17.10 (gvfs> = 1.29.4) में आप gvfs व्यवस्थापक बैकएंड का उपयोग कर सकते हैं। ध्यान दें कि आपको पूर्ण पथ की आवश्यकता है,
gedit admin:///path/to/file
सिद्धांत रूप में, gvfs व्यवस्थापक बैकएंड विधि (जो polkit उपयोग करता है) के लिए बेहतर है और सुरक्षित (से xhost
और xudo -H
यूआई आप उपयोग की परवाह किए बिना),।
आप पूरे एप्लिकेशन को रूट के रूप में नहीं चलाते हैं। विशेषाधिकार वृद्धि केवल तभी होती है जब कड़ाई से आवश्यक हो। निम्नलिखित लिंक और इससे लिंक देखें,
Nautilus-व्यवस्थापक
nautilus-admin
एलिवेटेड अनुमतियों के साथ फ़ाइल संचालन के लिए उपयोग gedit
करना और उन्नत अनुमतियों के साथ उपयोग करना भी संभव है । यह निम्नलिखित AskUbuntu उत्तर में वर्णित है,
रूट के लिए अस्थायी पहुंच समारोह के माध्यम से वीलैंड डेस्कटॉप के लिए gks
कृपया टालें sudo GUI-program
। यह आपके रेग्युलर यूजर आईडी के लिए सिस्टम फाइल को रेग्युलर फाइल आईडी से ओवरराइट करने का कारण बन सकता है और आपके रेगुलर यूजर आईडी root
को फिट root
और लॉक करने के लिए ओनरशिप और परमिशन सेट करता है । आपको GUI अनुप्रयोगों को चलाना चाहिए sudo -H
, जो कॉन्फ़िगरेशन फ़ाइलों को root
होम डायरेक्टरी में लिखते हैं /root
। उदाहरण:
sudo -H gedit myfile.txt
लेकिन एक जोखिम है जिसे आप भूल जाते हैं -H
। इसके बजाय आप एक फ़ंक्शन बना सकते हैं, उदाहरण के लिएgks
gks () { xhost +si:localuser:root; sudo -H "$@"; xhost -si:localuser:root; }
और इसे अपने ~/.bashrc
पास के उपनामों में संग्रहीत करें । तब तुम दौड़ सकते हो
gks gedit myfile.txt
एक तरह से आप gksudo
पहले कैसे इस्तेमाल किया ।
परिक्षण
आप निम्न कमांड के साथ कैसे sudo
, sudo -H
और gks
काम कर सकते हैं
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 ~ $
और निश्चित रूप से
gks gedit myfile.txt
पिछले अनुभाग में उदाहरण के अनुसार।
वह विधि जो Alt-F2 और गनोम शेल मेनू के माध्यम से काम करती है
के लिए एक सरल एक-लाइन फ़ंक्शन को जोड़ने के बजाय ~/.bashrc
, आप एक सिस्टम बना सकते हैं, जो बिना किसी कोस किए भी काम करता है। यह उपयोग करने के लिए सुविधाजनक हो सकता है, लेकिन स्थापित करने के लिए अधिक जटिल है। कृपया ध्यान दें कि आपको केवल एक विकल्प स्थापित करना चाहिए, क्योंकि एक-लाइन फ़ंक्शन इस अधिक जटिल प्रणाली का उपयोग करके परेशान करेगा।
तीन फाइलें
शेलस्क्रिप्ट 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;
डेस्कटॉप फ़ाइल 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
आइकन फ़ाइल gks.svg
इस तरह दिखती है:
आप इस लिंक से तीनों फाइलों के साथ आइकन फाइल या टैरबॉल डाउनलोड कर सकते हैं,
wiki.ubuntu.com/Wayland/gks
निम्नलिखित स्थानों पर [निकाले या प्रतिलिपि किए गए और चिपकाए गए] फ़ाइलों की प्रतिलिपि बनाएँ,
sudo cp gks /usr/bin
sudo cp gks.desktop /usr/share/applications/
sudo cp gks.svg /usr/share/icons
लॉगआउट / लॉगिन या रिबूट, और एक काम करने वाला डेस्कटॉप आइकन होना चाहिए। यह एक टर्मिनल विंडो से काम करेगा जैसे फ़ंक्शन के साथ सरल समाधान।
Alt F2 डिब्बा:
सूक्ति शैल मेनू:
gks कंसोल और gparted:
कस्टम स्क्रिप्ट और डेस्कटॉप फ़ाइल
यदि आपके पास केवल कुछ GUI अनुप्रयोग हैं, जिन्हें उन्नत अनुमतियों की आवश्यकता है, तो आप उनके लिए कस्टम स्क्रिप्ट और डेस्कटॉप फ़ाइलें बना सकते हैं और कमांड (एप्लिकेशन नाम) दर्ज करने से बच सकते हैं। आप केवल पासवर्ड दर्ज करेंगे, जो उबंटू के पिछले संस्करणों की तुलना में अधिक कठिन नहीं है (आपको वैसे भी पासवर्ड दर्ज करना चाहिए)।
सरल GUI प्रोग्राम के साथ उदाहरण xlogo
जो प्रोग्राम पैकेज के साथ आता है x11-apps
:
गोले gkslogo
(तुलना में सरलीकृत 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;
डेस्कटॉप फ़ाइल 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
मैं आलसी था और एक ही आइकन फ़ाइल का उपयोग करता था gks.svg
[कॉपी और पेस्ट की गई] फाइलों को निम्न स्थानों पर कॉपी करें,
sudo cp gkslogo /usr/bin
sudo cp gkslogo.desktop /usr/share/applications/
gks [लोगो] कंसोल और xlogo:
gksudo
एक वेलैंड सत्र में काम नहीं करेगा , आप एक Xorg सत्र पर स्विच कर सकते हैं और कोशिश कर सकते हैं।