GNU/Linux >> Belajar Linux >  >> Linux

Cara mengaudit izin dengan perintah find

Mari kita hadapi itu:Sistem file Linux bisa jadi rumit. Tambahkan sistem file jarak jauh yang terpasang, media yang dapat dipindahkan, dan direktori khusus server apa pun yang telah Anda buat, dan Anda atau pengguna Anda mungkin merasa sulit untuk mengingat dengan tepat di mana file tertentu disimpan. Di situlah find perintah masuk. Ini memungkinkan Anda untuk mencari file atau direktori berdasarkan berbagai kriteria. Saya akan melakukan tinjauan dasar find di bawah, tetapi fokus artikel ini sedikit berbeda:Temukan sumber daya dengan izin.

Mengapa saya perlu mencari dengan izin?

  • Audit keamanan
  • Memecahkan masalah keluhan akses pengguna
  • Memecahkan masalah akses aplikasi

Contoh cepat menemukan berdasarkan nama

Ada artikel lain di Enable Sysadmin yang mencakup find perintah secara efektif. Namun, saya akan segera merangkum perintahnya di sini.

Sintaks:

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

Contoh:

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

Namun, artikel ini berfokus pada penggunaan -perm opsi, yang mencari berdasarkan setelan izin.

Mode absolut versus mode simbolik

Ingat bahwa izin ditetapkan dengan menggunakan chmod memerintah. chmod perintah mengenali mode absolut dan mode simbolis. Lihat artikel terbaru saya Cara mengelola izin Linux untuk pengguna, grup, dan lainnya untuk ulasan tentang mengelola akses resource, termasuk dua mode tersebut. find command juga mengenali salah satu mode, sehingga Anda dapat menggunakan mana saja yang paling alami bagi Anda. Bagi saya, itu mode mutlak. Anda perlu mengingat beberapa hal tentang mode absolut dan mode simbolik untuk menggunakan find -perms secara efektif perintah.

Mode mutlak

Mode absolut menggunakan nilai oktal untuk mewakili izin. Nilai dicantumkan dalam urutan sebagai izin untuk ditetapkan ke pengguna, grup, dan semua lainnya.

Misalnya:

# chmod 764 file1

Menyetel pengguna dengan 7 (rwx), grup dengan 6 (rw), dan lainnya dengan 4 (r) untuk file1 .

Mode simbolik

Mode simbolik menggunakan simbol untuk mewakili tingkat akses, dan menggunakan operator matematika untuk memberikan (+ ) atau hapus (- ) izin.

Misalnya:

# chmod o+rw file1

Memberikan lainnya identitas baca dan tulis ke file1 .

Temukan izin sumber daya dengan menggunakan mode absolut

Pencarian izin paling mendasar tidak menggunakan parameter tambahan. Pernyataan tersebut berbunyi sebagai "temukan sumber daya dengan izin ini."

Misalnya:

# find /etc -perm 777

Perintahnya adalah:Cari /etc direktori untuk sumber daya dengan 777 tingkat akses (rwx untuk semua identitas).

Contoh di atas hanya menemukan sumber daya dengan izin yang ditentukan—tidak lebih dan tidak kurang. Bagaimana jika Anda membutuhkan sedikit lebih banyak fleksibilitas? Ada dua parameter tambahan yang bisa sangat berguna. Yang pertama adalah - karakter (tanda hubung), dan yang kedua adalah / karakter (garis miring). Mari kita lihat keduanya.

Temukan menurut -

Penggunaan - opsi berarti "setidaknya tingkat izin ini disetel, dan izin apa pun yang lebih tinggi."

Contoh:

# find . -perm -644

Contoh ini menampilkan semua sumber daya di direktori saat ini dengan setidaknya 644 izin.

Temukan oleh /

Penggunaan / opsi berarti "salah satu izin yang tercantum telah disetel."

Contoh:

# find . -perm /644

Contoh ini menampilkan sumber daya dengan 644 atau izin yang lebih besar.

Temukan izin sumber daya dengan menggunakan mode simbolis

Mode simbolis menggunakan ugo simbol (pengguna, grup, lainnya), rwx simbol (baca, tulis, eksekusi), dan operator matematika (seperti + atau - ) untuk menentukan izin.

Temukan menurut -

- option beroperasi sama dalam mode simbolik seperti di atas dalam mode absolut. Ini menampilkan sumber daya dengan "setidaknya tingkat akses ini."

Contoh:

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

Temukan oleh /

/ juga berfungsi sama dalam mode simbolis. Ini menampilkan sumber daya dengan "izin apa pun terdaftar."

Contoh:

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

Izin standar Linux sangat umum, dan sekarang Anda tahu cara mencari sumber daya dengan tingkat akses tertentu yang dikonfigurasi. Namun, Linux juga memanfaatkan izin khusus . find perintah juga dapat menampilkan izin ini.

Temukan sumber daya dengan izin khusus yang dikonfigurasi

Izin khusus Linux mengatur kontrol akses tambahan pada sumber daya. Ada tiga izin khusus:Set User ID (SUID), Set Group ID, (SGID), dan Sticky Bit. Detail masing-masing berada di luar cakupan artikel ini, tetapi izinkan saya meringkasnya dengan cepat:

Izin khusus Deskripsi
SUID Sebuah file dieksekusi oleh pengguna dengan identitas pemiliknya, meskipun pengguna tersebut bukan pemiliknya
SGID Isi direktori secara otomatis mewarisi asosiasi grup dari folder induk (bagus untuk direktori yang dibagikan oleh tim proyek)
Bit Lengket File dimuat ke dalam memori secara otomatis dan tidak dapat dihapus atau diubah oleh siapa pun selain pemiliknya

Lihat artikel ini untuk informasi selengkapnya tentang izin khusus.

Izin khusus dikonfigurasi menggunakan bit keempat (paling kiri):

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

Kiat :Keluaran dari ls -l perintah akan menampilkan s di bidang yang dapat dijalankan untuk pengguna jika SUID dikonfigurasi, sebuah s di bidang yang dapat dieksekusi untuk grup jika SGID dikonfigurasi, dan T atau t jika Sticky Bit disetel (tergantung apakah eksekusi juga disetel).

Konten berikut mencakup pencarian file dengan izin khusus khusus yang dikonfigurasi.

Temukan file dengan SUID yang dikonfigurasi

Untuk menemukan file di mana tingkat akses SUID ditentukan, gunakan -perm pilihan tetapi sertakan digit keempat. SUID memiliki nilai oktal 4 .

Misalnya, untuk mencari sumber daya dengan SUID yang dikonfigurasi:

# find /usr/bin -perm 4755

Temukan file dengan konfigurasi SGID

Anda dapat menggunakan sintaks yang sama untuk menampilkan sumber daya dengan izin SGID yang ditentukan dengan menggunakan nilai oktal SGID 2 .

Misalnya, untuk mencari sumber daya dengan SGID yang dikonfigurasi:

# find /usr/bin -perm 2755

Temukan file dengan Sticky Bit yang dikonfigurasi

Terakhir, Anda dapat menggunakan nilai oktal 1 untuk menampilkan sumber daya dengan Sticky Bit yang dikonfigurasi.

Berikut adalah contoh Sticky Bit:

# find /etc -perm /1444

Catatan :- dan / parameter bekerja sama dengan izin khusus seperti halnya dengan izin standar.

[ Pembaca lain menikmati: Dasar-dasar sysadmin Linux:Pengelolaan akun pengguna ]

Contoh bonus

Berikut adalah beberapa perintah tambahan yang mungkin berguna untuk menampilkan izin. Saat menulis artikel, saya terus berpikir, Tunggu, bagaimana dengan ini? dan kemudian menambahkan contoh bonus. Jadi, berikut adalah beberapa perintah tambahan untuk audit izin.

Bonus 1:Gunakan -bukan untuk meniadakan hasil

Anda dapat menggunakan -not opsi dengan find untuk menentukan apa pun yang tidak sesuai dengan kriteria yang diberikan.

Contoh pertama menunjukkan find . yang normal percobaan, dan yang kedua menampilkan find dengan -not .

# find /etc/network -perm 777

Contoh di atas menampilkan resource di dalam /etc/network yang lakukan memiliki 777 izin dikonfigurasi.

# find /etc/network -not -perm 777

Contoh ini menampilkan sumber daya di dalam /etc/network yang memiliki izin selain 777 dikonfigurasi.

Bonus 2:Tetapkan izin dengan menggunakan find dan chmod

Salah satu manfaat find adalah bahwa itu termasuk fungsi eksekusi. Anda dapat menggabungkan ini dengan perintah tindak lanjut, seperti xargs , rm , atau chmod .

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

Dalam contoh ini, {} karakter mewakili hasil find perintah, dan \; karakter mewakili penghentian chmod perintah.

Peringatan :Berhati-hatilah untuk memahami dengan tepat apa efek dari eksekusi gabungan "temukan + perintah lain" Anda. Salah ketik dapat dengan mudah find semua file di /etc dan kemudian mencoba untuk menghapusnya atau mengonfigurasi izin yang mengunci pengguna yang sah dari direktori home mereka.

Bonus 3:Tampilkan izin dengan menggunakan ls dan grep

Terkadang Anda tidak memerlukan fungsionalitas lanjutan dari find memerintah. Sebagai gantinya, Anda hanya perlu tampilan izin khusus yang cepat dan mudah. Dalam hal ini, andalkan ls dan grep perintah.

Contoh:

# ls -l | grep rwxrw-r--

Perintah ini menampilkan semua konten direktori dengan izin yang ditentukan.

Bonus 4:Tampilkan izin ACL

find perintah tidak dengan mudah menampilkan file dengan izin Access Control List (ACL) yang diterapkan. Dalam hal ini, gunakan getfacl perintah sebagai gantinya.

Contoh:

# getfacl file1

Lihat Pengantar Daftar Kontrol Akses (ACL) Linux untuk info selengkapnya tentang Daftar Kontrol Akses.

Menutup

find command adalah utilitas yang berguna untuk menampilkan direktori atau file yang perlu Anda temukan. Namun, find juga bisa menjadi alat keamanan yang hebat karena menampilkan direktori dan file dengan izin tertentu. Sebagai sysadmin, Anda dapat menggunakan informasi tersebut untuk memastikan bahwa sumber daya server diatur sesuai dengan kebijakan keamanan perusahaan Anda. Jangan lupa bahwa Anda dapat menggunakan >> redirector untuk mendokumentasikan izin ini. Dokumen semacam itu dapat digunakan sebagai dasar izin untuk audit di masa mendatang.

[ Memikirkan keamanan? Lihat panduan gratis ini untuk meningkatkan keamanan cloud hybrid dan melindungi bisnis Anda. ] 


Linux
  1. Cara Menggunakan Perintah find Linux untuk Menemukan File

  2. Bagaimana menemukan jumlah inti di Ubuntu

  3. Bagaimana cara menggunakan regex dengan perintah find?

  1. Temukan file dan direktori di Linux dengan perintah find

  2. Menemukan File di Command Line (Cara)

  3. Cara menggabungkan perintah 'tar' dengan 'find'

  1. Cara Menemukan File di CentOS 8 di Command Line

  2. Bagaimana menemukan file duplikat di Linux? Bantuan ada di sini dengan perintah fdupes!

  3. Bagaimana Menemukan Proses Dengan Deskriptor File Maksimum?