GNU/Linux >> Linux Esercitazione >  >> Linux

Come controllare i permessi con il comando trova

Ammettiamolo:il filesystem di Linux può essere complesso. Aggiungi filesystem remoti montati, supporti rimovibili e qualsiasi directory specifica del server che hai creato e tu o i tuoi utenti potreste avere difficoltà a ricordare esattamente dove è archiviato un determinato file. Ecco dove find arriva il comando. Ti permette di cercare file o directory in base a vari criteri. Effettuerò una revisione di base di find di seguito, ma il focus di questo articolo è leggermente diverso:trova le risorse in base alle autorizzazioni.

Perché ho bisogno di trovare per autorizzazioni?

  • Controllo di sicurezza
  • Risolvi i problemi di accesso degli utenti
  • Risolvi i problemi di accesso alle applicazioni

Veloce esempio di ricerca per nome

Ci sono altri articoli su Enable Sysadmin che trattano il find comandare in modo efficace. Riassumerò rapidamente il comando qui, tuttavia.

Sintassi:

find (where to search) (what to search for)

Esempio:

# find /etc -name rsyslog
# find /home/user01 -type d

Tuttavia, questo articolo si concentra sull'utilizzo di -perm opzione, che ricerca in base alle impostazioni delle autorizzazioni.

Modalità assoluta contro modalità simbolica

Ricordiamo che i permessi vengono impostati usando il chmod comando. Il chmod Il comando riconosce sia la modalità assoluta che la modalità simbolica. Vedi il mio recente articolo Come gestire le autorizzazioni Linux per utenti, gruppi e altri per una revisione della gestione dell'accesso alle risorse, comprese le due modalità. Il find command riconosce anche una delle due modalità, quindi puoi usare quella che ti viene più naturale. Per me, questa è la modalità assoluta. Devi ricordare alcune cose sulla modalità assoluta e simbolica per usare efficacemente find -perms comando.

Modalità assoluta

La modalità assoluta utilizza valori ottali per rappresentare le autorizzazioni. I valori sono elencati in ordine come l'autorizzazione da assegnare all'utente, al gruppo e a tutti gli altri.

Ad esempio:

# chmod 764 file1

Imposta l'utente con 7 (rwx), gruppo con 6 (rw) e altri con 4 (r) per file1 .

Modalità simbolica

La modalità simbolica usa i simboli per rappresentare i livelli di accesso e usa gli operatori matematici per fornire (+ ) o rimuovere (- ) autorizzazioni.

Ad esempio:

# chmod o+rw file1

gli altri identità leggi e scrivi a file1 .

Trova le autorizzazioni per le risorse utilizzando la modalità assoluta

La ricerca delle autorizzazioni più fondamentali non utilizza parametri aggiuntivi. La dichiarazione si legge come "trova una risorsa con queste autorizzazioni".

Ad esempio:

# find /etc -perm 777

Il comando è:Cerca nel /etc directory per le risorse con il 777 livello di accesso (rwx per tutte le identità).

L'esempio precedente trova solo le risorse con esattamente l'autorizzazione specificata, né più né meno. E se avessi bisogno di un po' più di flessibilità? Ci sono due parametri aggiuntivi che possono essere molto utili. Il primo è il - carattere (trattino) e il secondo è il / carattere (barra). Diamo un'occhiata a entrambi.

Trova per -

L'uso del - opzione significa "almeno questo livello di autorizzazione è impostato e qualsiasi autorizzazione superiore".

Esempio:

# find . -perm -644

Questo esempio mostra tutte le risorse nella directory corrente con almeno 644 autorizzazioni.

Trova per /

L'uso del / opzione significa "qualsiasi autorizzazione elencata è impostata".

Esempio:

# find . -perm /644

Questo esempio mostra le risorse con 644 o autorizzazioni superiori.

Trova i permessi delle risorse usando la modalità simbolica

La modalità simbolica utilizza ugo simboli (utente, gruppo, altri), rwx simboli (lettura, scrittura, esecuzione) e operatori matematici (come + o - ) per definire i permessi.

Trova per -

Il - l'opzione funziona allo stesso modo in modalità simbolica come ha fatto sopra in modalità assoluta. Visualizza le risorse con "almeno questo livello di accesso".

Esempio:

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

Trova per /

Il / funziona allo stesso modo anche in modalità simbolica. Visualizza le risorse con "tutte le autorizzazioni elencate".

Esempio:

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

Le autorizzazioni standard di Linux sono molto comuni e ora sai come cercare risorse con un determinato livello di accesso configurato. Tuttavia, Linux sfrutta anche permessi speciali . Il find comando può visualizzare anche queste autorizzazioni.

Trova risorse con autorizzazioni speciali configurate

Le autorizzazioni speciali di Linux impostano controlli di accesso aggiuntivi sulle risorse. Sono disponibili tre autorizzazioni speciali:Imposta ID utente (SUID), Imposta ID gruppo (SGID) e Sticky Bit. I dettagli di ciascuno sono al di fuori dello scopo di questo articolo, ma permettetemi di riassumere rapidamente:

Autorizzazione speciale Descrizione
SUID Un file viene eseguito da un utente con l'identità del proprietario, anche se quell'utente non è il proprietario
SGID Il contenuto di una directory eredita automaticamente l'associazione di gruppo della cartella principale (ottimo per le directory condivise dai team di progetto)
Punto appiccicoso Il file viene caricato automaticamente in memoria e non può essere cancellato o alterato da nessun altro che non sia il proprietario

Dai un'occhiata a questo articolo per ulteriori informazioni sulle autorizzazioni speciali.

I permessi speciali sono configurati utilizzando un quarto bit (più a sinistra):

  • SUID =4
  • SGID =2
  • Bit appiccicoso =1

Suggerimento :L'output di ls -l il comando visualizzerà una s nel campo eseguibile per l'utente se è configurato SUID, una s nel campo eseguibile del gruppo se SGID è configurato e una T o t se è impostato Sticky Bit (a seconda che sia impostato anche esegui).

Il contenuto seguente copre la ricerca di file con autorizzazioni speciali specifiche configurate.

Trova file con SUID configurato

Per trovare i file in cui è definito il livello di accesso SUID, utilizzare il -perm opzione ma includi la quarta cifra. SUID ha un valore ottale di 4 .

Ad esempio, per cercare risorse con il SUID configurato:

# find /usr/bin -perm 4755

Trova file con SGID configurato

Puoi utilizzare la stessa sintassi per visualizzare le risorse con l'autorizzazione SGID definita utilizzando il valore ottale SGID di 2 .

Ad esempio, per cercare risorse con il SGID configurato:

# find /usr/bin -perm 2755

Trova i file con lo Sticky Bit configurato

Infine, puoi utilizzare il valore ottale di 1 per visualizzare le risorse con lo Sticky Bit configurato.

Ecco un esempio di Sticky Bit:

# find /etc -perm /1444

Nota :Il - e / i parametri funzionano allo stesso modo con autorizzazioni speciali come con autorizzazioni standard.

[ Altri lettori hanno apprezzato: Nozioni di base sull'amministratore di sistema Linux:gestione dell'account utente ]

Esempi di bonus

Ecco alcuni comandi aggiuntivi che potrebbero essere utili per visualizzare i permessi. Mentre scrivevo l'articolo, continuavo a pensare:Aspetta, che mi dici di questo? e quindi aggiungendo esempi bonus. Quindi ecco diversi comandi aggiuntivi per il controllo delle autorizzazioni.

Bonus 1:usa -non per negare i risultati

Puoi usare il -not opzione con find per specificare tutto ciò che non corrisponde ai criteri indicati.

Il primo esempio mostra un normale find tentativo e il secondo mostra find con -not .

# find /etc/network -perm 777

L'esempio sopra mostra le risorse all'interno di /etc/network che fa avere 777 autorizzazioni configurate.

# find /etc/network -not -perm 777

Questo esempio mostra le risorse all'interno di /etc/network che dispongono di autorizzazioni diverse da 777 configurato.

Bonus 2:imposta i permessi usando trova e chmod

Uno dei vantaggi di find è che include una funzione di esecuzione. Puoi combinarlo con comandi di follow-up, come xargs , rm o chmod .

# find -perm -111 -exec chmod -R 777 {} \;

In questo esempio, il {} i caratteri rappresentano i risultati del find comando e il \; i caratteri rappresentano una terminazione del chmod comando.

Avviso :Fai attenzione a capire esattamente quale sarà l'effetto della tua esecuzione combinata "trova + altri comandi". Un errore di battitura potrebbe facilmente find tutti i file in /etc e quindi tentare di eliminarli o configurare le autorizzazioni che bloccano gli utenti legittimi fuori dalle loro home directory.

Bonus 3:Visualizza i permessi usando ls e grep

A volte non hai bisogno della funzionalità avanzata di find comando. Invece, hai solo bisogno di una visualizzazione rapida e semplice di autorizzazioni specifiche. In tal caso, affidati a ls e grep comandi.

Esempio:

# ls -l | grep rwxrw-r--

Questo comando mostra tutto il contenuto della directory con i permessi specificati.

Bonus 4:Visualizza autorizzazioni ACL

Il find Il comando non visualizza facilmente i file con le autorizzazioni dell'elenco di controllo di accesso (ACL) applicate. In tal caso, usa il getfacl comando invece.

Esempio:

# getfacl file1

Vedi Introduzione agli elenchi di controllo di accesso (ACL) di Linux per ulteriori informazioni sugli elenchi di controllo di accesso.

Concludi

Il find command è una pratica utilità per visualizzare le directory o i file che è necessario individuare. Tuttavia, trova può anche essere un ottimo strumento di sicurezza perché mostra directory e file con autorizzazioni specificate. In qualità di amministratore di sistema, puoi utilizzare tali informazioni per assicurarti che le risorse del server siano impostate in base alle politiche di sicurezza della tua azienda. Non dimenticare che puoi usare il >> redirector per documentare queste autorizzazioni. Tale documento può essere utilizzato come base di autorizzazione per futuri audit.

[ Stai pensando alla sicurezza? Dai un'occhiata a questa guida gratuita per aumentare la sicurezza del cloud ibrido e proteggere la tua azienda. ] 


Linux
  1. Trova file e directory su Linux con il comando find

  2. Come trovare file in CentOS 8 sulla riga di comando

  3. Come trovare file duplicati in Linux? L'aiuto è qui con il comando fdupes!

  4. Come trovare file con il comando fd in Linux

  5. Come usare regex con il comando find?

Come utilizzare il comando sleep di Linux con esempi

Come utilizzare il comando who in Linux con esempi

Come utilizzare il comando RPM (con esempi)

Come trovare file sulla riga di comando di Ubuntu

Come trovare file con il comando fd in Linux

Come trovare file con dozzine di criteri con il comando Trova Bash