Göre man 7 capabilities
CAP_DAC_READ_SEARCH
* Bypass file read permission checks and directory read and execute permission checks;
* Invoke open_by_handle_at(2).
Bu benim için çalıştı. ('#' ile başlayan satırlar köktür, '$' olan satırlar kök değildir) bu durumda root olmayan kullanıcı wheel
gruptadır.
# cp /usr/bin/find /usr/bin/sudofind
# chmod 710 /usr/bin/sudofind
# chown root:wheel /usr/bin/sudofind
# setcap cap_dac_read_search+ep /usr/bin/sudofind
# exit
$ find /root
find: ‘/root’: Permission denied
$ sudofind /root
/root /root
/root/Testbed
...
...
$ sudofind /root -exec cat {} \;
cat: /root: Permission denied
cat: /root/Testbed: Permission denied
$ sudofind /root -printf "%u %g %m %c %p\n"
root root 644 Mon Apr 20 09:20:48.0457518493 2015 /root
root root 755 Fri Dec 4 02:34:03.0016294644 2015 /root/Testbed
...
...
$ # Capability inheritance test..
$ sudofind /root -exec /bin/sleep 10 \; &
[1] 17017
$ getpcaps $(pgrep find)
Capabilities for `17017': = cap_dac_read_search+ep
$ getpcaps $(pgrep sleep)
Capabilities for `17019': =
Yeteneğin verdiği değer göz önüne alındığında, tam olarak istediğiniz şeye uyuyor. find
Dosyaların içindeki baytları okumanıza izin veren bir özelliğe sahip olup olmadığını kapsamlı bir şekilde kontrol etmedim , ancak LD_PRELOAD
Linux'ta setuid kontrollerinin doğası nedeniyle bariz şeyler ve kütüphane şim saldırıları çalışmamalı ve yetenek bitleri alamıyor alt süreçlerden miras alınan (ham setuid'in aksine) başka bir bonus.
Yapmak istediğiniz şeyin geçici dosya oluşturma veya erişimle ilgili olası gizlilik endişelerini artırdığını ve programın bir yarış durumu / ayrıcalık yükseltme girişimini (iyi bilinen dosya adları oluşturan programlara karşı) temel almak için kullanılabileceğini unutmayın. ancak doğru güvenlik kontrollerini yapmayın).
Ayrıca, bazı kötü yazılmış uygulamalar, anlam iletmenin veya verileri gizlemenin bir yolu olarak dosya meta verilerine veya ağaç yapısına güvenebilir. Bu, kısıtlı bilgilerin yayınlanmasına neden olabilir veya başka türlü bilinmeyen ayrıcalıklı belgelerin açığa çıkmasına neden olabilir (bilinmeyen gizlilik yoluyla güvenlik biliyorum, ancak bu, özellikle kapalı kaynaklı satıcıların maalesef yapmaktan hoşlandığı bir şeydir).
Bu nedenle, dikkatli olun ve bunu yapmak konusunda dikkatli olun ve bariz şeyler işe yaramasa bile bununla ilişkili risklerin olduğunu anlayın.
Oh, ve birinin yorumlarda ayrıcalık yükseltme için bir temel olarak bu mekanizmayı kullanan bir kavram saldırısı kanıtı olup olmadığını görmek isterim!