Chown komutu nasıl geri alınır?


17

Eğer koşarsam:

sudo chown -R user:user /

Onu çalıştırmadan önceki haline döndürebilir miyim?


1
Diğerleri için bir uyarı olarak: 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.
passerby51

Yanıtlar:


22

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.


Sonra 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.
Keith Thompson

1
Bu senaryoda kullanıcı verilerinizin önemli kısımlarını yedeklemenizden kurtaramazsanız, "yedeklemeniz" gerçekten bir tane değildir. İşletim sisteminin tamamını kurtaramıyorsanız, yine de tabanı yeniden yükleyebilmeniz ve ardından yedeklemeden geri yükleyebilmeniz gerekir. Büyük olasılıkla bu durumda canlı bir CD veya ağ önyüklemesine ihtiyaç duyacaktır, ancak yedekleme stratejiniz bundan kurtulamıyorsa, yeterince iyi değildir.
Mat

Daha önceki yorumum muhtemelen belirsizdi. Çalışan bir sistem, sistemin kendisi kullanılarak geri yüklenebilir. chownAçıklandıktan sonra , tüm sistemi sıfırdan yüklemeden önce hiçbir şey yapamayacaksınız ; sistemin bir roothesabı bile yoktur ve sudoçalışmaz. Muhtemelen tek kullanıcılı bir kabuğa önyükleme yapmaya değer, ancak çalışmasını beklemeyin.
Keith Thompson

1
Kök hesap gitmedi (hala UID 0); artık herhangi bir dosyaya sahip değil, ancak kök yine de normal izin kontrollerini atlıyor. İster sudohatta subütün onun ilgili dosyalar ait olduğunda çalışmaya devam edecek userfarklı bir konu (muhtemelen çünkü diğer şeyler arasında exe üzerinde SUID bit gitmiş olacaktır) 'dir.
jw013

6

Yalnızca dizininizdeki her dosya ve dizinin kullanıcı ve grup sahipliğini biliyorsanız /.

O zaman bile, sudokomut 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/fookullanıcıya ait fooolduğunu ve altındaki her posta biriktirme dosyasının /var/mailuygun kullanıcıya ait olduğunu (sistemde e-postanız varsa ) varsayabilirsiniz . /homeSistemle 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.


6

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


1

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.


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.