Jak wyszukiwać pliki z określonym uprawnieniem

9

Jak mogę wyszukiwać pliki, które mają określone uprawnienia. Na przykład mam 10000 plików i chcę znaleźć te, które mają flagę TYLKO ODCZYTAJ. W innym przypadku chcę wyszukać innego, który ma konkretnego właściciela. Lub w innym, aby zobaczyć pliki, które są TYLKO DO CZYTANIA i DO WYKONANIA.

Luis Alvarado
źródło

Odpowiedzi:

10

Prawdopodobnie najłatwiej jest użyć findpolecenia, które pozwala rekurencyjnie przeszukiwać drzewo katalogów. Na przykład, jeśli szczególnie chcesz znaleźć pliki tylko do odczytu, możesz wpisać

find <specify location> -type f -perm -444

W przypadku plików należących do określonego użytkownika możesz użyć

find <location> -type f -user mike

Do plików wykonywalnych (dla wszystkich) możesz użyć

find <location> -type f -perm -777

Dla tych, które są wykonywalne i tylko do odczytu dla wszystkich, użyłbyś 555 zamiast 777 w powyższym przykładzie. Można również wyszukiwać pliki, które należą do grupy przez podstawienie -user mikeza -group mike.

Aby zignorować wyszukiwane hasła i wyszukać dokładnie odwrotnie, możesz użyć wykrzyknika w następujący sposób:

find <location> -type f ! -perm -444 

Uwaga: Określenie myślnika przed uprawnieniami (np. -perm -444) Oznacza, że ​​zostaną znalezione wszystkie pliki z flagą tylko do odczytu, a nie tylko te, które są 444; aby wyszukać 444 dokładnie i tylko to, po prostu usuń myślnik (np -perm 444.).

Uwaga 2: Można również szukać kombinacji uprawnień, używając -adla i -odla lub dla; na przykład, aby znaleźć dokładnie te uprawnienia, wpisz:

find <location> -type f -perm 744 -o -perm 666

Katalogi można wyszukiwać za pomocą -type d.

Zobacz man findinne dostępne permutacje.


źródło
+1 dla wspomnieć o różnicy między -444i444
Fr0zenFyr
Dla mnie -perm -444znajduje pliki, które mają readuprawnienia, a nie te, które są tylko do odczytu (co oznacza, że ​​mają tylko read i nie mają innych uprawnień).
Jānis Elmeris