Mam dwa pliki w katalogu. Jedno ma prawidłowe uprawnienia, a drugie nie. Czy istnieje sposób na „skopiowanie” zestawu uprawnień z jednego pliku do drugiego?
unix
permissions
file-management
Svish
źródło
źródło
--reference
opcja jest w wersji GNU; OSX prawdopodobnie używa zamiast tego chmod, który pochodzi z BSD. OSX man chmod : developer.apple.com/Mac/library/documentation/Darwin/Reference/...cp -dpR <source-file> <dest-file>
podczas kopiowania pliku, uprawnienia do kopiowania, a także plik.rWymyśliłem to:
Nie jest w pełni kuloodporny, ale robi to, czego potrzebuję.
źródło
Spróbuj tego:
find /PATH/TO/TARGET -exec chmod --reference /PATH/TO/SOURCE/{} {} \;
spowoduje to rekursywne przejście w górę i przeskok do każdego pliku, jeśli dwa katalogi nie pasują do plików, zobaczysz dużo błędu „Brak takiego pliku lub katalogu”.
źródło
find /home/myubuntuuser/Desktop/test1 -exec chmod --reference /home/myubuntuuser/Desktop/test2/{} {} \;
Możesz użyć
getfacl
do pobrania pełnej listy uprawnień do plików, właściciela, grupy i dodatkowych list ACL (list kontroli dostępu).Jeśli zapiszesz to wyjście w pliku (np.
acl.txt
), Możesz następnie przywrócić z tego formatu za pomocąsetfacl --restore acl.txt
. Jeśli chcesz przywrócić tylko jeden plik, a ten plik ma inną nazwę pliku niż oryginał, będziesz chciał użyćsetfacl --set-file acl.txt filename.txt
(gdziefilename.txt
jest nowa nazwa pliku).Kroki
Zapisz oryginalne uprawnienia do
acl.txt
:Nadpisz uprawnienia (do demonstracji; to po prostu, abyś mógł zobaczyć, że przywrócenie go w następnym kroku działa)
Służy
setfacl
do przywracania prawidłowych uprawnień zacl.txt
:Nazwa pliku jest pobierana z
# file:
komentarza wygenerowanego przezgetfacl
, więc nie ma potrzeby określania go w wierszu poleceń.Jeśli chcesz przywrócić te uprawnienia do innego pliku, możesz użyć
--set-file
zamiast--restore
tego:Przykład
Jeśli ostatecznie nadpisujesz uprawnienia do niektórych plików
/usr
, ale nie wiesz, które pliki zostały nadpisane, zwykle możesz to naprawić, przywracając z innego podobnie skonfigurowanego systemu.Uprawnienia do tworzenia kopii zapasowych z działającego systemu (uwaga:
getfacl
generuje ścieżki względne, więc upewnij się, żecd
do spójnej lokalizacji na obu komputerach)Skopiuj zrzut ACL do systemu z uszkodzonymi uprawnieniami
Przywróć zrzut ACL, aby zastąpić zepsute uprawnienia uprawnieniami ze znanego dobrego komputera
źródło