पाउंड (#) वर्ण के साथ उपसर्ग में सुडोकू में #include और #includedir निर्देश क्यों हैं


36

एक sudoवातावरण स्थापित करते समय मैंने देखा कि शामिल निर्देश पाउंड (#) वर्ण के साथ उपसर्ग है।

सोलारिस इसे दिखाता है:

## Read drop-in files from /etc/sudoers.d
## (the '#' here does not indicate a comment)
#includedir /etc/sudoers.d

मैनुअल (लिनक्स और साथ ही सोलारिस) बताता है:

सूडोर्स के भीतर से अन्य फ़ाइलों को शामिल करना वर्तमान में #include और #includedir निर्देशों का उपयोग करके पार्स की जा रही sudoers फ़ाइल के भीतर से अन्य sudoers फ़ाइलों को शामिल करना संभव है।

तथा:

अन्य विशेष वर्ण और आरक्षित शब्द पाउंड साइन (`# ') का उपयोग एक टिप्पणी को इंगित करने के लिए किया जाता है (जब तक कि यह एक # निर्देश का हिस्सा नहीं होता है या जब तक कि यह उपयोगकर्ता नाम के संदर्भ में नहीं होता है और एक या अधिक अंकों के बाद होता है,) जिस स्थिति में इसे यूआईडी माना जाता है)। लाइन के अंत तक टिप्पणी चरित्र और इसके बाद का कोई भी पाठ, दोनों को अनदेखा किया जाता है।

क्या किसी को पता है कि विकल्प #includeऔर #includedirनिर्देश में पाउंड चरित्र का उपयोग करने के लिए क्यों चुना गया था ?

एक साइड नोट के रूप में: मैं अक्सर egrep -v '^#|^$' configfileगैर-डिफ़ॉल्ट / सक्रिय कॉन्फ़िगर सेटिंग्स प्राप्त करने के लिए कुछ का उपयोग करता हूं , और यह स्पष्ट रूप से sudoersफ़ाइल के लिए काम नहीं करता है ।

जवाबों:


38

#include2004 में जोड़ा गया था । जो पहले से था, उसके अनुकूल होना था। मुझे नहीं लगता कि include /path/to/fileयह अस्पष्ट है, हालांकि, यह पार्स करने के लिए थोड़ा कठिन हो सकता है, क्योंकि पार्सर को include /path/to/file(निर्देश को शामिल करने के लिए ) निर्देश को अलग करना होगा ( include = fooउपयोगकर्ता includeको कमांड चलाने की अनुमति दें foo)।

लेकिन मुझे लगता है कि ज्यादातर कारण सी प्रीप्रोसेसर की तरह दिखना था, जिसे मैनुअल प्रेरणा के रूप में स्पष्ट रूप से उद्धृत करता है।


1
अच्छी पकड़ और स्पष्टीकरण, दुर्भाग्य से उन स्पष्टीकरणों को मैनुअल से हटा दिया जाता है (कम से कम उबंटू, रेडहैट, ओपनबीएसडी और सोलरबोर्ड पर)।
लैम्बर्ट

2
पहली बार जब मैंने अपनी sudoersफाइल का विश्लेषण किया तो मुझे लगा कि includeयह एक निर्देश है और #includeएक निर्देश है । कम से कम आश्चर्य के शासन ने कठोर उल्लंघन किया। मेरी राय में यह खराब डिजाइन है।
कामिल मैकियोरोस्की
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.