डिफ़ॉल्ट फेडोरा बैश कलर स्कीम में "usr / bin / ping" को पीले-ऑन-रेड के रूप में दिखाया गया है - इसका क्या मतलब है?


32

निर्देशिका को सूचीबद्ध करते समय /usr/bin, कोई देखता है कि उसे ping पीले-लाल रंग में दिखाया गया है:

पिंग पीला-पर-लाल दिखा

फ़ाइल में कोई विशेष विशेषताएं नहीं हैं:

$ file /usr/bin/ping
/usr/bin/ping: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV),
dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for
GNU/Linux 2.6.32, BuildID[sha1]=2508ea2a85b70c68967b3e6345541430f5317d5f,
stripped

$ stat /usr/bin/ping
   File: '/usr/bin/ping'
   Size: 62096           Blocks: 136        IO Block: 4096   regular file
Device: 802h/2050d      Inode: 4457229     Links: 1
Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:ping_exec_t:s0
Access: 2016-11-01 10:02:57.332925719 +0100
Modify: 2016-06-22 14:01:14.000000000 +0200
Change: 2016-07-10 23:41:59.623796126 +0200
Birth: -

टर्मिनल में विभिन्न रंगों का क्या अर्थ है? , जहां हम रंग व्याख्याओं को सूचीबद्ध करने के लिए एक स्क्रिप्ट पा सकते हैं, "पीला-पर-लाल" का अर्थ "सीए" है:

फेडोरा डिफ़ॉल्ट बैश रंग योजना में देखे गए रंग

"सीए" का क्या अर्थ है? शायद इसका मतलब है कि यह फ़ाइल कहीं /usr/bin/pingऔर से हार्डलिंक की गई है ( और /usr/pingएक ही फाइल है)

PS प्रश्न को स्पष्ट करते हुए देखा गया है कि डर्टी गायन , जहां pingउबंटू पर कमांड को सेटिड रूट के रूप में दिखाया गया है, जो अजीब लगता है:

setuid रूट पिंग

जवाबों:


51

यह इंगित करता है कि pingअतिरिक्त क्षमताएं हैं:

$ getcap /usr/bin/ping
/usr/bin/ping = cap_net_raw+ep

या यहां तक ​​कि (फेडोरा पर):

$ getcap /usr/bin/ping
/usr/bin/ping = cap_net_admin,cap_net_raw+ep

यह pingकच्चे सॉकेट खोलने (और भेजने और प्राप्त करने के लिए ICMP पैकेट) को बिना चलाने के लिए अनुमति देता है root

setcap(8)और capabilities(7)अधिक जानकारी दे।

ऐतिहासिक रूप से, pingसेतु स्थापित किया गया था ताकि यह rootकच्चे सॉकेट का उपयोग करने में सक्षम हो सके; एक बार क्षमताओं के उपयोग योग्य हो जाने के बाद, कई वितरण इसके बजाय उन का उपयोग करने के लिए बंद हो जाते हैं, क्योंकि बेहतर-नियंत्रित नियंत्रण जो वे अनुमतियों पर प्रदान करते हैं, वे बेहतर लगते हैं। हालांकि, उबंटू में जाहिरा तौर पर इंस्टॉलर के साथ समस्याएँ हैं , इसलिए pingअभी भी सेतु स्थापित है root( संबंधित कोड स्क्रिप्ट में क्षमताओं को अक्षम किया गया है , जो डेबियन से आता है जहां संभव हो तो क्षमताओं का उपयोग करकेping कॉन्फ़िगर किया गया है)।

pingमैनपेज अपनी आवश्यकताओं का वर्णन इस प्रकार:

pingआवश्यकता CAP_NET_RAWक्षमता 1 निष्पादित किया जाना है) करता है, तो कार्यक्रम गैर गूंज प्रश्नों (देखें के लिए प्रयोग किया जाता है -N, तो गिरी गैर कच्चे ICMP सॉकेट का समर्थन नहीं करता, या 3) उपयोगकर्ता एक ICMP गूंज बनाने के लिए अनुमति नहीं है, तो विकल्प), या 2) सॉकेट। कार्यक्रम का उपयोग सेट-यूआईडी रूट के रूप में किया जा सकता है।


1
धन्यवाद स्टीफन। मेरा सिस्टम ज्ञान कमजोर है! मुझे यह भी पता नहीं था कि क्षमताएं मौजूद थीं, और वे कर्नेल 2.2 ... 26 जनवरी, 1999 से वहां मौजूद हैंcapabilities(7)मैन पेज के अनुसार , कोई भी मानक क्षमताओं को नियंत्रित नहीं करता है, लेकिन लिनक्स क्षमता कार्यान्वयन POSIX.1e ड्राफ्ट मानक वापस ले लेने पर आधारित है; यहाँ
बजे डेविड टोनहोफर

उनका स्क्रीन स्नैपशॉट suid root को दर्शाता है।
जोशुआ

1
@ जोशुआ उबंटू में हां, लेकिन सवाल फेडोरा (पहले स्क्रीनशॉट) के बारे में है।
स्टीफन किट

2
यह उल्लेखनीय हो सकता है कि किसी अन्य सिस्टम पर सेटिड रूट का कारण एक ही है (आईसीएमपी पैकेट भेजने और प्राप्त करने में सक्षम) एक कम महीन दाने वाली अनुमति के माध्यम से।
केविन रीड

धन्यवाद @KevinReid, मैंने अपने उत्तर में जोड़ दिया है। (उबंटू स्पष्टीकरण थोड़ा अधिक जटिल है जितना मैंने सोचा था कि यह होगा!)
स्टीफन किट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.