लिनक्स "सिस्टम" उपयोगकर्ता के रूप में रन कमांड (शेल = / बिन / गलत)


29

मैंने adduser --systemकुछ क्रोन नौकरियों को चलाने के लिए Ubuntu 11.04 ( ) में एक "सिस्टम" उपयोगकर्ता बनाया , लेकिन कभी-कभी मैं उस उपयोगकर्ता के रूप में मैन्युअल रूप से चलने वाली कमांड द्वारा चीजों का परीक्षण करना चाहता हूं। ऐसा करने का सबसे आसान तरीका क्या है?

suकाम नहीं करता है, क्योंकि उपयोगकर्ता के पास /bin/falseइसका खोल (जो क्रोन के लिए ठीक है) है। मैं /bin/bashअपने परीक्षण करने के लिए शेल को मैन्युअल रूप से बदल रहा हूं और फिर इसे फिर से बदल रहा हूं, लेकिन मुझे आश्चर्य है कि क्या कोई आसान तरीका है?

जवाबों:


41

मैं su - targetuser -s /bin/bashएक रूट शेल से उपयोग करता हूं ।

प्रत्यक्ष कमांड निष्पादन उपयोग के लिए -c:

su - targetuser -s /bin/bash -c "/bin/echo hello world" 

यह काम करता है, धन्यवाद! मुझे -s विकल्प कैसे याद आया?
ईएमपी

3
आप उस कमांड को पारित करने के लिए एक -c "your_command_here" विकल्प पर भी काम कर सकते हैं जिसे आप शेल के लिए प्रतीक्षा करना और फिर इसे एक नए प्रॉम्प्ट पर टाइप करना चाहते हैं।
dmourati

2

सुडो का उपयोग करें। यह तब भी काम करेगा जब उपयोगकर्ता के पास वास्तविक शेल नहीं होगा।

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