Menggunakan setcap
untuk memberikan izin tambahan ke biner harus menulis izin baru di suatu tempat, di penyimpanan atau di memori, di mana ia disimpan?
Menggunakan lsof
apa adanya tidak berfungsi karena prosesnya hilang terlalu cepat.
capabilities
setcap
Zulgrib
sumber
sumber
/usr/bin/sleep
dan berikan kemampuan untuk salinan ini.Jawaban:
Izin yang diperluas seperti daftar kontrol akses yang ditetapkan oleh
setfacl
dan bendera kemampuan yang ditetapkan olehsetcap
disimpan di tempat yang sama dengan izin tradisional dan mengatur [ug] bendera id yang ditetapkan olehchmod
: dalam inode file.(Mereka sebenarnya dapat disimpan dalam blok terpisah pada disk, karena sebuah inode memiliki ukuran tetap yang memiliki ruang untuk bit izin tradisional tetapi tidak untuk izin diperpanjang yang berpotensi tidak terbatas. Tapi itu hanya penting dalam kasus yang jarang terjadi, seperti harus perawatan yang
setcap
bisa kehabisan ruang disk. Tetapi bahkanchmod
bisa kehabisan ruang disk pada sistem yang menggunakan deduplikasi!)GNU ls tidak menampilkan atribut setcap file. Anda dapat menampilkannya dengan
getcap
. Anda dapat membuat daftar semua atribut yang diperluas dengangetfattr -d -m -
; atribut setcap dipanggilsecurity.capability
dan dikodekan dalam format biner yang diterjemahkangetcap
untuk Anda.sumber
setcap mengatur kemampuan file yang disimpan dalam atribut extended filesystem. Ini dijelaskan dalam
man 7 capabilities
:Anda dapat memeriksa kapabilitas proses yang sedang berjalan dengan memeriksa bidang CapInh / CapPrm / CapEff di
/proc/PID/status
. Lihat jawaban saya untuk " Bagaimana mengatur kapabilitas dengan perintah setcap? " Untuk penjelasan tentang bagaimana kapabilitas diterapkan pada proses di exec.sumber