Batalkan `setcap` kapabilitas tambahan pada excutable

15

Sebuah jawaban untuk Linux: memungkinkan pengguna untuk mendengarkan port di bawah 1024 yang ditentukan memberikan izin tambahan yang dapat dieksekusi menggunakan setcapsedemikian rupa sehingga program dapat mengikat ke port <1024:

setcap 'cap_net_bind_service=+ep' /path/to/program

Apa cara yang benar untuk membatalkan izin ini?

pengguna2943160
sumber

Jawaban:

19

Untuk menghapus kapabilitas dari suatu file gunakan -rflag

setcap -r /path/to/program

Ini akan mengakibatkan program tidak memiliki kemampuan.

Stephen Harris
sumber
Nah, itu jauh lebih jelas setelah membaca kembali manhalaman pendek itu >.>
user2943160
11

Apa yang diposting @ stephen-harris benar. Tapi saya percaya itu menghilangkan semua kemampuan yang ditambahkan ke program dalam satu kesempatan. Untuk menghapus kemampuan tertentu, berikut ini akan berfungsi (mengikuti contoh dalam pertanyaan)

setcap 'cap_net_bind_service=-ep' /path/to/program,

Perhatikan tanda '-'. Anda dapat memverifikasi kapabilitas {efek dari perintah} di atas yang dapat dieksekusi sebagai berikut:

getcap /path/to/program

Dalam kasus setcap -r, semua kemampuan akan hilang dan hasil getcap akan kosong sedangkan '-ep' hanya menghapus apa yang Anda tambahkan dengan '+ ep'. Sangat berguna ketika Anda memberikan banyak kemampuan dan ingin menghapusnya secara selektif.

Arun GK
sumber