GNU/Linux >> Belajar Linux >  >> Linux

Apa yang dimaksud dengan kemampuan ep?

# getcap ./some_bin
./some_bin =ep

Biner itu memiliki SEMUA kemampuan yang diizinkan (p) dan efektif (e) sejak awal.

Dalam representasi tekstual kemampuan, = terdepan setara dengan all= .Dari cap_to_text(3) halaman manual:

Dalam hal operator terkemuka adalah = , dan tidak ada daftar kemampuan yang disediakan, daftar tindakan dianggap mengacu pada semua kemampuan. Misalnya, tiga klausa berikut setara satu sama lain (dan menunjukkan kumpulan kemampuan yang benar-benar kosong):all=; =;cap_chown,<every-other-capability>= .

Biner semacam itu dapat melakukan apa saja sesukanya, hanya dibatasi oleh set pembatas kemampuan, yang pada sistem desktop tipikal mencakup semuanya (jika tidak, setuid binari seperti su tidak akan berfungsi seperti yang diharapkan).

Perhatikan bahwa ini hanyalah "gotcha" dari representasi tekstual yang digunakan oleh libpcap :di security.capability atribut yang diperluas dari file yang getcap akan mencetak /file/path =ep , semua bit yang bermakna secara efektif diaktifkan; untuk kosong security.capability , /file/path = (dengan = tidak diikuti oleh apa pun) akan dicetak sebagai gantinya.

Jika seseorang masih belum yakin tentang semua itu, berikut adalah eksperimen kecil:

# cp /bin/ping /tmp/ping   # will wipe setuid bits and extented attributes
# su user -c '/tmp/ping localhost'
ping: socket: Operation not permitted
# setcap =ep /tmp/ping
# su user -c '/tmp/ping localhost'  # will work because of cap_net_raw
PING localhost(localhost (::1)) 56 data bytes
64 bytes from localhost (::1): icmp_seq=1 ttl=64 time=0.073 ms
^C
# setcap = /tmp/ping
# su user -c '/tmp/ping localhost'
ping: socket: Operation not permitted

Ini bukan kemampuan.

Itu berarti set efektif dan set yang diizinkan.

Ini berarti kapabilitas akan dimasukkan ke dalam set yang diizinkan (p ), dan semua kemampuan yang diizinkan akan disalin ke dalam set efektif (e ).

e digunakan untuk program lawas (mungkin sebagian besar program saat ini), yaitu program yang tidak mengetahui tentang kemampuan, sehingga tidak dapat menyalin sendiri kemampuan dari diizinkan menjadi efektif.

Adapun mengapa ada apa yang tampak seperti dan set kosong (seperti yang ditunjukkan oleh @mosvy) penulis perpustakaan telah membingungkan semuanya dengan tidak ada (tak terhingga dan nol adalah dua angka yang paling membingungkan).


Linux
  1. Apa Artinya Dalam Keluaran Dari Ps?

  2. Apa artinya memilih (seperti dalam direktori opt)? Apakah itu singkatan?

  3. Apa arti nama antarmuka eth0 di Linux?

  1. Apa arti huruf 'u' di /dev/urandom?

  2. Apa arti ./ (dot slash) di linux?

  3. Apa arti + di akhir izin dari ls -l?

  1. Apa Artinya “–” (tanda hubung ganda)?

  2. Apa Arti Tilde (~) Di Akhir Nama File??

  3. Apa Arti Ampersand Di Akhir Baris Skrip Shell?