Yanlış chmod / 777 ayarlayın. Sorunlar?


33

Ben çalıştırmak için çalışıyordu chmod -R 777 ./ama yazmaya sona erdi chmod -R 777 /ve set 777benim bütün makinede. Ne yanlış gidebilir? Nasıl düzeltebilirim?



sistemde ne yanlış gidebilir? Çalışmayı bırakacak mı?
Vinnycx

6
Tabii ki problemler var. SSH, örneğin başarısız olacak.
15’te

2
Ev dizini dünyaca okunabiliyorsa, SSH çıkar. Her şeyi 777'ye ayarlamak her şeyi kök olarak yapmak gibidir.
15’te

3
Ayrıca neyin yanlış gideceği konusunda daha fazla ayrıntıya giren serverfault.com/questions/364677/why-is-chmod-r-777-destructive adresini ziyaret edin .
Gilles 'SO- kötülük olmayı'

Yanıtlar:


46

Sorunlar? Evet çok. Sabitlenebilir mi? Emin. Yeniden yüklemekten daha mı hızlı? Muhtemelen değil.

Benim tavsiyem yeniden yüklemektir. Mevcut sistemin yedeğini tutun ve paket listesi ve dosyaların içeriği geri /etcve /var. Çünkü /usr/localizinleri muhtemelen el ile geri yükleyebilirsiniz. İçin /homeve /srv, sen yedeklerden izinleri geri gerekecek.

Bu, birden fazla yerel kullanıcının bulunduğu bir sistemse, bazı dosyaları dünya tarafından okunabilir kılmanın gizli kalması gereken bazı şeyleri ortaya çıkardığını unutmayın.

  • Parola listeniz artık tehlike altında: yerel kullanıcılar karma parola listesine erişebiliyor ve bunları zorla kullanmaya çalışabiliyor. Bu konuda kullanıcılarınızı bilgilendirin.
  • Tüm özel kullanıcı verileri (ssh anahtarları, saklanan şifreler, e-posta, başkalarının gizli tutmaları gereken diğer bilgiler) tüm yerel kullanıcılara açıktır. Bu konuda kullanıcılarınızı bilgilendirin.

Onarmayı gerçekten denemek istiyorsanız (pratik bir kurtarma yolundan ziyade bir öğrenme alıştırması), önce birkaç dosyanın izinlerini geri yükleyin. Artık çoğu dosya çok açık olsa da, birkaçının gerekli ayarlanmış bitlerin eksik olduğunu unutmayın . Her şeyden önce atmanız gereken adımlar. Bunun kapsamlı bir liste olmadığını, sadece sistemi zar zor çalıştırabileceğine dikkat edin.

chmod -R go-w /
chmod 440 /etc/sudoers
chmod 640 /etc/shadow /etc/gshadow
chmod 600 /etc/ssh/*_key /etc/ssh*key   # whichever matches
chmod 710 /etc/ssl/private /etc/cups/ssl
chmod 1777 /tmp /var/tmp /var/lock
chmod 4755 /bin/su /usr/bin/passwd /usr/bin/sudo /usr/bin/sudoedit
chmod 2755 /var/mail /var/spool/mail

O zaman her yerde tüm izinleri geri yüklemeniz gerekecek. Altındaki dosyalar /usriçin, dağıtımınıza bağlı olarak paketleri aşağıdaki komutlardan biriyle yeniden yükleyebilirsiniz:

  • Debian, Ubuntu veya APT’ye dayalı başka bir dağıtım kullanıyorsanız, apt-get --reinstall install
  • Arch Linux kullanıyorsanız, pacman -S $(pacman -Qq --dbpath /newarch/var/lib/pacman) --root /newarch --dbpath /newarch/var/lib/pacmanLive CD'de olduğunuzu ve Arch kurulumunuzun monte edildiğini varsayarak çalıştırabilirsiniz /newarch.

Altındaki /etcve /varçalışmayan dosyalar için , çoğu olduğu gibi bırakılacaktır: çalışan bir kurulum için izinleri çoğaltmanız gerekir. Altında dosyalar için /srvve /home, yine yedeklerden geri gerekecek. Gördüğünüz gibi yeniden yükleyebilirsiniz.


6
Uzlaşmazsanız, bu durumu tamamen yeniden yükleme veya yedeklemelerden geri yükleme yapmadan onarma şansınız yoktur. Sistemi olduğu gibi bırakmak çok tehlikelidir.
Arrowmaster

3
Sistemde kullanıcılar varsa , onlara acıyorum.
Jürgen A. Erhard

19

İlk başta fark etmeyebilirsiniz, ancak birçok şey yanlış gidebilir ve gider. Asıl sorun, tüm sistem için tüm güvenlik modelinin bozulmasıdır. Sanki derisiz bir vücuda sahip olmak, dışarıdaki organları çıkarmak gibi. Enfekte olma zorunluluğu var, çünkü bu şekilde işlev görmüyor. Birkaç dakika çalışacak gibi görünse bile, bunu temizlemeniz gerekir.

En iyi yol aslında sıfırdan başlamaktır. Bu yol riskinizi büyük ölçüde azaltır ve daha kısa sürede daha temiz bir sonuç verir. Uygun yedeklemeler varsa, bu da bir deneyim denememeli.

Temizlemeye çalışırsanız, birincil yöntem distro'nun paket yöneticisine config dosyalarının üzerine yazma da dahil olmak üzere sisteme HER ŞEY'i yeniden yüklemesini söylemektir. Ardından, sistemi incelemek için gerekenleri doğrulayın ve hiçbirinin normalden izinleri olmayan dosyalar olarak işaretlendiğinden emin olun. Daha sonra, kullanıcının giriş dizinleri gibi şeyler üzerinde çalışın ve toplu izinleri almak için her şeyi sıfırlayın, ardından özel izinleri olması gereken birkaç şey üzerinde çalışın (ssh anahtar dosyaları gibi). Son olarak, 777 olarak işaretlenmiş olan her şeyi bulmak için tam bir sistem bulun ve listeyi gözden geçirin (diğer adımları baştan sona koyduysanız, küçük olmalıdır) ve oldukları gibi olmalarını sağlayarak tek tek çalışın.


Ancak, güvenlik dışında, uygulamalar açısından ne yanlış gidebilir? Çalışmayı bırakacaklar mı? Ya da güvenlik burada en büyük endişe mi?
Vinnycx

Güvenlik en büyük endişe kaynağı olmakla birlikte birçok program, özellikle de perdenin günlüğü, cron vb. Kütüklerini kaydetmek, kendilerini gördükleri tehlikeli duruma sokmak yerine, çeşitli nedenlerle başarısız olacaktır.
Caleb

cron sadece 777 yüzünden işe yaramayacak mı?
Vinnycx

1
Birkaç farklı cron sistemi var, ancak crontab dosyası dünyaca yazılabilir olduğunda, kendine saygı duyan hiçbir cron root'un cron'undaki işleri yürütmemelidir! Ayrıca cron bildirimlerini yapan posta servisinin diğer sebeplerden dolayı şikayet etmesi gerekir.
Caleb

10

ÇÖZÜM: MERKEZDE BU TEST

Bu adam işimi kurtardı! (Bir şekilde erişmen gerekiyor)

http://www.adminlinux.org/2009/07/how-to-restore-default-system.html

1) Dosyalarda ve dizinlerde yer alan yardımları ve kılavuzları sıfırlamak için:

for u in $(rpm -qa); do rpm --setugids $u; done

2) Dosya ve dizinlerdeki izinlere

for p in $(rpm -qa); do rpm --setperms $p; done

sonra bu dosyalara izinleri manuel olarak değiştirin:

# ll /etc/ssh/
# chmod 600 /etc/ssh/ssh_host_rsa_key
# chmod 600 /etc/ssh/ssh_host_dsa_key
# service sshd restart

5

Güvenlik bilincine sahip bazı programlar, bazı dosyaların izinleri çok "gevşek" olduğunda başlamaz. @Ceving dediği gibi sshd, bunun en tipik olanıdır.

Yanlış gidebilecek en önemli şey, artık herhangi bir kullanıcının sisteminizde herhangi bir dosyayı açabilmesi, okuyabilmesi ve yazabilmesidir . Bunun kötü olmasının iki sebebi şudur: A) Kötü niyetli bir kullanıcı, bir istismar veya yanlış yapılandırma yoluyla sisteminizin kontrolünü ele geçirirse, sisteminizdeki herhangi bir şeyi şu anda değiştirebilir ve B) istediğiniz bir şeyi silebilirsiniz. sen kök değilsin, o yüzden sadece root olarak çalışmamaya karşı korunmaların çoğunu ihmal ettin.

Önceden izinleri geri almadıysanız, durum biraz. Yeni kurulmuş bir sistemden izin listesini "alan" bir komut dosyası oluşturabilir ve daha sonra bunları sisteminizdeki her şeye "uygulayabilirsiniz". Yine de kullanışlı bir senaryom yok.


Ancak, güvenlik dışında, uygulamalar açısından ne yanlış gidebilir? Çalışmayı bırakacaklar mı? Ya da güvenlik burada en büyük endişe mi?
Vinnycx

İzinlerin çok gevşek olması durumunda başlatmayı reddeden sadece birkaç uygulama. Güvenlik en büyük endişedir. Ama aynı zamanda sistem kararlılığı. Eğer bir yaparsanız rm -rf /normal kullanıcı olarak artık durma noktasına sisteminizi eziyet edeceğiz.
LawrenceC

Hangi uygulamalar çalışmayı kesebilir?
Vinnycx

SSH dışında mı? Başka ne başarısız olabilir? Bir süre bu sistemi böyle bırakabilirsem, şimdi ihtiyacım var.
Vinnycx

5
@ Vinnycx: Hayır, yapamazsınız. Bozuldu. Düzeltmek için öncelik vermelisin. Aksi halde hizmetlerinizin sizi birer birer başarısız etmesini ve bilgisayar korsanlarının verilerinizi yemesini bekleyin. / * @ 777'den ayrılmak bir seçenek değildir.
Caleb
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.