Linux: kapatmayı güvenlik için yürütülebilir değil yap


9

Bugün bir üretim makinesini yanlışlıkla kapattım çünkü yerel makinemde olduğumu düşündüm. Biliyorum, acemi hata :-(

Tekrar olmaması için bir çözüm olarak, bu komut her zaman açık olması gerektiği için kapatma komutunun yürütme iznini kaldırmayı düşünüyordum.

Bu iyi bir fikir mi? Bunu yaparak istenmeyen bir yan etki görebiliyor musunuz?

Şerefe, Dan


1
Çoğu sistem yöneticisi bir noktada böyle bir şey yapar (yine hangi pencereydi? Whoops ...)
Bart Silverstrim

3
Sadece bir kapatma olduğunu sevindim. Diğer insanlar dd aracıyla dersi öğrendi (AKA: disk destroyer);)
pehrs

1
Sisadmin görev ve araçlarının çoğu ölümcül ve ölümcül olabilir. Büyük güç büyük sorumlulukla gelir. Kapatma komutunuzu 000 chmod yapabilirsiniz, ancak bir dahaki sefere rm, dd, fsck, mv veya başka bir potansiyel tehlikeli araçla uğraşabilirsiniz. Hepimiz er ya da geç hata yapacağız. Yapabileceğiniz en iyi şey, en kötüye hazırlanmak ve yedek vb.
Olduğundan

Yanıtlar:


21

Tamamen başka bir yaklaşım, üretim makinesinde çalıştığınız konusunda nasıl uyarılacağı terminali işaretlemektir. Örneğin, user@machine:~#metin, üretim makinelerinde kırmızı, geliştirmede yeşil, vb. Olabilir.


+1, tüm makinelerimi renklendiriyorum: Renkli arka plan üzerinde beyaz metin, Turuncu = Altyapı; Mavi = Üretim; Mor = Test / Geliştirme Normal iş istasyonu standart siyah arka planı korur.
Chris S

Hemen hemen her kabuk için başka bir nasıl yapılır: understudy.net/custom.html
Chris S

Parlak bir ipucu için +1, bunu kendim hiç düşünmezdim.
Kenny Rasschaert

7

Size verebileceğim en iyi tavsiye, root erişimine ihtiyacınız olmadıkça root olarak giriş yapmayın ve her makinede farklı bir root / sudo şifreniz olduğundan emin olun.

Kapatmayı erişilemez kılmak bir seçenektir ancak iyi bir seçenek değildir. Ya diğer adı shutdownile shutdown -ave touch /etc/shutdown.allowyachmod a-x /sbin/shutdown

Ayrıca, nerede bitiyor? Ayrıca durdurmaya, yeniden başlatmaya ve başlatmaya izin vermeyecek misiniz?


4
Asla bitmez. Her zaman, tekrar tekrar, daha fazla, daha fazla bir şey var, asla durmuyor <tekrar tekrar duvara vuruyor ...>
Bart Silverstrim

"Öldür" unutma. Sonuçta, "kill -9 1", bir unix kutusunu kapatmanın oldukça etkili bir yoludur (ya da, eskiden geçmişti).
Vatine

Bazı duruşlarda yoktur -a. Ayrıca böyle bir takma ada güvenmek, güvenmekle aynıdır alias rm='rm -i'- bir gün gerçekten ihtiyacınız olduğunda orada olmayacaktır. Ayrıca, shutdown -asadece sınırlı bir yararlılığı vardır.
sonraki duyuruya kadar duraklatıldı.

3

Dikkate alınması gereken bazı noktalar:

  1. Üretim süresince bir üretim sistemine kök olarak ne yapıyordunuz? Sistemlerinizi, günlük işler için kök salmanız gerekmeyecek şekilde yapılandırın. Çok iyi bir neden olmadan asla bir üretim sistemine kök salmamalısınız.
  2. Önemli dersi öğrenin. Kök olduğunuzda, enter tuşuna basmadan önce iki kez kontrol etmeniz gerekir. SUDO, düşünmeye devam etmek için sadece şifrenizi yazarsanız koruma olmaz. Mkudlacek'in belirttiği gibi hızlı renklendirme, yanlış sistemde olmamanıza yardımcı olacak çok kullanışlı bir araçtır.
  3. Yerleşik araçlarla uğraşmayın. Güncellemeleri bozması muhtemeldir ve yeni işe alımları çıldırtır. Bir şeyi değiştirmek isterseniz kendi takma ad dosyanızı kullanın.

2
Bu gönderiye kesinlikle katılmıyorum. Bir sistem yöneticisi olarak çalışırken, üretim makineme erişimimin kök gerektirmesi çok yaygındır. Yöneticileri değil, kullanıcıları kilitlersiniz. Not, aşağı oy yok, çünkü benimkinden farklı olsa bile meşru bir bakış açısı.
PP.

1
Bu durumda, makinelerde çok zor servis seviyesi gereksinimleriniz yoktur. Yazılım yükleme, düzeltme eki, acil durum baypas ACL'sini ve ağ yapılandırmasındaki değişiklikler, rootlamanız gereken tek şeydir. Bu faaliyetlerin hiçbiri üretimdeki bir makinede sık sık yapılmamalıdır ... Ve diğer her şeyin bir süper kullanıcı hesabından yapılması mümkün olmalıdır. Üretim sistemlerinizde süper kullanıcı yerine kök kullanıyorsanız, genellikle bir sorununuz vardır ...
pehrs

3

Ben izinleri ile shutdownuğraşmak durumla başa çıkmak için bir yol olduğunu sanmıyorum . Temelde sadece bir ders öğrendiniz. Korkma.

Aynı şeyleri yaptım - uzun ssh oturumları zinciri alıyorum, sonra ssh'd olduğum makinelerden birindeki rotalarla uğraşarak kendimi kestim. Dünyanın diğer tarafında bir sistemin sistematik bir şekilde yok edilmesine yol açan bir rsync isteği başlattım. rm -rf / pathBir üretim sunucusunda çalıştım . (O zaman restorasyonların nasıl çalıştığını öğrenmem gerekiyor.)

Yani, çok daha yaşlı ve umarım biraz daha akıllıca, şimdi kendime dayattığım katı kurallar var.

  • Tüm kök bilgi istemleri, içinde başka hangi bilgi olursa olsun, # ile biter.
  • # Komut istemi yaptığımda, enter tuşuna basmadan önce tam anlamıyla ellerimin üzerine otururum.
  • Ne yapacağım ya da nerede olduğum ya da oraya nasıl geldiğim konusunda herhangi bir şüphe varsa, iptal ediyorum ve bilinen bir başlangıç ​​koşulundan tekrar inşa ediyorum.
  • Bir hata yaptığımda (ve hala onları yapıyorum, zaman geçtikçe hem daha az sıklıkta hem de daha belirsiz hale geliyorlar), hemen ne yaptığımı, etkilediğimi anladım ve günahlarımı itiraf et . Sonra her şeyi bırakın ve tehlikeyi olabildiğince hızlı ve en iyi şekilde geri alın.

İşimin doğası, çok çeşitli kök istemlerde çok fazla zaman harcamamı gerektiriyor, ancak geçmişte yaptığım hatalar sayesinde başladığımdan çok daha iyi bir durumsal farkındalık sağlıyorum.



1

Gerçekten bağlı. Sadece komutu sarmayı deneyebilirsiniz, ancak bu yürütülebilir dosyayı etkileyen güncellemeler veya yükseltmeler yaparsanız, onu unutabilir ve bir güncellemeyi bozmasını sağlayabilirsiniz. Sistem kapatma komutlarıyla oynamak, özellikle yeni işe alımlarınız varsa veya sistem ikili dosyalarıyla oynadığınızı bilmediğiniz bir yedek ürününüz varsa, bir PITA olabilir.

Şahsen ben sistemi bir adla tanımlayan ve gerçek ikili dosyayı çalıştırmadan önce gerçekten yapmak istediğiniz şeyin bu olduğunu ya da kapatmayı onaylamak için belirli bir harf dizisi yazmanız gerektiğini onaylayan bir komut dosyasında komutu sarmaya bakarım. ikili çalıştırmadan önce. Bu biraz durur.


1

Komut istemini en azından sunucularda makine adını içerecek şekilde ayarlamayı düşünebilirsiniz. Gelecekte yanlış komutlarda diğer komutların çalıştırılmasını önlemeye yardımcı olabilir. Makine adlarının öne çıkması için renklendirilmesi daha etkilidir ve hatta sunucu rollerini tanımlamak için renk kodu bile kullanabilirsiniz.


0

Bunun bir yolu sudoğrudan kullanmak ve / veya oturum açmak değildir root. Doğrudan hesaba giriş yapmak rootve yerel makine ve ssh anahtarı için farklı bir parolaya sahip olmak daha iyidir.

Tabii ki kırmızı '#' istemini izlemeye ek olarak.


0

Evet, özellikle makinede KDE gibi bir masaüstü ortamınız varsa ve oturumu kapatırken yanlışlıkla kapanmaları önlemek istiyorsanız, kapatma komutundaki yürütme bitini kaldırmak, yanlışlıkla kapanmaları önlemenin en basit ve en güvenli yoludur.

Yeni insanların kafasını karıştırmaya gelince, bence yapacakları ilk şey ls -l /sbin/shutdownneden işe yaramadığını bulmak olacaktır (özellikle de sekme-tamamlayıcı çalıştırılabilir isimleri iyi alışkanlıklarına sahiplerse). Açıkçası, yaptığınız değişikliklerden bahsetmelisiniz.

Ekstra güvenlik /etc/rc.localiçin, yürütme bitini kapatma komutundan kaldırmak için bir satır ekleyebilirsiniz , böylece yeniden başlattıktan sonra sıfırlamayı unutmayın.


0

/ sbin / dizinini kök yolundan kaldırabilirsiniz. bu şekilde yürütmek için tam yolu yazmanız gerekir ve genellikle kazaları düzeltir.

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.