Przypadkowo zmieniłem /var
właściciela / grupę na moją nazwę użytkownika, a następnie zmieniłem ją z powrotem na root, ale nie wszyscy /var
właściciele folderów są rootami, więc czy w ogóle istnieje możliwość zmiany właściciela / grupy plików / folderów na domyślny? A przynajmniej te pliki / foldery tworzone przez pakiety?
permissions
chown
sepehr
źródło
źródło
chown
polecenie? i zostałby zamknięty.Odpowiedzi:
Podobnie do jednej z powyższych odpowiedzi, jeśli masz kopię katalogu z prawidłowymi uprawnieniami o nazwie „var” w katalogu lokalnym, możesz użyć dwóch poniższych poleceń, aby przywrócić uprawnienia do katalogu / var.
źródło
Najprostszą (i prawdopodobnie najbardziej poprawną) odpowiedzią jest „Nie możesz”, ale jeśli chcesz spróbować, oto skrypt bash, który naprawi uprawnienia do plików w katalogu / var należących do pakietów .deb.
UWAGI:
Skrypt działa, generując listę zainstalowanych pakietów, które mają pliki w var, pobierając te pakiety, a następnie używając,
dpkg-deb -c
aby dowiedzieć się, jakie powinny być uprawnienia.Najtrudniejsze było napisanie funkcji do konwersji ciągu uprawnień (wyświetlanego przez
ls -l
lubtar v
) na ósemkowy tryb numeryczny, w tym obsługę setuid, setgid i lepkich bitów ... niektóre rzeczy, które można łatwo napisać za pomocą dobrego algorytmu powiedzmy, że perl jest zbyt trudny w bashu, więc łatwiej jest po prostu użyć brutalnej siły.Na koniec skrypt jest napisany w trybie „debugowania” lub „uruchamiania na sucho”. Aby faktycznie zmienić właściciela / grupę / perms, skomentuj lub usuń dwa wiersze z umieszczonymi
__EOF__
na nich znacznikami dokumentów.Skrypt może oczywiście być dość łatwo przystosowany do naprawy permsów plików spakowanych w dowolnym innym katalogu lub we wszystkich katalogach.
Ten skrypt byłby o wiele prostszy, gdyby pliki $ packagename.list w
/var/lib/dpkg/info
zawierały uprawnienia właściciela, grupy i ośmiokrotne, a także nazwę pliku ... ale nie mają.źródło
dpkg -S /var
. Ponadto po zastosowaniu tego skryptu należy sprawdzićdpkg-statoverride --list '/var/*'
.dpkg -S
jest powolne (dlatego napisałemdlocate
). Dobra uwaga na tematdpkg-statoverride
.... i format wyjściowy jest idealny.Mógłbyś.
Zainstaluj tę samą dystrybucję na innym komputerze lub maszynie wirtualnej i użyj
chmod --refer
do synchronizacji uprawnień dla/var
źródło
Prosta odpowiedź brzmi „nie możesz”.
Ale .... jeśli masz system plików taki jak JFS, który ma dziennik, możesz go przywrócić za pomocą narzędzi. Niektóre menedżery pakietów pozwalają ponownie zainstalować pakiety i być może w ten sposób możesz odzyskać właściciela plików.
Innym sposobem, ale bardziej kłopotliwym jest to, że możesz zamontować / var na innym urządzeniu i wtedy programy odtworzą brakujący katalog.
źródło