Setcap kullanırken izin nerede saklanır?


11

Kullanılması setcapdepolamada veya hafızada yeni izni bir yere, yazmalı bir ikili ek izinler vermek, nereye saklanır?

Olduğu lsofgibi kullanmak işe yaramaz çünkü işlem çok hızlı bir şekilde kaybolur.


Başka bir işlem kullanın. Bir kopyasını alın /usr/bin/sleepve bu kopyanın yeteneklerini verin.
Hauke ​​Laging

Yanıtlar:


10

Tarafından ayarlanan erişim denetim listeleri setfaclve tarafından ayarlanan yetenek bayrakları gibi genişletilmiş izinler setcap, geleneksel izinlerle aynı yerde saklanır chmodve dosyanın inode'unda: tarafından ayarlanan [ug] kimlik bayraklarını ayarlar .

(Aslında, diskteki ayrı bir blokta saklanabilirler, çünkü bir inode, geleneksel izin bitleri için alana sahip olan, ancak potansiyel olarak sınırlandırılmamış genişletilmiş izinler için değil, sabit bir boyuta sahiptir. Ancak bu, bu bakım setcapdisk alanı tükendi olabilir. Ama chmodkullandığı tekilleştirme bir sistemde disk alanı tükendi olabilir!)

GNU ls bir dosyanın setcap özniteliklerini görüntülemez. Bunları ile görüntüleyebilirsiniz getcap. Genişletilmiş özelliklerin tümünü şu şekilde listeleyebilirsiniz getfattr -d -m -; setcap özniteliği çağrılır security.capabilityve sizin için kodu getcapçözen bir ikili biçimde kodlanır .


4

setcap, dosya sistemi genişletilmiş özniteliğinde depolanan dosya yeteneklerini ayarlar. Bunlar man 7 capabilities:

Dosya yeteneği kümeleri, security.capability adlı genişletilmiş bir öznitelikte (bkz. Setxattr (2)) depolanır.

İçindeki CapInh / CapPrm / CapEff alanlarını inceleyerek çalışan bir işlemin özelliklerini inceleyebilirsiniz /proc/PID/status. Cevabımı bakın " Nasıl setcap komutuyla? İle ayarlanan yeteneklerine " açıklama yetenekleri exec de sürecin nasıl uygulanacağını üzerinde.


capsh --decode = okunabilir veriler elde etmek için kullanışlı olabilir.
Zulgrib
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.