Yeterlilikler, tercüman ikili kodunu ayarlamadan komut dosyalarında kullanılabilir mi?


14

Şu anda cap_net_bind_service MY_USERNAME/etc/security/capability.conf dosyasında kullanıyorum .
Şimdi sadece libcap [-ng] ile etkili kümeye cap_net_bind_service+iekleyebilmek CAP_NET_BIND_SERVICEiçin en sevdiğim kodlama dilimin yorumlayıcısını ayarlamam gerekiyor.

Bu iyi çalışıyor, ancak tercüman ikiliğine herhangi bir sınır koymadan aynı şeyi elde etmenin bir yolu olup olmadığını merak ediyorum. Büyük bir sorun olmasa da (diğer kullanıcı hesaplarının kapağı yok, bu yüzden tercüman ikili üzerinde ayarlanan bitle bile kullanamazlar), yorumlayıcı her seferinde bayrağı yeniden ayarlamak zorunda kaldığım için biraz sinir bozucu güncellenmiş.

Yanıtlar:


4

Genellikle, yetenekler çocuklara miras alınır. Kılavuzda belirtildiği gibi :

Çatal (2) ile oluşturulan bir çocuk, ebeveyninin yetenek setlerinin kopyalarını devralır.

Komut dosyalarıyla ilgili sorun, doğrudan çalıştırılabilir olmamalarıdır. Çekirdek bir kontrol listesinden geçer (çekirdek kodu fs / binfmt _ *. C'de bulunur). Bunlardan biri "binfmt_script.c" dir ve bir satırın ilk satırını kontrol eder, sonra gerçek yorumlayıcıyı (satırdakini) komut dosyanızla argüman olarak çağırır. Bu nedenle, standart / ortak yorumlayıcı çağrılır ve komut dosyanızı argüman olarak okur.

Bu, yeteneği kodda değil yorumlayıcıda ayarlamanız gerektiği anlamına gelir. Aynı şey suidbitler ve diğer özel bayraklar için de geçerlidir .

Böylece ya tercümanınızın bir kopyasını yaparsınız, istediğiniz yetenekleri ayarlarsınız (ayrıca kimsenin chmod / chown aracılığıyla erişemediğini kontrol edin) ve bu kopyalanan tercümanı meskeninizde arayın. Senaryonuzda setcap mantığını da yapabilirsiniz.


Tamam, sorunun 2 yıl önce sorulduğunu görmedim ama asla kapanmadı ... Ayrıca, unix.stackexchange.com/questions/87348/… 'nin
Adrien M.

ancak yalnızca i(devralma) exec komutunu geçer. Ve ikendi başına hiçbir şey yapmaz, sadece dosyanın bir eşleşmesi varsa çalışır ive ben e(etkili) bit şey (script / çalıştırılabilir ayarlar değilse). Setuid daha da karmaşıktır, bu bir komut dosyası efekti değildir.
ctrl-alt-delor

1
Ben shebang kabuk değil çekirdek tarafından okundu düşündüm? ( stackoverflow.com/questions/3009192/how-does-the-shebang-work/… )
Philip Couling

couling haklısın. Daha sonra anladığım yanlış bir yorumdu. Ben komut dosyası yürütme için çekirdek kodu bulunduğu ipuçları ile düzeltildi.
Adrien M.
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.