Sudoedit neden geçici bir dizine yazıyor?


10

Ben kullanılan sudoeditbir dosya oluşturmak için:

 $ sudoedit /etc/systemd/system/apache2.service

ancak dosyayı kaydetmeye gittiğimde, dosyayı geçici bir dizine (/ var / temp / blahblah) yazdı. Ne oluyor? Neden sistem dizinine kaydetmiyor?

Yanıtlar:


22

Noktası sudoeditayrıcalığı olmayan bir editör çalışırken, aksi takdirde izin verilmez düzenleme dosyalarına kullanıcıları sağlamaktır. Bunu yapmak sudoeditiçin, düzenlenecek dosyayı geçici bir konuma kopyalar, istekte bulunan kullanıcı tarafından yazılabilir hale getirir ve yapılandırılmış düzenleyicide açar. Bu nedenle editör geçici bir dizinde alakasız bir dosya adı gösterir. Editörden çıkıldığında, sudoeditgerçekten herhangi bir değişiklik yapılıp yapılmadığını kontrol eder ve gerekirse geçici dosyayı orijinal konumuna geri kopyalar.


IIRC bazı editörler, bilgisayar tuğla değişikliklerinin yapılmamasını sağlamak için temel sağlık kontrolleri de yapacak, ancak bunun ne kadar yaygın olduğundan emin değilim.
Monica'nın Davası

1
@NicHartley: Genel durumda bunu yapmak zor, çünkü bilgisayarınızı tuğlalaştırmanın çok çeşitli yolları var. Uygulamaya özel olma eğilimindedir, örneğin visudofor ile /etc/sudoers.
Kevin

@Kevin Ah, hoppala, ben şaşkın düşünüyorum visudoiçin sudoedit. Kesinlikle visudoyaptığını biliyordum . Temizlediğiniz için teşekkürler!
Monica'nın Davası

1

Bu güzel açıklanmıştır manpage . Açıklaması ( eşdeğerdir) diyor ki:sudo-esudoedit

-e

-e(Düzenle) seçeneği yerine bir komut çalıştırılmaz ve kullanıcı düzenlemek bir veya daha fazla dosya istediğinde, gösterir. Bir komut yerine, " sudoedit" dizesi güvenlik ilkesine başvururken kullanılır. Kullanıcı ilke tarafından yetkilendirilmişse, aşağıdaki adımlar uygulanır:

  1. Geçici kopyalar, arayan kullanıcı tarafından ayarlanan sahibi ile düzenlenecek dosyalardan yapılır.
  2. İlke tarafından belirtilen düzenleyici geçici dosyaları düzenlemek için çalıştırılır. sudoersPolitika kullanır SUDO_EDITOR, VISUALve EDITOR(bu sırayla) ortam değişkenleri. Hiçbiri değilse SUDO_EDITOR, VISUALya EDITORayarlanır, editör listelenen ilk program sudoers(5)seçeneği kullanılır.
  3. Değiştirilmişlerse, geçici dosyalar orijinal konumlarına geri kopyalanır ve geçici sürümler kaldırılır.

Belirtilen dosya yoksa oluşturulur. Çoğu komutun aksine sudo, düzenleyicinin, çağıran kullanıcının ortamı değiştirilmeden çalıştırıldığını unutmayın. Herhangi bir nedenle, sudobir dosyayı düzenlenmiş sürümüyle güncelleyemezse, kullanıcı bir uyarı alır ve düzenlenen kopya geçici bir dosyada kalır.

Özellikle, üçüncü adıma dikkat edin: yalnızca düzenleme sonunda dosya değiştirildiyse orijinal değiştirilir. Bu nedenle, bir dosyayı izleyen bir programınız varsa, bu (a) ara yazmaların alınmasını ve (b) sonunda herhangi bir değişiklik yapmaya karar vermeniz durumunda gereksiz işlemleri önlemeye yardımcı olabilir.

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.