मेरे पास सिस्टम पर सीमित पहुंच वाला एक उपयोगकर्ता है (अर्थात, वह एक sudoer नहीं है); चलो उसे बॉब कहते हैं ।
मेरे पास एक स्क्रिप्ट या एक बाइनरी है जिसे मैं, सिस्टम एडमिनिस्ट्रेटर, ट्रस्ट और इसे रूट के रूप में चलाने में कोई समस्या नहीं होगी; चलो स्क्रिप्ट को बुलाओ get-todays-passphrase.sh
। इस स्क्रिप्ट का काम एक "निजी" (बॉब के अलावा किसी उपयोगकर्ता / समूह के स्वामित्व में, या यहां तक कि रूट) फ़ाइल से डेटा पढ़ने के लिए है /srv/daily-passphrases
, और केवल फ़ाइल से एक विशिष्ट लाइन का उत्पादन होता है: वह रेखा जो आज की तारीख से मेल खाती है ।
बॉब जैसे उपयोगकर्ताओं को कल के पासफ़्रेज़ को जानने की अनुमति नहीं है , भले ही यह फ़ाइल में सूचीबद्ध हो। इस कारण से, फ़ाइल /srv/daily-passphrases
यूनिक्स अनुमतियों द्वारा सुरक्षित है, इसलिए बॉब जैसे गैर-रूट उपयोगकर्ताओं को सीधे फ़ाइल तक पहुंचने की अनुमति नहीं है । हालांकि, उन्हें get-todays-passphrase.sh
किसी भी समय स्क्रिप्ट चलाने की अनुमति दी जाती है , जो "फ़िल्टर्ड" डेटा लौटाता है।
संक्षेप में, ( TL; DR संस्करण):
- बॉब संरक्षित फ़ाइल नहीं पढ़ सकता
- स्क्रिप्ट संरक्षित फ़ाइल पढ़ सकती है
- किसी भी समय, बॉब स्क्रिप्ट को चला सकता है जो फ़ाइल पढ़ सकता है
क्या यूनिक्स फ़ाइल अनुमतियों के भीतर ऐसा करना संभव है? या अगर बॉब एक स्क्रिप्ट शुरू करता है, तो क्या स्क्रिप्ट हमेशा बॉब जैसी ही अनुमतियों के साथ चलने के लिए बर्बाद हो जाएगी?