एक nologin उपयोगकर्ता के रूप में एक कमांड निष्पादित करना


43

मैंने हाल ही में अपना सर्वर सेट किया है ताकि मेरे suPHP 'आभासी' उपयोगकर्ताओं को इस लेख का उपयोग करके लॉग इन न किया जा सके

मेरा मुद्दा अब यह है कि इससे पहले जब मैं rakeसर्वर पर चल रहे मेरे रूबी एप्लीकेशन के लिए रूबी के लिए एक कमांड चलाता था, तो मैं suवहां जाता था www-dataऔर वहां से कमांड निष्पादित करता था - जाहिर है कि मैं ऐसा नहीं कर सकता क्योंकि नोलिन के कारण।

इसलिए एक रूट उपयोगकर्ता के रूप में, मैं अन्य उपयोगकर्ता के रूप में आदेशों को कैसे निष्पादित कर सकता हूं, भले ही वे नॉलॉग हों?


एक तरीका उस उपयोगकर्ता के लिए एक शेल लॉन्च करना है (स्पष्ट रूप से शेल को निर्दिष्ट करना): sudo -u www-data bashअपने कमांड को निष्पादित करें और लॉगआउट करें
साइबरएक्स 86

@ cyberx86 आपका समाधान एक उपचार का काम करता है, क्या आप इसे मेरे लिए एक जवाब के रूप में प्रस्तुत कर सकते हैं?

जवाबों:


50

एक तरीका उस उपयोगकर्ता के लिए एक शेल लॉन्च करना है (शेल को स्पष्ट रूप से निर्दिष्ट करना):

sudo -u www-data bash 

यह निर्दिष्ट उपयोगकर्ता के रूप में (बैश) शेल लॉन्च करेगा। फिर आप अपनी कमांड निष्पादित कर सकते हैं और लॉगआउट कर सकते हैं (अपने पिछले शेल में वापस आ सकते हैं)


39

रूट के रूप में आप उपयोग कर सकते हैं su -s /bin/sh $user - -sविकल्प उपयोगकर्ता के लिए कॉन्फ़िगर किए गए शेल को ओवरराइड करता है।


1
यह हमेशा मेरे लिए त्रुटि लगता है।

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