किसी अन्य उपयोगकर्ता के रूप में एक एप्लिकेशन कैसे चलाएं?


17

मैं फ़ाइल प्रबंधन सामग्री के लिए krusader का उपयोग करता हूं। समस्या यह है कि अपाचे के DocumentRootनीचे होना चाहिए chown www-data:www-data /path/to/www। इसलिए क्रुसेडर (जो मेरे खाते के तहत चलाया जाता है) का उपयोग करते /path/to/wwwहुए मैंने उस तक पहुंच नहीं लिखी है जबकि मुझे वास्तव में आवश्यकता है। मैं नहीं जानता कि अन्य डेवलपर्स कैसे इस तरह के प्रतिबंध के साथ काम करना जारी रख सकते हैं!

मुझे आश्चर्य हुआ कि अगर मैं क्रासडेर चला सकता हूं www-dataतो मैं आसानी से फाइलों के साथ खेल पाऊंगा। लेकिन का उपयोग कर su - www-dataमुझसे www-dataपासवर्ड के लिए पूछा !!

तो, मैं Gnome में किसी अन्य उपयोगकर्ता (जैसे www-data) के रूप में एक एप्लिकेशन (क्रुसाडर की तरह) कैसे चला सकता हूं?

या मेरे मामले का कोई और समाधान है? (कठिन मैं वास्तव में जवाब जानने के लिए उत्सुक हूँ!)

ध्यान रखें कि मुझे पता है कि मैं इसे जड़ के रूप में चला सकता हूं ! लेकिन इसका उपयोग करते समय कुछ अनुमति की समस्याएं होंगी , cpऔर mkdirआप जानते हैं।

पुनश्च: sudo और gksudoमदद नहीं की:

$ gksudo -u -www-data krusader
No protocol specified
krusader: cannot connect to X server :0.0

अंतिम नोट: सबसे अच्छे उत्तर के अनुसार, मैंने किया chmod u+w /path/to/wwwऔर मेरी समस्या हल हो गई। लेकिन मैं अभी भी एक अन्य उपयोगकर्ता के रूप में krusader खोलने में सफल नहीं हुआ है!

जवाबों:


4

इस प्रश्न के बारे में पुनर्विचार (मुझे आशा है कि आपकी समस्या को सही समझा है, लेकिन अगर मैं गलत हूं तो मुझे सुधारें), मुझे एक और समाधान मिला है और मुझे लगता है कि आपको एप्लिकेशन को www-data के रूप में चलाने की आवश्यकता नहीं है और न ही अनुमतियों के साथ खेलने के लिए । आपने कहा था कि:

Apache's DocumentRoot को chown www-data: www-data / path / to / www के तहत होना चाहिए

लेकिन वास्तव में, यह पूरी तरह से सच नहीं है: अपाचे के DocumentRootद्वारा पढ़ा जाना चाहिए www-data, लेकिन जरूरी नहीं कि इसके स्वामित्व में हो। डिफ़ॉल्ट रूप से, उबंटू डेस्कटॉप में, आपके द्वारा बनाई गई सभी फाइलें और निर्देशिकाएं सभी द्वारा पठनीय हैं, इसलिए आप अपने डॉक्यूमेंटरूट को अपने होम फ़ोल्डर के अंदर एक निर्देशिका में सेट कर सकते हैं, उदाहरण के लिए:

DocumentRoot /home/user/my-project/my-document-root

धन्यवाद! यह सिर्फ काम किया। और यह क्यों काम करेगा की आपकी व्याख्या, बहुत मददगार थी। क्योंकि इससे मेरी समस्या हल हो गई लेकिन मुझे अभी भी यह जानने की उत्सुकता है कि मैं किसी अन्य उपयोगकर्ता के रूप में क्रुसेडर कैसे खोल सकता हूं। अन्य समाधान सिर्फ काम नहीं किया।
एलेक्सर

8
xhost +SI:localuser:uname
gksudo -u uname -l "firefox"
xhost -SI:localuser:uname

जहां नामांकित = प्रतिरूपित उपयोगकर्ता का नाम। वहाँ देखा: http://ubuntuforums.org/showthread.php?p=10399617

मेरे मनमौजी बॉक्स पर काम करता है, कांटे वाले स्काइप और ~ / .profile.d में कोई आवाज़ नहीं है क्योंकि इसे निष्पादित नहीं किया जा सकता है।


5

यदि आप इसे उस मेनू सिस्टम से चला रहे हैं, जिसका आप उपयोग करना चाहते हैं alacarte(सिस्टम> वरीयताएँ> मुख्य मेनू) और क्रुसेडर के लिए प्रविष्टि बदलें और उसके सामने जोड़ें: gksudo -u www-dataजो कुछ इस तरह का उत्पादन करे:

gksudo -u www-data krusader

यह प्रशासनिक कार्य प्रॉम्प्ट विंडो लॉन्च करेगा, जो कि GKSudo Manpage के अनुसार है , a

जीटीके + सु और सुडो के लिए मोर्चा

-uस्विच के बिना सिर्फ gksudo का उपयोग करने से कमांड रूट के रूप में चलेगी।


धन्यवाद, लेकिन यह लौटाता है: कोई प्रोटोकॉल निर्दिष्टक्रेडर: एक्स सर्वर से कनेक्ट नहीं हो सकता: 0.0
एलेक्सर

2
लॉन्च से पहले gksudo कमांड, टर्मिनल में आपके अकाउंट रन के तहत:xhost +
जेट

4

जैसे मार्को ने उल्लेख किया है कि आप gksudo -u www-data <command>कमांड को किसी अन्य उपयोगकर्ता के रूप में चलाने के लिए उपयोग कर सकते हैं । मैं इसे नियमित रूप से कमांड चलाने के लिए उपयोग करता हूं gdmऔर अब तक इसने मुझसे कभी भी अपने पासवर्ड के अलावा और कुछ नहीं मांगा।

यदि आप kde का उपयोग कर रहे हैं तो समतुल्य है। kdesu -u www-data krusaderमुझे लगता है, क्योंकि krusader एक kde एप्लिकेशन है, यह बेहतर तरीके से काम कर सकता है kdesuयहाँ kdesu के बारे में अधिक जानकारी ।

मैंने gksudoसिस्टम पर अन्य "मानव" उपयोगकर्ताओं के रूप में कमांड चलाने के लिए उपयोग किया है और जब मुझे पासवर्ड के लिए संकेत दिया जाता है, तो मैं अपना टाइप करता हूं।


धन्यवाद, लेकिन परिणाम gksudo के रूप में है: कोई प्रोटोकॉल निर्दिष्टक्रेडर: एक्स सर्वर से कनेक्ट नहीं कर सकता: 0.0
अलेक्सार

संभवतः क्रासडेर (एक केडी ऐप) के लिए, kdesuएक बेहतर विकल्प है। मैंने अपना उत्तर अपडेट कर दिया है। क्या आप कोशिश कर सकते हैं?
14

4

अपने स्वयं के पासवर्ड के साथ www-data बनने के लिए, इसका उपयोग करें:

$ sudo su www-data
[sudo] password for <your username>: [enter your password]
$ whoami
(you should see www-data here)

लेकिन, मुझे नहीं लगता कि आप वहां से GUI ऐप चला पाएंगे।

मैं आमतौर पर हर चीज का मालिक हूं /var/www, लेकिन सभी को पढ़ने की अनुमति देता हूं :

/var/www$ sudo chown -R [your-username]\:[your-group] *
/var/www$ find . -type d -exec chmod a+rx {} \;
/var/www$ find . -type f -exec chmod a+r {} \;

मुझे उम्मीद है कि इससे आपका दर्द कम होगा :)


जैसा कि आपने अनुमान लगाया कि मैं वहां से GUI ऐप नहीं चला सकता। यह कहा गयाNo protocol specified krusader: cannot connect to X server :0.0
एलेक्सर

क्या दूसरा समाधान आपके लिए कोई विकल्प नहीं है? आप डेटा नहीं करता है , हालांकि मुझे लगता है कि यह पसंद किया जाता है, www-डेटा के स्वामित्व में किया जाना है।
हेनिबल लेक्टर

3

मेरा मानना ​​है कि आपको टर्मिनल पर निम्नलिखित चलाने की आवश्यकता है:

xhost +SI:localuser:<user-to-run-as>

तो आप कर सकते हैं:

sudo su - <user-to-run-as>

और अंत में, अपना ऐप चलाएं:

krusader

इसे करना चाहिए, बस <user-to-run-as>अपने उपयोगकर्ता नाम के साथ प्रतिस्थापित करना सुनिश्चित करें ।


0

Are gksu ’और u kdesu’ दोनों 'sudo ’के लिए चित्रमय दृश्य हैं, जो कि आपको केवल-पाठ परिवेश में होने पर उपयोग होने वाला उपकरण है। 'Gksu' और 'kdesu' टूल के लिए आपको एक ग्राफिकल मोड में होना चाहिए, जो बताता है कि "X सर्वर से कनेक्ट नहीं हो सकता" त्रुटियां।

यदि आप कंसोल कमांड को एक अलग उपयोगकर्ता के रूप में निष्पादित करना चाहते हैं, तो आप कमांड 'sudo -u उपयोगकर्ता नाम कमांड' का उपयोग करते हैं।


धन्यवाद, मुझे लगता है कि चलाने के लिए और यह कुछ इस तरह कहते हैं [1] 12100कि इस प्रक्रिया आईडी लगता है; लेकिन मैं कार्रवाई में कुछ भी नहीं देख रहा हूँ।
एलेक्सर

0

Www-data के तहत एक ग्राफिकल एप्लिकेशन चलाने से आपको कई समस्याएं होती हैं। एक चीज़ जो आप कर सकते हैं वह है खुद को www-data समूह में जोड़ना, ताकि आप अपनी ज़रूरत की सभी फ़ाइलों को बदल सकें:

sudo adduser $USER www-data

नोट: संभवत:, आपको परिवर्तन को प्रभावी करने के लिए सत्र से लॉग आउट करना होगा।

यदि, इस आदेश के बाद, आप अभी भी कुछ फ़ाइलों को बदलने में असमर्थ हैं, तो सुनिश्चित करें कि आपने उन पर अनुमति लिखी है:

sudo chown www-data:www-data /var/www/file
chmod g+w /var/www/file

हालाँकि यह सामान्य समस्या का हल नहीं है लेकिन यह मेरे मामले के लिए काम करता है; मैं इसे एक कोशिश और रिपोर्ट देता हूँ
एलेक्सर

0

एंटोन एस। क्रिएवॉय से प्रेरित होकर मैंने इसी तरह के समाधान का इस्तेमाल किया, जो मेरे लिए काम करता है। उपयोगकर्ता में, जो क्रूसरर का उपयोग करते हुए मैंने xhhost में एक नया उपयोगकर्ता जोड़ा:

xhost +SI:localuser:username

कृपया लॉगिन करें:

su - username

थान क्रुसाडर एक नए उपयोगकर्ता में एक नए उदाहरण के रूप में ठीक से शुरू होता है:

krusader

ध्यान दें, कि ~ / .kde / share / config / krusaderrc में एक नया कॉन्फ़िगरेशन बनाया जाएगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.