मैं एक गैर-व्यवस्थापक उपयोगकर्ता सत्र से व्यवस्थापक के रूप में GUI के साथ एक आवेदन कैसे चला सकता हूं?


33

मैंने 2 उपयोगकर्ता खातों को परिभाषित किया है:

  • व्यवस्थापक विशेषाधिकार के साथ एक ( sudoदाएं के साथ ) => इसे कॉल करने देता है adminuser
  • बिना किसी विशेषाधिकार के एक दूसरा => इसे कॉल करने देता है और मैं इस 2 उपयोगकर्ता पर ऑटोलॉगिन को कॉन्फ़िगर करता हूं । normaluser
    normaluser

तो जब मैं एक खोलने के normaluserसत्र और व्यवस्थापक विशेषाधिकार के साथ एक आवेदन पत्र चलाना चाहते हैं,
मैं खोलने के एक टर्मिनल Ctrl+ Alt+ Tऔर:

su adminuser
sudo anyapplication ...

यह normaluserसत्र छोड़ने के बिना ठीक काम करता है (सत्र खोलने की आवश्यकता नहीं है adminuser)।


लेकिन अगर जीयूआई (ग्राफिक यूजर इंटरफेस) के साथ एप्लिकेशन चलाने की आवश्यकता हो तो मुझे क्या करना चाहिए?
मैं हालांकि उस के बारे में:

su adminuser
gksu anyapplication ...

लेकिन मुझे मिलता है

** (gksu:9122): WARNING **: the connexion is closed
No protocol specified
No protocol specified
(gksu:9122): Gtk-WARNING **: cannot open display: :0.0

तो सवाल यह है कि आपने अपने सिस्टम को इस तरह क्यों कॉन्फ़िगर किया? क्या आपको लगता है कि यह सुरक्षा में सुधार करता है? यह नहीं है :) इसके बजाय, आप अपने "व्यवस्थापक" खाते पर ऑटो-लॉगिन कॉन्फ़िगर कर सकते हैं, इसलिए जब आप लॉग इन करते हैं तो यह आपसे पासवर्ड नहीं पूछेगा - जब आप प्रशासनिक कार्य करते हैं तब भी इसे पासवर्ड की आवश्यकता होगी।
सर्गेई

5
@Sergey यदि normaluserकभी-कभी किसी ऐसे व्यक्ति द्वारा उपयोग किया जाता है जिसे कमांड चलाने में सक्षम नहीं होना चाहिए root, तो normaluserगैर-व्यवस्थापक बनाने से निश्चित रूप से सुरक्षा में सुधार होता है । किसी को एक उपयोगकर्ता खाता देने का जोखिम लेकिन उन्हें अपने स्वयं के पासवर्ड का पता न चलने देना बोरिस की परेशानी और जटिलता से परे है। यदि आप इस बात की पूरी व्याख्या चाहते हैं कि समस्याग्रस्त क्यों है, तो मैं एक नया प्रश्न पोस्ट करने का सुझाव देता हूं, लेकिन इसके 3 कारण हैं कि एक उपयोगकर्ता को स्क्रीन को लॉक करने और अनलॉक करने में सक्षम होना चाहिए, एक अलग सत्र प्रकार के साथ लॉग आउट और बैक करना चाहिए, और डिक्रिप्ट ecryptfsडेटा।
एलिया कगन जूल

2
वास्तव में, मेरे लिए यह कोई मतलब नहीं है कि मेरे परिवार के पीसी का उपयोग करने के लिए हर कोई स्क्रीन को अनलॉक करने के लिए व्यवस्थापक पासवर्ड को जाने। यह normaluserऔर adminuserसेटिंग स्वर्णिम नियम है।
बोरिस

1
पर्याप्त रूप से, मुझे बस एक धारणा मिली कि ओपी normaluserरोजमर्रा के काम के लिए खाते का उपयोग कर रहा था और adminप्रशासनिक कार्यों को करने के लिए खाता था, जो वास्तव में कुछ भी सुधार नहीं करता है। एक बहु-उपयोगकर्ता मशीन पर यह पूरी तरह से समझ में आता है।
सेर्गेई

जवाबों:


5

पीएएम इसका ख्याल रख सकता है

यह मेरे लिए Ubuntu 16.04 पर काम करता है (संपादित करें: यह 18.04 LTS पर भी काम करता है):

लाइन लगाएं:

session optional pam_xauth.so

कहीं:

/etc/pam.d/su

और / या

/etc/pam.d/sudo

और फिर "su -" या "sudo su -" कर रहा हूं, मैं ग्राफिकल एप्स को रूट के रूप में उपयोग कर सकता हूं।


पुष्टि करते हुए कि यह कुबंटु 16.04 पर भी काम करता है। धन्यवाद!
1

धन्यवाद, यह मेरे लिए भी 18.04 पर काम करता है! यह प्रतीत हो रहा है सबसे अच्छा विकल्प के लिए suxऔर gksuहै कि अब और उपलब्ध नहीं हैं।
बोरिस

29

शब्दावली

इस उत्तर में:

  • normaluserएक सामान्य उपयोगकर्ता है जो प्रशासक नहीं है और उसके rootसाथ कमांड नहीं चला सकता है sudo
  • adminएक प्रशासक है जो कमांड को rootसाथ में चला सकता है sudo। (बेशक, किसी भी चित्रमय आदेशों को gksu/ की तरह चित्रमय दृश्य का उपयोग करना चाहिएgksudo , और sudoसीधे नहीं ।)
  • anyapplicationआलेखीय अनुप्रयोग का नाम इस normaluserरूप में चलाना चाहता है rootnormaluserजानता है कि adminपासवर्ड और है (संभवतया) बताया गया है / वह इस उद्देश्य के लिए इसका उपयोग कर सकता है।

समस्या

आपकी समस्या का कारण, और अब तक के अन्य जवाबों में से अधिकांश कारण काम नहीं करते हैं ( मार्टी फ्राइड के उत्कृष्ट उत्तर के अपवाद के साथ ), है:

  • gksusudo या su इसके बैकएंड के रूप में उपयोग करने के लिए कॉन्फ़िगर किया जा सकता है । के डिफ़ॉल्ट व्यवहार को gksuउबंटू में के लिए एक दृश्यपटल के रूप में कार्य करने के लिए है sudo, नहीं के लिए su। यह कहना है कि, डिफ़ॉल्ट रूप से, gksuऔर बिल्कुल वैसा हीgksudo व्यवहार करेंमैनपेज देखें ।
  • normaluserकोई व्यवस्थापक नहीं है और इस प्रकार आदेशों के रूप में नहीं चला सकते हैं rootके साथ sudoइसे चलाने वाले उपयोगकर्ताsudo के पासवर्ड के लिए संकेत देता है , न कि उस उपयोगकर्ता का पासवर्ड जो वे बनना चाहते हैं । कार्रवाई करने के लिए अपने पासवर्ड का उपयोग करने में सक्षम नहीं होने के कारण लोग हैं जो आप नहीं हैं इसका मतलब है कि प्रशासक नहीं होना चाहिए
  • normaluser, यह एक अतिथि खाता नहीं है प्रदान की है, कर सकते हैं किसी अन्य उपयोगकर्ता के रूप में कमांड चलाने के साथsu , में डाल अन्य उपयोगकर्ता का पासवर्ड । लेकिन के gksuलिए एक दृश्य के रूप में कार्य करता है sudo, नहीं su
  • normaluserकिसी भी कमांड को सीधे नहीं चला सकते root, क्योंकि normaluserकोई उपयोग नहीं कर सकता है sudo, और कोई भी पासवर्ड नहीं होने rootके suकारण नहीं बन सकता हैroot

समाधान

समाधान के लिए दो प्रमाणीकरण चरण करने वाली कमांड लिखने की आवश्यकता होती है:

  • normaluseradminचित्रमय कमांड चलाने के लिए बनना चाहिए । ऐसा करने के लिए, डिफ़ॉल्ट सूडो-मोड के बजाय इसे सू-मोड में normaluserचलाने gksuके लिए -wध्वज के साथ चलना चाहिए , और कमांड को चलाने के लिए ध्वज को इसके बजाय ।-uadminroot
  • कमांड रन के रूप में ध्वज के बिना उपयोग करने के लिए adminआह्वान करना चाहिए ।gksu -wsudoroot

यहाँ कमांड है (हाँ, मैंने इसका परीक्षण किया है; ;-) ):

gksu -w -u admin gksu anyapplication

आपको दो बार पासवर्ड के लिए कहा जाएगा :

  1. सबसे पहले, आपको बैकएंड के साथ कमांड चलाने के adminलिए पासवर्ड दर्ज करना होगा ।normaluseradminsu
  2. दूसरा, आपको बैकएंड के साथ कमांड चलाने के adminलिए पासवर्ड दर्ज करना होगा ।adminrootsudo

ये सही है। आप adminदो बार पासवर्ड दर्ज करते हैं।

विविध नोट:

  • अगर आप चाहें तो आप दूसरी जगह ले सकता है gksuके साथ gksudoयह कम भ्रामक बनाने के लिए। उबंटू में, वे बराबर हैं। (आप पहले के gksuसाथ भी बदल सकते हैं gksudo, लेकिन यह बहुत ही स्पष्ट और भ्रमित करने वाला होगा।)
  • -wका संक्षिप्त रूप है --su-mode
  • -Sका संक्षिप्त रूप है, --sudo-modeलेकिन न तो इसका उपयोग किया जाना है क्योंकि sudo- मोड डिफ़ॉल्ट है।
  • आप इसे पहले कुछ बहुत हानिरहित कमांड के साथ टेस्ट करना चाहते हैं, यह सुनिश्चित करने के लिए कि यह वही है जो आप चाहते हैं। (यह होगा, लेकिन इसके लिए आपको मुझ पर भरोसा करने की कोई आवश्यकता नहीं है।) उदाहरण के लिए:
    gksu -w -u admin gksu xclock
    xclock एक अच्छा सरल घड़ी-खिड़की अनुप्रयोग है।

1
सही है, मैं इस चतुर टिप को भूलने से बचने के लिए अपने .bashrc में एक उपनाम जोड़ता हूं
बोरिस

पता नहीं क्यों, लेकिन अब (ubuntu 14.04 के साथ) मुझे sudoइसे काम करने के लिए शुरू करना होगा। उदाहरण:sudo gksu -w -u thedude gksu xclock
बोरिस

FYI करें: kdesudoकम से कम KUbuntu पर काम करने वाला दिखता है।
MDTech.us_MAN

दुर्भाग्य से, ऐसा लगता है कि gksuअब उपलब्ध नहीं है
बोरिस

11

एक तरीका जो शायद काम करेगा वह है "sux" का उपयोग करने के बजाय "su" जब आप पहली बार व्यवस्थापक उपयोगकर्ता पर जाते हैं। sux, स्पूफ़ किए गए उपयोगकर्ता से x अनुप्रयोग चलाने की समस्या को ठीक करता है। यह मानक रेपो में है, और sudo apt-get install suxएक कमांडलाइन पर दर्ज करके इसे स्थापित किया जा सकता है ।

फिर, बस "सु" के बजाय "सुक्स" का उपयोग करें और यह उस तरीके से काम करना चाहिए जिस तरह से आप उम्मीद करते हैं।

आवेदन के उदाहरण का पुन: उपयोग करें xclock:

sux admin
gksu xclock

3
suxउबंटू 14.04 64बिट्स पर कोई अधिक संस्करण नहीं है;(
बोरिस

2
लगता है कि एक विकल्प है
बोरिस

@Boris यह एक खोल स्क्रिप्ट है, तो आप बस इसे एक ऐतिहासिक रेपो से डाउनलोड करने और से अपने रास्ते में डाल दिया, उदाहरण के लिए कर सकते हैं packages.debian.org/source/wheezy/sux
कोई भी

2

pkexec

Kdesudo और gksu के लिए एक सर्वव्यापी विकल्प है - pkexecजो policykit-1पैकेज से है जिसे बहुत सारे पैकेजों की आवश्यकता होती है।


मैं इस उत्तर का विस्तार करने की सलाह देता हूं कि यह समझाने के लिए कि एक नियमित उपयोगकर्ता (जो प्रशासक नहीं है और sudoपॉलीकिट के साथ रूट नहीं बन सकता है ), जो किसी व्यवस्थापक का पासवर्ड जानता है (अर्थात, किसी ऐसे व्यक्ति का जो रूट या पोलकिट के साथ रूट बन सकता हैsudo ), का उपयोग कर सकता pkexecहै रूट के रूप में एक ग्राफिकल प्रोग्राम चलाएं। यही सवाल यहाँ पूछ रहा है। यह मेरे लिए स्पष्ट है कि नहीं है pkexecकम से कम बड़े पैमाने पर विन्यास फाइल संपादन के बिना यह कर देगा,, खासकर जब से pkexecआम तौर पर मनमाने ढंग से चित्रमय कार्यक्रम (polkit प्रोफाइल के बिना) को चलाने के लिए नहीं किया जा सकता सब पर । क्या उधर रास्ता है?
एलिया कगन

@EliahKagan यह उबंटू डिफ़ॉल्ट कॉन्फ़िगरेशन के साथ काम करता है - बस चलता है pkexec commandऔर यह काम करता है। कॉन्फ़िगरेशन उस फ़ाइल में है /usr/share/polkit-1/actions/org.freedesktop.policykit.policyजिसे नामित पैकेज द्वारा स्थापित किया गया है। और वास्तव में आपको केवल एक बार एडमिन पासवर्ड लिखना होगा
pqnet

0

के बजाय

सु व्यवस्थापक
gksu anyapplication ...

मैं आपको सुझाव देने की कोशिश करता हूं gksu -u admin anyapplication, जहां आप gksuकमांड का उपयोग करके सब कुछ करते हैं । कृपया यह भी नोट करें कि आपको कमांड में उल्लिखित उपयोगकर्ता का पासवर्ड दर्ज करना होगा, अर्थात, इस स्थिति में आपको एडमिन का पासवर्ड डालना होगा।


1
एक डिफ़ॉल्ट से कॉन्फ़िगर Ubuntu पर, अगर normaluserरन gksu -u admin anyapplicationइसके लिए संकेत देगा normaluserके पासवर्ड बनने के लिए adminका उपयोग कर sudoबैकएंड, बस के रूप में gksu anyapplicationके लिए संकेत हैं normaluserरों पासवर्ड 'बनने के लिए rootका उपयोग कर sudoबैकएंड। दोनों एक ही कारण से विफल हो जाएंगे - में normaluserकमांड चलाने की शक्ति नहीं है sudo
एलियाह कगन

-1

इसे पूरा करने की आज्ञा यहाँ दी गई है।

gksu app-name

इसे चलाने के बिना चल रहा है suपहले। आपको केवल उपर्युक्त कमांड को सामान्य उपयोगकर्ता सत्र से चलाने की आवश्यकता है और एप्लिकेशन को रूट के रूप में चलाया जाएगा।


1
यह काम नहीं करता है - ध्यान दें कि मैं बिना किसी विशेषाधिकार के एक उपयोगकर्ता सत्र से कोशिश कर रहा हूं
बोरिस

त्रुटि संदेश क्या है?
सिरचलो जू

अपना normalउपयोगकर्ता पासवर्ड दर्ज करते हुए - मुझे संदेश मिलता है "मूल उपयोगकर्ता के रूप में लॉन्च करने के लिए असंभव"
बोरिस

अपना superuser/adminपासवर्ड दर्ज करते हुए - मुझे संदेश मिलता है "गलत पासवर्ड, फिर से कोशिश करें"
बोरिस

-1

आपको उपयोग करना चाहिए:

gksudo AppName

यह पहले (आपके उपयोगकर्ता का पासवर्ड) एक ग्राफिकल पासवर्ड अनुरोध लाता है, और फिर GUI- ऐप को रूट के रूप में शुरू करता है (मैंने बस कोशिश की, यह वास्तव में करता है। मजेदार बात: मैंने gksu AppNameइसके तुरंत बाद की कोशिश की , और यह काम किया - साथ ही - यह भी। शायद "gk" उपसर्ग के रूप में माना जाता है। इसलिए मुझे पूरी तरह से यकीन नहीं है कि आपकी समस्या कहाँ स्थित हो सकती है)।


1
यह आपके मामले में काम करता है क्योंकि आपने sudo अधिकार वाले व्यवस्थापक उपयोगकर्ता सत्र से प्रयास किया है। बिना सूडो राइट के नॉन एडमिन यूजर सेशन का क्या?
बोरिस

मैंने गैर-व्यवस्थापक उपयोगकर्ता (मेरे अपने उपयोगकर्ता) के साथ एक सामान्य टर्मिनल विंडो से gksudo का उपयोग किया। हालाँकि आप दूसरी कोशिश के लिए सही हैं, क्योंकि मेरे पास तब भी सूडो की अनुमति थी। लेकिन बोरिस की समस्या एक अलग है: उसका ऐप एक्स से कनेक्ट नहीं हो सकता है, जो मेरे मामले में दोनों बार काम करता है। जैसा कि आप मूल प्रश्न से देख सकते हैं, sudoपाठ मोड में उसके लिए काम कर रहा है।
इज़्ज़ी

-1

केवल एक सुपर उपयोगकर्ता है और वह रूट है।

उपयोगकर्ता 1 एक व्यवस्थापक है और उसके पास sudo अधिकार हैं।
उपयोगकर्ता 2 एक व्यवस्थापक नहीं है और उसके पास sudo अधिकार नहीं हैं।

उपयोगकर्ता 1 के रूप में फिर कमांड का उपयोग करके लॉगिंग का प्रयास करें

gksudo app-name  

(ऐप नाम के साथ ऐप-नाम की जगह)
आशा है कि मदद करता है - मुझे बताएं। : ओ)

संपादित करें: अनुरोध के रूप में अधिक जानकारी

अगर यह सिर्फ कंप्यूटर पर है,
तो उपयोगकर्ता 1 (जिसके पास sudo का उपयोग करने की अनुमति है)
का उपयोग करना उपयोगकर्ता 2 (जिसके पास sudo का उपयोग करने की अनुमति नहीं है ) का उपयोग करने के लिए अलग नहीं है।
उपयोगकर्ता 1 में उपयोगकर्ता के समान अधिकार हैं।
जब तक उपयोगकर्ता 1 sudo और / या उपसर्गों के साथ चलने के लिए एप्लिकेशन को अनुमति देने के लिए अपना पासवर्ड प्रदान करता है और / या अपना पासवर्ड प्रदान करता है।
अंतर केवल इतना है कि उपयोगकर्ता 2 रूट के रूप में ऐप्स नहीं चला सकता है।

आशा है कि यह आपके लिए थोड़ा समझाने में मदद करता है। : ओ)


सुपर उपयोगकर्ता और व्यवस्थापक के बीच स्पष्टीकरण के लिए धन्यवाद, मैं अपना प्रश्न संपादित करूंगा। "उपयोगकर्ता के रूप में लॉगिंग" से आपका क्या अर्थ है => उपयोगकर्ता 1 के साथ सत्र खोलें? अच्छा यही है कि मैं इससे बचना चाहूंगा।
बोरिस

अनुरोध के रूप में उत्तर देने के लिए अधिक जानकारी जोड़ी गई: o)
फर्नहिल लिनक्स प्रोजेक्ट

अच्छी तरह से मेरी पत्नी और मेरे बच्चे उपयोगकर्ता 2 का उपयोग ऑटोलॉगिन के साथ कर रहे हैं, इसलिए मुझे उस उपयोगकर्ता के साथ सुडोल न होना पसंद है।
बोरिस

एक अच्छे विचार की तरह लगता है - मेरे बच्चे भी हैं; ओ)। क्या आपने अभी तक user1 के रूप में लॉग इन करने और कमांड चलाने की कोशिश की?
फर्नहिल लिनक्स प्रोजेक्ट

1
हां मैं कर सकता हूं लेकिन उपयोगकर्ता सत्र को बदलना दर्दनाक है। मुझे आमतौर पर कई बार ऐसा करना पड़ता है: कुछ सेटिंग्स को परिभाषित करने के लिए व्यवस्थापक सत्र पर जाएं, परीक्षण करने के लिए सामान्य उपयोगकर्ता सत्र पर स्विच करें, और बार-बार, सामान्य सत्र पर रहने में सक्षम होने के लिए बहुत अच्छा है। ज्यादातर समय मैं इसे su admin+ sudo ...उदाहरण के साथ संभालता हूं sudo vi file, GUI के साथ आवेदन को छोड़कर
बोरिस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.