Sudo / visudo'nun düzenleyicisini nasıl düzgün bir şekilde ayarlayabilirim?


18

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ğin export EDITOR=~/bad_program_to_run_as_root)
  • Use sudo -Eor even alias 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, ancak sudo 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 ancak sudo visudo, sudo$ EDITOR set yoktur, bu nedenle zaman visudoç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

Yanıtlar:


6

EDITORDeğişkenin ayarlanmasının kullanılan düzenleyiciyi değiştirmesi gerektiği konusunda haklısınız sudo. Ancak, önceliği olan iki değişken daha vardır EDITOR: SUDO_EDITORve VISUAL. Hiçbirinin benzeri başka bir editöre işaret etmediğinden emin olun nano.


İptal etmemin nedeni, çok az cevabın VISUALöncelik kazanmaya atıfta bulunmasıdır EDITOR. EDITORDeğişkenimin sadece göz ardı edildiğini düşündüm . Her ikisi de Centos7'de çıkıyor EDITORve VISUALvarsayılan olarak görünüyor pico.
16'da

5

Burada açıklandığı gibi başka bir çözüm var :

sudo update-alternatives --config editor

Ancak, çok kullanıcılı bir sistemde sadece bir symlink'i güncellediği için çok kolay değildir /usr/bin/:

$ ls -l `which editor`
lrwxrwxrwx 1 root root 24 lip  4 19:37 /usr/bin/editor -> /etc/alternatives/editor

$ ls -l /etc/alternatives/editor
lrwxrwxrwx 1 root root 18 Jul  5 01:39 /etc/alternatives/editor -> /usr/bin/vim.basic

select-editorNeyse ne oldu ? Ben çalıştırdığınızda, bir dosya oluşturur:

$ ls -l .selected_editor 
-rw-r--r-- 1 rld rld 75 Jul  5 01:54 .selected_editor

$ cat .selected_editor 
# Generated by /usr/bin/select-editor
SELECTED_EDITOR="/usr/bin/vim.basic"

Ama sudo visudonano kullanmaya devam ediyor.


3

Debian 7'de, ortamdaki EDITOR'u ayarlamak işe yaramadı.

Nano'yu kullanmak için şu satırı ekledim: /etc/sudoers

Defaults        editor="/usr/bin/nano"

DigitalOcean Ubuntu 12.04'te ŞAMPİYON GİBİ ÇALIŞTI. Teşekkürler.
Joe Codeswell kullanıcı601770

Teşekkür ederim. Bu, Oracle Linux üzerinde de çalıştı. (Nano /
pico'yu seviyorum

1

env_reset, kullanıcının komut satırındaki değişkenleri ayarlamasını engellemez:

$ sudo EDITOR=vim -- env |grep EDIT
EDITOR=vim

editorSeçenek hakkında bulgularınızı hafif şok edici buluyorum, ancak ne yazık ki ikincil sorularınızın cevaplarını bilmiyorum. Ubuntu kampının bu konuda birçok dokümana ve yapılandırma örneğine sahip olacağını düşünebiliriz, belki de daha fazla görünmeliyiz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.