Di server Linux, saya perlu menghapus hak akses root dari sekelompok pengguna. Tetapi para pengguna memiliki alasan yang sah untuk dapat menggunakan utilitas "find" untuk mencari file berdasarkan nama file, tanggal modifikasi, dan metadata lainnya.
Di server, nama file tidak sensitif, tetapi konten file mungkin.
Saya ingin menggunakan sudo untuk memungkinkan pengguna mencari file di mana saja di server. Utilitas "find" sangat bagus, tetapi memungkinkan untuk semua jenis efek samping, seperti menggunakan "-exec" untuk menelurkan perintah sewenang-wenang.
Bisakah saya mulai find
bekerja dengan batasan saya?
Jawaban:
Bagaimana dengan cari ?
Atau mungkin bahkan ditempatkan :
sumber
locate
tidak perlusudo
; hanyaupdatedb
pekerjaannya yang membutuhkan hak istimewa khusus. Dengan demikian, pengguna Anda seharusnya tidak pernah dapat berlari atau berlarisudo locate
.-d
bendera hanya menetapkan jalur basis data? Mungkin aku salah paham denganmu.Berdasarkan
man 7 capabilities
Ini berhasil untuk saya. (baris yang dimulai dengan '#' adalah root, yang dengan '$' adalah non-root) dalam hal ini pengguna non-root ada di
wheel
grup.Mengingat apa yang diberikan kemampuan, itu cocok dengan apa yang Anda inginkan. Saya belum memeriksa apakah
find
memiliki fitur yang memungkinkan Anda membaca byte di dalam file, tetapi hal-hal yang jelas sepertiLD_PRELOAD
dan pustaka serangan shim seharusnya tidak berfungsi karena sifat pemeriksaan setuid di Linux, dan bit kemampuan tidak mendapatkan diwarisi oleh proses anak juga (tidak seperti setuid mentah) jadi itu bonus lain.Ingatlah bahwa apa yang ingin Anda lakukan memang meningkatkan kemungkinan masalah privasi terkait dengan pembuatan atau akses file sementara, dan program ini dapat digunakan sebagai dasar untuk memasang upaya peningkatan kondisi ras / hak istimewa (terhadap program yang membuat nama file terkenal) tapi jangan lakukan pemeriksaan keamanan yang benar).
Juga, beberapa aplikasi yang ditulis dengan buruk dapat mengandalkan metadata file atau struktur pohon sebagai cara untuk menyampaikan makna atau menyembunyikan data. Hal ini dapat menyebabkan pelepasan informasi terbatas atau mengungkapkan dokumen istimewa yang tidak diketahui tentang (keamanan melalui ketidakjelasan yang saya tahu, tapi ini adalah hal yang ingin dilakukan oleh vendor sumber tertutup, khususnya).
Karena itu, berhati-hatilah dan berhati-hatilah dalam melakukannya dan pahami masih ada risiko yang terkait dengan hal ini meskipun hal-hal yang jelas tidak berhasil.
Oh, dan saya akan tertarik untuk melihat apakah seseorang memiliki bukti serangan konsep yang menggunakan mekanisme ini sebagai dasar untuk eskalasi hak istimewa dalam komentar!
sumber
find
kemampuan untuk mengeksekusi beberapa kode yang disediakan pengguna secara langsung, mirip dengan apa yangawk
dapat dilakukan.Saya akan memberikan izin yang tepat kepada pengguna.
Secara default, jika umask adalah
022
, direktori dibuat sehingga semua orang dapat membuat daftar dan membuat stat file di dalamnya. Jika tidak, Anda dapat secara manual mengubah izin direktori menjadi bitwise atau izin sebelumnya dan0555
:Dan jika para pengguna itu tidak memiliki izin untuk mengeksekusi semua orangtua dari direktori itu (misalnya, direktori home pengguna lain), itu mungkin berarti Anda harus meletakkan direktori pertama di tempat lain.
Jika Anda hanya ingin membiarkan beberapa pengguna membaca dan menjalankan direktori itu, Anda dapat mengubah modenya menjadi
0750
, menempatkan pengguna tersebut dalam sebuah grup, dan mengubah pemilik grup dari direktori ke grup itu:sumber