GNU/Linux >> Linux Esercitazione >  >> Linux

Come trovare file in base alle loro autorizzazioni in Linux

Trovare file dalla riga di comando in Linux è molto più semplice e veloce. Abbiamo già discusso su come trovare e ordinare i file in base alla data e all'ora di accesso e modifica . Oggi vedremo come trovare i file in base ai loro permessi nei sistemi operativi Linux e simili a Unix.

Ai fini di questa guida, creerò tre file:file1 , file2 e file3 con autorizzazioni 777 , 766 , 655 rispettivamente in una cartella denominata ostechnix .

$ mkdir ostechnix && cd ostechnix/
$ install -b -m 777 /dev/null file1
$ install -b -m 766 /dev/null file2
$ install -b -m 655 /dev/null file3

Ora troviamo i file in base ai loro permessi.

Trova i file in base alle loro autorizzazioni

La sintassi tipica per trovare i file in base alle loro autorizzazioni è:

$ find -perm mode

La MODE può essere sia con numerico o ottale permesso (come 777 , 666 , ... ecc) o autorizzazione simbolica (come u=x , a=r+x ).

Possiamo specificare la MODE in tre modi diversi, come elencato di seguito.

  1. Se specifichiamo la modalità senza alcun prefisso, troverà file di esatto autorizzazioni.
  2. Se utilizziamo "-" prefisso con mode, almeno i file dovrebbero avere il permesso dato, non il permesso esatto.
  3. Se utilizziamo "/" prefisso, il proprietario, il gruppo o altro dovrebbe avere l'autorizzazione per il file.

Mi permetto di spiegare con alcuni esempi, così puoi capire meglio.

Innanzitutto, vedremo la ricerca di file in base alle autorizzazioni numeriche.

Trova i file in base ai loro permessi numerici (ottali)

Ora fammi eseguire il seguente comando:

$ find -perm 777

Questo comando troverà i file con il permesso di esattamente 777 nella directory corrente.

Come puoi vedere nell'output sopra, file1 è l'unico che ha l'autorizzazione 777 esatta .

Ora usiamo "-" prefisso e guarda cosa succede.

$ find -perm -766

Come vedi, il comando sopra mostra due file. Abbiamo impostato 766 autorizzazione a file2 , ma questo comando mostra due file, perché? Perché qui abbiamo usato "-" prefisso. Significa che questo comando troverà tutti i file in cui il proprietario del file ha i permessi di lettura/scrittura/esecuzione, i membri del gruppo di file hanno i permessi di lettura/scrittura e tutto il resto ha anche il permesso di lettura/scrittura. Nel nostro caso, file1 e file2 hanno soddisfatto questo criterio. In altre parole, i file non devono avere l'esatta autorizzazione 766. Verranno visualizzati tutti i file che rientrano in questa autorizzazione 766.

Successivamente, utilizzeremo "/" prefisso e guarda cosa succede.

$ find -perm /222

Il comando precedente troverà i file scrivibili da qualcuno (il loro proprietario, il loro gruppo o chiunque altro). Ecco un altro esempio.

$ find -perm /220

Questo comando troverà i file che sono scrivibili dal loro proprietario o dal loro gruppo. Ciò significa che i file non devono essere scrivibili da sia il proprietario che il gruppo da abbinare; entrambi lo farà.

Ma se esegui lo stesso comando con "-" prefisso, vedrai solo i file scrivibili sia dal proprietario che dal gruppo.

$ find -perm -220

Lo screenshot seguente ti mostrerà la differenza tra questi due prefissi.

Come ho già detto, possiamo anche usare la notazione simbolica per rappresentare i permessi dei file.

Trova i file in base ai loro permessi usando la notazione simbolica

Negli esempi seguenti, utilizziamo notazioni simboliche come u (per utente), g (gruppo), o (altri). Possiamo anche usare la lettera a rappresentare tutte e tre queste categorie. I permessi possono essere specificati usando le lettere r (leggi), w (scrivi), x (eseguibile).

Ad esempio, per trovare qualsiasi file con il gruppo scrivi permesso, esegui:

$ find -perm -g=w

Come puoi vedere nell'esempio sopra, file1 e file2 fai scrivere al gruppo autorizzazione. Tieni presente che puoi utilizzare sia "=" o "+" operatori per la notazione simbolica. Ad esempio, i seguenti due comandi faranno la stessa cosa.

$ find -perm -g=w
$ find -perm -g+w

Per trovare qualsiasi file scrivibile dal proprietario del file, eseguire:

$ find -perm -u=w

Per trovare qualsiasi file scrivibile da tutti (il proprietario del file, il gruppo e tutti gli altri), esegui:

$ find -perm -a=w

Per trovare file scrivibili da entrambi il loro proprietario e il loro gruppo , usa questo comando:

$ find -perm -g+w,u+w

Il comando sopra è equivalente a "find -perm -220" comando.

Per trovare file scrivibili da uno il loro proprietario o il loro gruppo , esegui:

$ find -perm /u+w,g+w

Oppure,

$ find -perm /u=w,g=w

Questi due comandi fanno lo stesso lavoro di "find -perm /220" comando.

Per maggiori dettagli, fare riferimento alle pagine man.

$ man find

Inoltre, controlla le alternative alle pagine man per apprendere esempi più semplificati di qualsiasi comando Linux.

Lettura correlata:

  • Come trovare le directory ei file più grandi e più piccoli in Linux
  • Come trovare il file più vecchio in un albero di directory in Linux
  • Come trovare file più grandi o più piccoli di X in Linux

Linux
  1. Come trovare e ordinare i file in base alla data e all'ora di modifica in Linux

  2. Come trovare file con autorizzazioni SUID e SGID in Linux

  3. Come trovare file con il comando fd in Linux

  4. Come trovare tutti i file sparsi in Linux

  5. Come faccio a trovare i file e sommare le loro dimensioni?

Come trovare file in Linux

Come contare i file nella directory in Linux

Autorizzazioni Linux:come trovare le autorizzazioni di un file

Come trovare file basati su timestamp in Linux

Come trovare file con il comando fd in Linux

Come trovare le cartelle in Linux