jak znaleźć pliki z niepoprawnymi uprawnieniami w Uniksie?

14

Szukam sposobu na przeszukanie katalogu lub katalogów i wyświetlenie listy wszystkich plików, które mają nieprawidłowe uprawnienia do katalogu publicznego.

sal
źródło

Odpowiedzi:

15

Twoje pytanie może zostać sformułowane jaśniej, szczególnie. co masz na myśli mówiąc „złe uprawnienia” do katalogu publicznego?

Zakładając, że chcesz mieć katalogi 755, a zwykłe pliki 644, zrobiłbym to w ten sposób:

$ find \! -perm 644 -type f -o \! -perm 755 -type d
0x89
źródło
Co robi -o? Czy to oznacza coś w rodzaju OR?
3
W tym konkretnym przypadku RTFM nie jest bardzo pomocną odpowiedzią, biorąc pod uwagę wiele poziomów ustawień znalezisk; jest to szczególnie mylące, gdy próbuje się dowiedzieć, czy -o jest powiązane z -type lub -perm.
Lighthart,
Pozwalam sobie się nie zgodzić. Pytanie brzmiało: „Co robi -o? Czy to oznacza coś w rodzaju OR?”. Doskonale odpowiada na to strona podręcznika: „wyrażenie1 -o wyrażenie2 Lub; wyrażenie2 nie jest oceniane, jeśli wyrażenie1 jest prawdziwe”.
0x89
Btw. twoje pytanie dotyczące pierwszeństwa jest obsługiwane w tym samym akapicie strony podręcznika: „OPERATORZY wymienione w kolejności malejącego pierwszeństwa” i „Dwa wyrażenia z rzędu są łączone z domniemanym„ i ”; wyrażenie2 nie jest oceniane, jeśli wyrażenie1 jest fałszywy.").
0x89
5

To zadziałało dla mnie

find .  \! -perm +755

W \!NIE oznacza flagi i -permzastosowania opcji normalne Opcje chmod

sal
źródło
3

Wszystko zależy od tego, co uważasz za „nieprawidłowe pozwolenie”. man find pomaga ci definiując sposób wyszukiwania plików / katalogów przy danym uprawnieniu:

   -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.

asdmin
źródło