unix'te yanlış izinlere sahip dosyalar nasıl bulunur?


14

Bir dizin veya dizinleri aramak ve genel dizin için yanlış izinlere sahip tüm dosyaları listelemek için bir yol arıyorum.

Yanıtlar:


15

Sorunuz daha açık bir şekilde ifade edilebilir, özellikle. bir genel dizin için "yanlış izinler" ile ne demek istiyorsun?

Dizinlerin 755 ve sıradan dosyaların 644 olmasını istediğinizi varsayarsak, bunu şöyle yaparım:

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

-O ne yapar? OR gibi bir şey ifade ediyor mu?

2
0x89

3
Bu özel durumda RTFM, buluntu ayarlarının çoklu seviyeleri göz önüne alındığında çok yararlı bir cevap değildir; -o'nun -type veya -perm ile ilişkili olup olmadığını anlamaya çalışmak özellikle kafa karıştırıcıdır.
Lighthart

Kendime katılmama izin veriyorum. Soru "-o ne yapar? OR gibi bir şey ifade ediyor mu?" Bu, man sayfası tarafından mükemmel bir şekilde yanıtlanır: "ifade1 -o ifade2 Veya ifade1 doğru ise ifade2 değerlendirilmez."
0x89

Btw. öncelik hakkındaki sorunuz, man sayfasının aynı paragrafında ele alınmaktadır: "OPERATÖRLER Önceliğin sırasına göre listelenmiştir" ve "Üst üste iki ifade bir zımni ile birleştirilir 've'; ifade1 ise ifade2 değerlendirilmez yanlış.").
0x89

5

Bu benim için çalıştı

find .  \! -perm +755

\!Bayrak aracı olmadığı ve -permopsiyon kullanımları, normal chmod seçenekleri


3

Her şey neyi 'yanlış izin' olarak değerlendirdiğinize bağlıdır. man find , izin verilen dosyaları / dizinleri nasıl arayabileceğinizi tanımlayarak size yardımcı olur:

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.