Ubuntu 10.04 Server kullanıyorum ve kullanıcının EDITOR seçimine (limitler dahilinde) saygı göstermek için sudoers kurmaya çalışıyorum
Benim sudoers benim var:
Defaults editor=/usr/bin/nano:/usr/bin/vim
Defaults env_reset
Ve kullanıcı .bashrc:
export EDITOR=/usr/bin/vim
$ EDITOR ayarlandı:
$ echo $EDITOR
/usr/bin/vim
Buna göre man sudoers$ EDITOR'un vim olarak ayarlanması için yeterli olmalıdır:
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.
Ancak nanobu kullanıcı için hala kullanılıyor. Env'in hızlı kontrolü:
$ sudo -- env | grep EDITOR
Hiçbir şey döndürmez.
$ sudo -E -- env | grep EDITOR
İadeler EDITOR=/usr/bin/vim
EDITOR'un çalışması için aşağıdaki şeyleri yapabileceğimin farkındayım:
- Set
env_editor,env_keep+=EDITORya sudoers içinde EDİTÖR değişkeni tutan başka bir seçenek: Ben bir şey keyfi yürütülmesine izin verebilir olarak bunu yapmak istemiyoruz (örneğinexport EDITOR=~/bad_program_to_run_as_root) - Use
sudo -Eor evenalias sudo='sudo -E':env_resetSETENV olmayan (sahip olmak istediğim bir şey değil: önceki noktaya bakın)sudo: sorry, you are not allowed to preserve the environment - Set
editor=/usr/bin/vim: Ama vim bilmeyen başka kullanıcılar da var - Kullan
sudo select-editor: Kapat, ancaksudo visudoyine denano - Sadece sudoedit kullanabilir veya doğrudan Vim: Ama o zaman gibi araçlar güvenliğini kaybetmek
visudo,vipw,crontab -e. - Sadece bununla başa çık: Muhtemelen, ama bir içgörü kaçırırsam bilmek isterim
Ben de (umutsuzluk) VISUALve SUDO_EDITORdeğişkenleri ayarlamayı denedim
sudo visudoYukarıdaki ödün vermeden, seçilen kullanıcı editöründe açacağım kaçırdığım bir şey var mı?
DÜZENLE:
Sanırım bunun neden beklediğim gibi çalışmadığını anlıyorum. Başka birinin aynı yanlış anlama sahip olması durumunda buraya koyuyorum.
Sudoers dosyasında
Defaults editor=/usr/bin/nano:/usr/bin/vim
- Yalnızca çalışırken izin verilen editörlerin listesini ifade eder
visudo(başka herhangi bir program için değil) editorçalıştıran, çekler $ EDİTÖR ancaksudo visudo,sudo$ EDITOR set yoktur, bu nedenle zamanvisudoçalışır boş olacaktır- Bu nedenle, ilk editör kullanılır, bu durumda
nano
Herkes bunun doğru olduğunu onaylayabilir mi?
Bu nedenle güvenli bir çözüm eklemek olacağını umuyorum:
Defaults!/usr/sbin/visudo env_keep+=EDITOR
yani EDITOR'u sadece ve sadece visudo çalışıyorsa saklayın. Bu daha sonra kontrol edilir
Defaults editor=/usr/bin/nano:/usr/bin/vim
Ve eğer uyuşmazsa, nano
Tuhaf bir şekilde, durum böyle görünmüyor:
$ sudo su - root
# export EDITOR=/bin/echo
# visudo
/etc/sudoers.tmp
visudo: /etc/sudoers.tmp unchanged
/bin/echoeditör olarak kullanılır. Hata? Yoksa başka bir yanlış anlama mı?
Teşekkürler
VISUALöncelik kazanmaya atıfta bulunmasıdırEDITOR.EDITORDeğişkenimin sadece göz ardı edildiğini düşündüm . Her ikisi de Centos7'de çıkıyorEDITORveVISUALvarsayılan olarak görünüyorpico.