मैं Ubuntu 10.04 सर्वर का उपयोग कर रहा हूं और उपयोगकर्ता की EDITOR पसंद (सीमा के भीतर) का सम्मान करने के लिए sudoers सेट करने की कोशिश कर रहा हूं
मेरे सुडोर्स में मेरे पास है:
Defaults editor=/usr/bin/nano:/usr/bin/vim
Defaults env_reset
और उपयोगकर्ता में .bashrc:
export EDITOR=/usr/bin/vim
$ EDITOR सेट है:
$ echo $EDITOR
/usr/bin/vim
इसके अनुसार man sudoers
$ EDITOR को सेट करने के लिए पर्याप्त होना चाहिए:
editor A colon (':') separated list of editors allowed to be used with visudo.
visudo will choose the editor that matches the user's EDITOR environment
variable if possible, or the first editor in the list that exists and is
executable. The default is the path to vi on your system.
हालाँकि nano
अभी भी इस उपयोगकर्ता के लिए उपयोग किया जा रहा है। एनवी की त्वरित जांच:
$ sudo -- env | grep EDITOR
कुछ भी नहीं लौटाता।
$ sudo -E -- env | grep EDITOR
रिटर्न EDITOR=/usr/bin/vim
मुझे पता है कि मैं EDITOR काम करने के लिए निम्नलिखित काम कर सकता हूं:
- सेट
env_editor
,env_keep+=EDITOR
या कोई अन्य विकल्प जो EDITOR चर को sudoers में रखता है: मैं ऐसा नहीं करना चाहता क्योंकि यह किसी भी चीज़ का मनमाना निष्पादन कर सकता है (उदाहरण के लिएexport EDITOR=~/bad_program_to_run_as_root
) - उपयोग
sudo -E
या यहां तक किalias sudo='sudo -E'
:env_reset
SETENV के बिना होने और उपयोगकर्ताओं के बिंदु को परिभाषित करता है (ऐसा कुछ नहीं जिसे मैं बाहर देना चाहता हूं: पिछले बिंदु देखें)sudo: sorry, you are not allowed to preserve the environment
- सेट करें
editor=/usr/bin/vim
: लेकिन ऐसे अन्य उपयोगकर्ता हैं जो विम नहीं जानते हैं - उपयोग करें
sudo select-editor
: बंद करें, लेकिन फिरsudo visudo
भी अंदर खुलता हैnano
- बस sudoedit का उपयोग करें या सीधे विम: लेकिन फिर आप जैसे उपकरणों की सुरक्षा खो
visudo
,vipw
,crontab -e
। - बस इसके साथ सौदा करें: शायद, लेकिन अगर मुझे कुछ अंतर्दृष्टि याद आ रही है तो मुझे जानना अच्छा लगेगा
मैं भी स्थापित करने की कोशिश की किया है VISUAL
और SUDO_EDITOR
चर (हताशा में)
क्या ऐसा कुछ है जो मैंने याद किया है sudo visudo
, जो उपयोगकर्ताओं के पसंद के संपादकों के लिए खुला बना देगा , बिना समझौता किए?
संपादित करें:
मुझे लगता है कि मैं समझता हूं कि यह मेरी अपेक्षा के अनुरूप काम नहीं कर रहा है। मैं इसे नीचे रख रहा हूँ अगर किसी और की गलत धारणा है।
Sudoers फ़ाइल में
Defaults editor=/usr/bin/nano:/usr/bin/vim
- केवल उन संपादकों की सूची को संदर्भित करता है जिन्हें चलाने के दौरान अनुमति दी जाती है
visudo
(कोई अन्य कार्यक्रम नहीं) editor
चेकों $ संपादक, लेकिन अगर चलsudo visudo
,sudo
$ संपादक निर्धारित नहीं करता है, इसलिए जबvisudo
रन यह खाली हो जाएगा- इसलिए पहले संपादक का उपयोग किया जाता है, इस मामले में
nano
क्या कोई पुष्टि कर सकता है कि यह सही है?
इसलिए मुझे उम्मीद थी कि एक सुरक्षित समाधान जोड़ना होगा:
Defaults!/usr/sbin/visudo env_keep+=EDITOR
यानी EDITOR रखें और यदि केवल विडो चल रहे हों। इसके बाद जांच की जाएगी
Defaults editor=/usr/bin/nano:/usr/bin/vim
और अगर यह मेल नहीं खाता था या तो उपयोग करेगा nano
हालांकि अजीब है, यह मामला प्रतीत नहीं होता है:
$ sudo su - root
# export EDITOR=/bin/echo
# visudo
/etc/sudoers.tmp
visudo: /etc/sudoers.tmp unchanged
/bin/echo
संपादक के रूप में प्रयोग किया जाता है। बग? या एक और गलतफहमी?
धन्यवाद
VISUAL
पूर्वता लेने के संदर्भ में हैंEDITOR
। मुझे लगा कि मेरेEDITOR
चर को केवल अनदेखा किया जा रहा है। Centos7 में, दोनों ओर मुड़ते हैंEDITOR
औरVISUAL
डिफ़ॉल्ट रूप से लगते हैंpico
।