come trovare file con permessi errati su unix?


14

Sto cercando un modo per cercare una directory o directory ed elencare tutti i file che hanno le autorizzazioni sbagliate per una directory pubblica.

Risposte:


15

La tua domanda potrebbe essere espressa più chiaramente, esp. cosa intendi con "le autorizzazioni sbagliate" per una directory pubblica?

Supponendo che tu desideri che le directory siano 755 e che i file ordinari siano 644, lo farei così:

$ find \! -perm 644 -type f -o \! -perm 755 -type d

Cosa fa il -o? Significa qualcosa come OR?


3
In questo caso particolare, RTFM non è una risposta molto utile dati i livelli multipli di impostazioni di individuazione; è particolarmente confuso cercare di capire se -o è associato a -type o -perm.
Lighthart

Mi permetto di non essere d'accordo. La domanda era "Cosa fa il -o? Significa qualcosa come OR?". Questo risponde perfettamente alla pagina man: "expr1 -o expr2 O; expr2 non viene valutato se expr1 è vero."
0x89,

Btw. la tua domanda sulla precedenza viene gestita nello stesso paragrafo della pagina man: "OPERATORI elencati in ordine di precedenza decrescente" e "Due espressioni di una riga vengono prese per essere unite con un implicito" e "; expr2 non viene valutato se expr1 è falsa. ").
0x89,

5

Questo ha funzionato per me

find .  \! -perm +755

Il \!flag significa no e l' -permopzione utilizza le normali opzioni chmod


3

Tutto dipende da cosa consideri "permesso errato". man find ti aiuta a definire il modo in cui puoi cercare file / directory con il permesso dato:

   -perm -mode
          All of the permission bits mode are set for the file.  Symbolic modes are
          accepted in this form, and this is usually the way in which would want to
          use them.  You must specify ‘u’, ‘g’ or ‘o’ if you use a  symbolic  mode.
          See the EXAMPLES section for some illustrative examples.

   -perm /mode
          Any of the permission bits mode are set for the file.  Symbolic modes are
          accepted in this form.  You must specify ‘u’, ‘g’ or ‘o’  if  you  use  a
          symbolic  mode.  See the EXAMPLES section for some illustrative examples.
          If no permission bits in mode are set, this test matches  any  file  (the
          idea here is to be consistent with the behaviour of -perm -000).

   -perm +mode
          Deprecated,  old  way  of  searching for files with any of the permission
          bits in mode set.  You should use -perm /mode instead. Trying to use  the
          ‘+’  syntax with symbolic modes will yield surprising results.  For exam‐
          ple, ‘+u+x’ is a valid symbolic mode (equivalent to +u,+x, i.e. 0111) and
          will  therefore  not be evaluated as -perm +mode but instead as the exact
          mode specifier -perm mode and so it matches files with exact  permissions
          0111  instead of files with any execute bit set.  If you found this para‐
          graph confusing, you’re not alone - just use -perm /mode.  This  form  of
          the -perm test is deprecated because the POSIX specification requires the
          interpretation of a leading ‘+’ as being part of a symbolic mode, and  so
          we switched to using ‘/’ instead.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.