Przywracanie domyślnych atrybutów plików
Jeśli w wyniku nieprzemyślanego działania (np. uruchomienie źle napisanego skryptu, niewłaściwe lub przypadkowe wywołanie poleceń chmod, chgrp czy chown itp) zmienione zostaną w systemie uprawnienia do plików (w tym plików i poleceń systemowych) pomocne może okazać się polecenie rpm z odpowiednimi opcjami.
–setperms przywraca domyślne uprawnienia
–setugids przyraca domyślnych właścicieli i grupy
Oczywiście wywoływanie polecenia dla każdego z plików osobno zajęłoby zbyt wiele czasu, ale wykorzystując inną opcję rpm -qa możemy z łatwością uruchomić w terminalu, jako root polecenie:
for p in $(rpm -qa); do rpm --setperms $p; done
Powyższe polecenie przywróci wszystkim zainstalowanym w systemie pakietom ich domyślne uprawnienia.
Żeby przywrócić domyślnego właściciela i grupę należy wykonać podobne polecenie:
for p in $(rpm -qa); do rpm --setugids $p; done
Wykonanie obu tych poleceń moze trwać bardzo długo. Czas zależy od ilości zainstalowanych pakietów oraz parametrów komputera.
Żródło: http://www.cyberciti.biz/tips/reset-rhel-centos-fedora-package-file-permission.html
Naprawianie uszkodzonej bazy RPM
Jeśli przy próbie jakiejkolwiek operacji na pakietach (czy to za pomocą rpm czy za pomocą yum) wyświetli się błąd podobny do tego:
Error Type: <type 'exceptions.TypeError'> Error Value: rpmdb open failed
oznacza to, że uszkodzeniu uległa baza pakietów RPM (rpmdb).
W celu odzyskania spójności bazy oraz możliwości instalowania/usuwania pakietów w systemie należy (z uprawnieniami roota) wykonać kilka czynności.
- przejść do katalogu /var/lib/rpm
cd /var/lib/rpm
- zmienić nazwę pliku zawierającego informacje o zainstalwanych pakietach:
cp Packages Packages_old
- Usunąć blokady bazy
rm -f __db*
- Odbudować bazę:
rpm --rebuilddb
Ostatnia operacja może trwać dość długo w zależności od ilości zainstalowanych pakietów oraz parametrów komputera. Nie należy przerywać działania tego polecenia.
Napisz komentarz