Jak stosować rekursywnie katalogi chmod bez wpływu na pliki?


18

Po złożeniu wniosku chmod -Ro katalog uprawnienia są zmieniane dla wszystkich elementów (plików i katalogów). Jak mogę dodać xuprawnienia do wykonywania / wyszukiwania ( ) do katalogów bez modyfikowania plików?

Odpowiedzi:


13

Możesz użyć find .

find ./ -type d -execdir chmod 750 {} +

Gdzie 750 to tryb, który chcesz zastosować, a „./” to katalog, który będziesz rekurencyjnie przeszukiwał.

EDYCJA : Dzięki @Gilles i find (1) poprawiłem to dla dodatkowego bezpieczeństwa i wydajności.


@Gilles Dzięki, nie jest tak często, że uczę się czegoś nowego o narzędziach uniksowych :-) To jest niesamowite. Ponadto, teraz czytając dokumentację znalezienia , naprawdę należy zamiast tego użyć -execdir.
ewindisch 15.01.11

7

W tym konkretnym przypadku możesz użyć Xzamiast, xktóry dodaje tylko bity do katalogów lub plików, które mają już ustawiony bit wykonywalny dla niektórych użytkowników (tj chmod -R +X my_dir.).

Zasadniczo (np. Jeśli chcesz, aby wszystkie katalogi były czytelne bez wpływu na pliki), możesz użyć findz -type dlub jeśli używasz zsh (lub bash 4 z shopt -s globstar) **/glob (oba bez przekazywania -Rflagi chmod).


@Gilles: Dobrze, dodałem to do odpowiedzi.
sepp2k

1
„użyj X zamiast x, który dodaje tylko bity do katalogów lub plików, które mają już ustawiony bit wykonywalny dla niektórych użytkowników” - Dzięki! Bardzo za tym tęskniłem!
Ivan
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.