Sudoers dosyasını doğrudan değiştirmek yerine neden visudo kullanmalıyız?


83

Kimin kullanabileceğini sudove onunla ne yapabileceğini değiştirmek istiyorsan onu kullanman gerektiğini biliyorum visudo. / Etc / sudoers dosyasını doğrudan kendim değiştirmem gerekmediğini biliyorum.

Nedir bu visudodoğrudan yapmaz dosyasında değişiklik bunu yapar? Ne yanlış gidebilir?

Yanıtlar:


104

visudoDosyanın üzerine yazmadan önce dosya sözdizimini kontrol eder sudoers.

Düz bir düzenleyici kullanırsanız, sözdizimini bozar ve kaydedin ... sudo(muhtemelen) çalışmayı durdurur ve /etc/sudoersyalnızca değiştirilebildiğinden rootdolayı, (başka bir kök kazanma yönteminiz yoksa) takılıp kalırsınız.

Ek olarak, düzenlemelerin tek bir atomik işlem olmasını sağlar. Bu kilitleme, dikkatlice düşünülmüş yapılandırma değişikliklerinizi başkalarının çözemeyeceğinden emin olmanız gerektiğinde önemlidir. Diğer dosyaları da kök olarak düzenlemek /etc/sudoersiçin, sudoeditbu tür düzenleme çatışmalarına karşı da koruma sağlayan bir komut vardır.


3
Vay, sudoedit hakkında hiçbir zaman bir şey bilmiyordum. OS X üzerinde çalışmadığı için bir GNU aracı olduğunu varsayıyorum? Her neyse, burada serin bilgi. Her zaman manuel olarak düzenledim ve hiç sorun yaşamadım - şimdi anlıyorum ki bu sadece şanstı ve araç felaketi önlemeye yardımcı olabilir. Teşekkürler!
Harv

2
@Harv. GNU yok sudove OS X’de GNU araçları var. Sudo ilk önce açık kaynak kodlu bir uygulama olarak oluşturulduğundan, birçok uygulama olmaları için muhtemelen hiçbir sebep yoktur. sudove sudoeditaynı komuttur, çağrıldığı gibi sudodavranır . Ben OS X eklemeyi unuttuğu sadece inanmak linki, ama yine kullanmak gerekir veya çağrı argv ile [0] olarak ayarlanmış aynı davranışı elde etmek. sudo -esudoeditsudoedit -> sudosudo -esudosudoedit
Stéphane Chazelas

İlginçtir, visudovarsayılan olarak nano'yu kullanır.
Tim

3
@Tim: "gerçek" varsayılan vi'dir, ancak başka bir şey kullanacak şekilde yapılandırılabilir. Yani nano gerçekten dağıtımınız / kurulumunuzda varsayılan olabilir. Man sayfasına bakınız .
Mat,

2
@ AngularInDepth.com, sonuçları oldukça açık. Geçersiz bir sudoers dosyasını kaydederseniz, sistem dosyayı ayrıştıramaz. Eğer bir sudo vim /etc/sudoerssözdizimi a ve botch yaparsam, sudo vim /etc/sudoersdüzeltmek için bir daha yapamayacağım . Etkili olarak, sistem dosyayı ayrıştıramadığı için ayrıcalıkları sudo aracılığıyla yükseltme yeteneği kaybedilecek.
Spencer D,

23

Visudo man sayfasından:

visudo, sudoers dosyasını aynı anda birden fazla düzenlemeye karşı kilitler, temel sağlık kontrolleri sağlar ve ayrıştırma hatalarını kontrol eder. Eğer sudoers dosyası şu anda düzenleniyorsa, daha sonra tekrar denemek için bir mesaj alacaksınız.

Ayrıca bu cevabı serverfault adresinden de kontrol ediniz .

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.