OpenVPN में "--up" विकल्प का उपयोग आम तौर पर राउटिंग आदि के लिए किया जाता है और इसलिए OpenVPN को रूट विशेषाधिकार को छोड़ने से पहले इसे संसाधित किया जाता है। हालाँकि, मैं शेल स्क्रिप्ट का आह्वान कर रहा हूँ, जिन्हें एक अनपेक्षित उपयोगकर्ता के रूप में चलाने की आवश्यकता है।
मैं उसको कैसे करू? मैंने ड्रॉप प्रोसेस प्रिविलेज का अध्ययन किया है , विशेष रूप से बहुपद और टायलर के उत्तर, लेकिन मुझे समझ में नहीं आता है कि कैसे लागू किया जाए। मैं Centos 6.5 में काम कर रहा हूं, और suid को अवरुद्ध किया गया है, दोनों "chmod u + s" और "setuid ()" के रूप में।
एक OpenVPN प्लगइन है ("Openvpn-down-root.so") जो रूट के रूप में चलाने के लिए "--down" विकल्प द्वारा लगाई गई स्क्रिप्ट को सक्षम करता है। एक समतुल्य हो सकता है, जैसे कि "ओपनव्प्न-अप-यूसर. एसो", लेकिन मुझे यह नहीं मिला है।
Edit0
निकोला कोटुर के उत्तर के अनुसार, मैंने इयान मेयर की रनर-आरपीएम स्थापित की है । यद्यपि chpst कमांड टर्मिनल में काम करता है, अप स्क्रिप्ट में यह "कमांड नहीं मिला" के साथ विफल हो जाता है। क्या काम करता है "sudo chpst" प्लस उचित प्रदर्शन और भाषा सेट करता है। कृपया देखें कि मेरा टर्मिनल आउटपुट यूनिकोड वर्णों को ठीक से क्यों प्रदर्शित नहीं करता है? यह देखते हुए कि अप स्क्रिप्ट को इन चार लाइनों की आवश्यकता है:
LANG="en_US.UTF-8"; export LANG
GDM_LANG="en_US.UTF-8"; export GDM_LANG
DISPLAY=:0; export DISPLAY
sudo chpst -u user -U user /home/user/unprivileged.sh &
Edit1
प्रति 0xC0000022L की टिप्पणी के अनुसार, मुझे लगता है कि "sudo -u user" काम करता है और साथ ही "sudo chpst -u user -U user":
LANG="en_US.UTF-8"; export LANG
GDM_LANG="en_US.UTF-8"; export GDM_LANG
DISPLAY=:0; export DISPLAY
sudo -u user /home/user/unprivileged.sh &
मैं मैन सूडर्स का अध्ययन करूंगा और अगर मुझे काम करने के लिए अकेले सूडो मिलेगा तो अपडेट करूंगा।