क्या कोई तरीका है कि मैं एक उपयोगकर्ता से दूसरे उपयोगकर्ता को एक फ़ंक्शन पास कर सकता हूं?
उदाहरण के लिए, मेरे पास एक छोटी बैश स्क्रिप्ट है जिसे मैं रूट के रूप में निष्पादित करता हूं:
#!/bin/bash
user_func(){
whoami
exit
}
su vagrant -c 'user_func'
हालाँकि, User_func फ़ंक्शन वैग्रंट उपयोगकर्ता के लिए परिभाषित नहीं है, केवल रूट के लिए, और निष्पादित नहीं किया जा सकता है।
मेरा दूसरा विकल्प कई लाइनों का होना होगा
su vagrant -c 'cmd1'
su vagrant -c 'cmd2'
, etc
या, कई आदेशों को निष्पादित करें पूर्व:, su vagrant -c 'cmd1; cmd2; cmd3;'लेकिन मैं अतिरिक्त नहीं करना पसंद करूंगा, खासकर जब वैग्रंट उपयोगकर्ता के रूप में 5 से अधिक कमांड निष्पादित करने का प्रयास किया जाता है।
क्या एक ही स्क्रिप्ट के भीतर से किसी अन्य उपयोगकर्ता के लिए एक फ़ंक्शन पारित करना संभव है (उदाहरण के लिए डिस्क पर एक स्क्रिप्ट को एक अलग उपयोगकर्ता के रूप में बनाना और फिर उस उत्पन्न स्क्रिप्ट को निष्पादित करना संभव नहीं है)? या फिर कोई और विकल्प है कि मैं देख रहा हूँ?