Saat menggunakan setcap, di mana izin disimpan?

11

Menggunakan setcapuntuk memberikan izin tambahan ke biner harus menulis izin baru di suatu tempat, di penyimpanan atau di memori, di mana ia disimpan?

Menggunakan lsofapa adanya tidak berfungsi karena prosesnya hilang terlalu cepat.

Zulgrib
sumber
Gunakan proses lain. Buat salinan /usr/bin/sleepdan berikan kemampuan untuk salinan ini.
Hauke ​​Laging

Jawaban:

9

Izin yang diperluas seperti daftar kontrol akses yang ditetapkan oleh setfacldan bendera kemampuan yang ditetapkan oleh setcapdisimpan di tempat yang sama dengan izin tradisional dan mengatur [ug] bendera id yang ditetapkan oleh chmod: 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 setcapbisa kehabisan ruang disk. Tetapi bahkan chmodbisa 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 dengan getfattr -d -m -; atribut setcap dipanggil security.capabilitydan dikodekan dalam format biner yang diterjemahkan getcapuntuk Anda.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
4

setcap mengatur kemampuan file yang disimpan dalam atribut extended filesystem. Ini dijelaskan dalam man 7 capabilities:

Set kemampuan file disimpan dalam atribut yang diperluas (lihat setxattr (2)) bernama security.capability.

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.

sebasth
sumber
capsh --decode = berguna untuk mendapatkan data yang dapat dibaca manusia.
Zulgrib