Yanıtlar:
Kısacası: hayır.
Bir yedekten geri yüklemeniz gerekir. (Bazı yedekleme araçlarının yalnızca izni geri yükleme seçenekleri olabilir, diğerleri yedeklenmiş dosyaları izinleriyle listeleyebilir ve bunu sisteminizi düzeltmek için kullanabilirsiniz.)
Yedeklemeniz yoksa, bunları manuel olarak düzeltmeniz gerekir.
sudo chown -R user:user /
, bu sistem çok kötü ıslatılacağız o şekilde yapılandırılmış olabilir edemez bir yedekten geri yükleyin.
chown
Açıklandıktan sonra , tüm sistemi sıfırdan yüklemeden önce hiçbir şey yapamayacaksınız ; sistemin bir root
hesabı bile yoktur ve sudo
çalışmaz. Muhtemelen tek kullanıcılı bir kabuğa önyükleme yapmaya değer, ancak çalışmasını beklemeyin.
sudo
hatta su
bütün onun ilgili dosyalar ait olduğunda çalışmaya devam edecek user
farklı bir konu (muhtemelen çünkü diğer şeyler arasında exe üzerinde SUID bit gitmiş olacaktır) 'dir.
Yalnızca dizininizdeki her dosya ve dizinin kullanıcı ve grup sahipliğini biliyorsanız /
.
O zaman bile, sudo
komut da dahil olmak üzere root'a sahip olması gereken kritik sistem dosyalarının sahipliğini çoktan engellediniz . Muhtemelen sabit sürücüyü başka bir sisteme bağlamanız gerekir - ve diğer sistemin büyük olasılıkla yeni gizlediğiniz sistemle aynı UID ve GID eşlemelerine sahip olmayacağını unutmayın.
Mümkünse tüm sabit sürücünün bir kopyasını alın, ardından işletim sisteminizi yeniden yükleyin. Bunu yaptıktan sonra, dosyaları yeni silinmiş sisteme geri kopyalamayı ve sahipliklerini geri yüklemeyi deneyebilirsiniz. Muhtemelen (% 100 güvenilir olmasa da) altındaki her şeyin /home/foo
kullanıcıya ait foo
olduğunu ve altındaki her posta biriktirme dosyasının /var/mail
uygun kullanıcıya ait olduğunu (sistemde e-postanız varsa ) varsayabilirsiniz . /home
Sistemle ne yaptığınıza bağlı olarak, altında olmayan çoğu dosyayı geri yüklemeden muhtemelen uzaklaşabilirsiniz .
Ve sonra vurmadan sudo
önce çalıştırdığınız herhangi bir komutu iki kez kontrol etme alışkanlığı geliştirmeye başlayın Enter.
Dağıtımınız RPM tabanlıysa, SADECE rpm paketleri tarafından yüklenen dosyaları geri yükleyebilirsiniz.
Tüm paket izinlerini geri yüklemek için:
rpm --setperms -a
Tüm paket sahibini (kullanıcı / grup) geri yüklemek için:
rpm --setugids -a
-A çalışmazsa, bir bash döngüsü yürütebilirsiniz:
İzinler için:
for x in $(rpm -qa); do rpm --setperms $x; done
Sahip için:
for x in $(rpm -qa); do rpm --setugids $x; done
Alıntı: http://www.sysadmit.com/2016/10/linux-restaurar-permisos-de-un-paquete.html
Geçerli sürümleri depolayabilir ve sonra -v seçeneğini kullanarak geri döndürmek için ayrıştırabilirsiniz.
chown -R nobody:nobody -v /tmp/some_file > /tmp/chown.log
cat /tmp/chown.log
İçeriği:
changed ownership of `/tmp/some_file' from me:users to nobody:nobody
En sevdiğiniz kodlama dilini ve düzenli ifadeleri kullanarak, onları geri alma konusunda acı verici bir süreç yürütebilirsiniz (gerekirse).
Şiddetle tavsiye ediyorum değil açık / sen teşhir edeceğiz gibi / etc / gölge ya da başka önemli dosyasının bir özyinelemeli chown yapıyor.
sudo chown -R user:user ..
Dosya sisteminin kökünün bir düzey altındaysanız, aşağıdaki komut burada belirtilenle aynı etkiye sahip olabilir. Böyle bir şey denemeyin.