Cara mencari file dengan izin tertentu

8

Bagaimana saya bisa mencari file yang memiliki izin khusus. Sebagai contoh, saya memiliki 10.000 file dan saya ingin mencari yang memiliki flag BACA HANYA. Dalam kasus lain saya ingin mencari yang lain yang memiliki pemilik tertentu. Atau di tempat lain untuk melihat file yang BACA HANYA dan EXECUTABLE.

Luis Alvarado
sumber

Jawaban:

9

Mungkin paling mudah untuk menggunakan findperintah, yang memungkinkan Anda untuk mencari secara rekursif melalui pohon direktori. Misalnya, jika Anda khususnya ingin menemukan file yang hanya baca, Anda bisa mengetik

find <specify location> -type f -perm -444

Untuk file milik pengguna tertentu yang dapat Anda gunakan

find <location> -type f -user mike

Untuk file yang dapat dieksekusi (untuk semua) yang dapat Anda gunakan

find <location> -type f -perm -777

Untuk yang dapat dieksekusi dan hanya-baca untuk semua, Anda akan menggunakan 555 sebagai pengganti 777 pada contoh di atas. Anda juga dapat mencari file yang termasuk kelompok dengan menggantikan -user mikeuntuk -group mike.

Untuk meniadakan istilah pencarian dan mencari sebaliknya, Anda dapat menggunakan tanda seru seperti ini:

find <location> -type f ! -perm -444 

Catatan: Menentukan tanda hubung sebelum izin (mis. -perm -444) Berarti bahwa semua file yang memiliki tanda baca saja akan ditemukan dan bukan hanya yang 444; untuk mencari 444 dengan tepat dan hanya itu, cukup hapus tanda hubung (mis -perm 444.).

Note2: Kombinasi izin dapat dicari juga menggunakan -auntuk dan dan -ountuk atau; misalnya untuk menemukan secara tepat izin ini, ketik:

find <location> -type f -perm 744 -o -perm 666

Direktori dapat dicari dengan -type d.

Lihat man findpermutasi lain yang tersedia.


sumber
+1 untuk menyebutkan tentang perbedaan antara -444dan444
Fr0zenFyr
Bagi saya, -perm -444menemukan file yang memiliki readizin, bukan file yang hanya baca (artinya, hanya memiliki readdan tidak ada izin lainnya).
Jānis Elmeris