इसके अनुसार 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).
इसने मेरे लिए काम किया। ('#' से शुरू होने वाली लाइनें रूट हैं, '$' वाले वे रूट हैं) इस मामले में गैर-रूट उपयोगकर्ता wheel
समूह में है।
# 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': =
यह देखते हुए कि क्षमता क्या है, यह ठीक उसी तरह से फिट बैठता है जैसा आप चाहते हैं। मैंने थकावट की जाँच नहीं की है कि क्या find
कोई ऐसी सुविधा है जो आपको फ़ाइलों के अंदर बाइट्स पढ़ने की अनुमति देती है, लेकिन स्पष्ट सामान जैसे LD_PRELOAD
और लाइब्रेरी शिम हमलों को लिनक्स में सेट्यूड चेक की प्रकृति के कारण काम नहीं करना चाहिए, और क्षमता बिट्स नहीं मिलते हैं बाल प्रक्रियाओं द्वारा विरासत में मिला (या कच्चे सेतु के विपरीत) ताकि एक और बोनस हो।
ध्यान रखें कि आप जो करना चाहते हैं, वह अस्थायी फ़ाइल निर्माण या पहुंच के संबंध में गोपनीयता की संभावित चिंताओं को बढ़ाता है, और कार्यक्रम को दौड़ की स्थिति / विशेषाधिकार वृद्धि के प्रयास के लिए एक आधार के रूप में इस्तेमाल किया जा सकता है। लेकिन सही सुरक्षा जांच नहीं करते)।
इसके अलावा, कुछ खराब लिखे गए एप्लिकेशन फाइल मेटाडेटा या ट्री स्ट्रक्चर पर निर्भर हो सकते हैं जो अर्थ को व्यक्त करने या डेटा छिपाने का एक तरीका है। इसके कारण प्रतिबंधित जानकारी जारी हो सकती है या विशेषाधिकार प्राप्त दस्तावेजों को प्रकट नहीं किया जा सकता है, जिनके बारे में अन्यथा नहीं जाना जाता है (मुझे पता है कि अस्पष्टता के माध्यम से सुरक्षा, लेकिन यह एक ऐसी चीज है जो विशेष रूप से करना पसंद करते हैं, बंद स्रोत विक्रेता हैं)।
इसलिए, ध्यान रखें और इसे करने के बारे में सावधान रहें और समझें कि अभी भी इससे जुड़ा जोखिम है, भले ही स्पष्ट चीजें काम न करें।
ओह, और मुझे यह देखने में दिलचस्पी होगी कि क्या किसी के पास अवधारणा हमले का प्रमाण है जो टिप्पणियों में विशेषाधिकार वृद्धि के आधार के रूप में इस तंत्र का उपयोग करता है!