विंडोज में, अगर मैं किसी ऐप के यूएसी अनुरोध को अस्वीकार कर देता हूं, तो उसे क्यों नहीं चलना चाहिए?


17

लिनक्स / यूनिक्स पृष्ठभूमि से आते हुए, मैं यह नहीं समझ सकता कि यूएसी विंडोज में कैसे काम करता है।

मैंने सुना है कि यूएसी की तरह काम करता है sudo। मेरा लिनक्स एप्लिकेशन कॉल करने से पहले कुछ अन्य काम कर सकता है sudo

लेकिन विंडोज में, ऐसा प्रतीत होता है कि सभी एप्लिकेशन जिन्हें यूएसी पुष्टि की आवश्यकता होती है, उन्हें किसी भी वास्तविक कार्य को करने से पहले यूएसी की अनुमति होनी चाहिए! मैं एक एप्लिकेशन चलाता हूं, यह मुझसे UAC पुष्टिकरण के लिए पूछता है और मैं इसे मना कर देता हूं - एप्लिकेशन बस नहीं चलेगा।

तो क्या UAC इस तरह काम करता है?

sudo su
./run_app

बजाय:

./do_work1
sudo su
./du_work2

सभी के शानदार जवाब के लिए धन्यवाद!

जवाबों:


12

जब एक मानक उपयोगकर्ता के रूप में विंडोज में लॉग इन किया जाता है, तो एक लॉगऑन सत्र बनाया जाता है और एक टोकन जिसमें केवल सबसे बुनियादी विशेषाधिकार दिए जाते हैं। इस तरह, नया लॉगऑन सत्र परिवर्तन करने में असमर्थ है जो पूरे सिस्टम को प्रभावित करेगा। व्यवस्थापक समूह में उपयोगकर्ता के रूप में लॉग इन करते समय, दो अलग-अलग टोकन असाइन किए जाते हैं। पहले टोकन में आम तौर पर प्रशासक को दिए गए सभी विशेषाधिकार शामिल होते हैं, और दूसरा एक प्रतिबंधित टोकन होता है जो एक मानक उपयोगकर्ता को प्राप्त होता है। विंडोज शेल सहित उपयोगकर्ता अनुप्रयोग, तब प्रतिबंधित टोकन के साथ शुरू होते हैं, जिसके परिणामस्वरूप प्रशासक खाते के तहत भी विशेषाधिकार कम हो जाता है। जब कोई एप्लिकेशन उच्च विशेषाधिकार का अनुरोध करता है या "व्यवस्थापक के रूप में चलाएं" पर क्लिक किया जाता है, तो UAC पुष्टि के लिए संकेत देगा और, यदि सहमति दी जाती है,

जो मैं समझता हूं, उस अंतिम वाक्य का मतलब यह है कि या तो यूएसी संवाद को ऐप लोड होने से पहले प्रदर्शित किया जाता है ताकि इसे अप्रतिबंधित टोकन के साथ शुरू किया जाए, या फिर अगर इसे मानक उपयोगकर्ता विशेषाधिकारों के साथ शुरू किया जाए और कुछ के लिए बीच में उन्नत विशेषाधिकार की आवश्यकता हो काम, इसे उपयोगकर्ता की सहमति प्राप्त करने और फिर एक नई प्रक्रिया शुरू करने की आवश्यकता है जो तब उन्नत अधिकारों के साथ चलती है । जब एक प्रक्रिया शुरू होती है तो टोकन सौंपा जाता है जो उसके अधिकारों को निर्धारित करता है। इस टोकन को बाद में नहीं बदला जा सकता है, इसलिए यदि अधिक अधिकारों की आवश्यकता है, तो एक नई प्रक्रिया की आवश्यकता है।

इस तरह, यूएसी बिल्कुल वैसा नहीं है जैसा sudo


4
दरअसल, यह सूडो जैसा ही है। "Sudo su" चलाने से आपके वर्तमान शेल में रूट विशेषाधिकार नहीं जुड़ते हैं, यह एक अलग प्रक्रिया में एक नया शेल शुरू करता है। यदि आप उस शेल से बाहर निकलते हैं, तो आप पहले वाले पर वापस आ जाते हैं।
वायज़ार्ड

1
विंडोज और यूनिक्स के बीच का अंतर यह है कि यूनिक्स प्रोग्रामर उपप्रकारों में सामान करने के लिए उपयोग किए जाते हैं, इसलिए यह विशेष रूप से कार्य के विशेष भाग के लिए अधिक विशेषाधिकार प्राप्त उपप्रकार शुरू करने के लिए स्वाभाविक है जो विशेषाधिकारों की आवश्यकता है। विंडोज में, एक ही प्रक्रिया में सब कुछ करना अधिक सामान्य है, और नौकरी को अलग-अलग विशेषाधिकार प्राप्त और गैर-विशेषाधिकार प्राप्त भागों (अलग-अलग प्रक्रियाओं में चलने) को अलग करना कठिन काम की तरह बहुत अधिक लगता है। (बेशक, कई मामलों में यह पता लगाना बेहतर है कि आपके पास नौकरी के माध्यम से आधे रास्ते के बजाय आवश्यक विशेषाधिकार तुरंत नहीं है!)
हैरी जॉन्सटन

19

विंडोज के तहत, UAC प्रॉम्प्ट को ट्रिगर किया जाता है, जब आप एक निष्पादन योग्य को चलाने का प्रयास करते हैं , जिसे फ़ाइल में एम्बेडेड मैनिफ़ेस्ट में एलिवेशन की आवश्यकता के रूप में चिह्नित किया जाता है और आप पहले से ही एलिवेटेड नहीं चल रहे हैं। व्यवहार सेट की तुलना में सु की तुलना में अधिक है जैसे कि यह फ़ाइल है, न कि कमांड जो ओएस को बताता है कि निष्पादन योग्य को विभिन्न क्रेडेंशियल्स के साथ चलाया जाना है।


4

यह इसलिए है क्योंकि वे अलग, सादे और सरल हैं। यूएसी की तरह लागू किया जा सकताsudo था, लेकिन ऐसा नहीं था।

आप इसे नेटवर्क सुरक्षा के साथ एक सादृश्य के रूप में सोच सकते हैं।

sudoऐसा होता है जब कोई प्रोग्राम नेटवर्क एक्सेस का अनुरोध करता है और आपका फ़ायरवॉल आपको इसे देने के लिए संकेत देता है या नहीं। आप हां कह सकते हैं और प्रोग्राम सॉकेट खोल देगा, या आप कह सकते हैं कि नहीं और यह कनेक्शन की कमी के बारे में शिकायत करेगा और नेटवर्क एक्सेस के बिना यह कर सकता है (कुछ खराब डिजाइन किए गए प्रोग्राम वास्तव में दुर्घटनाग्रस्त हो सकते हैं)। उदाहरण के लिए:

function1();
input();
function2();
secure_operation(); //requests access
function3();        //may depend on results of previous operation; error-checking important

UAC उस चेतावनी की तरह है जो आपको NTFS वॉल्यूम में डाउनलोड की गई फ़ाइल को खोलने का प्रयास करते समय मिलती है। विंडोज आपको संभावित खराब होने के बारे में चेतावनी देता है और पूछता है कि क्या आप इसे (बिल्कुल भी) चलाना चाहते हैं या नहीं। यह एक सब या कुछ भी नहीं ऑपरेशन है; आप कार्यक्रम के केवल भाग पर भरोसा नहीं कर सकते हैं और अन्य नहीं। उदाहरण के लिए:

if (requires_high_priv(program)) {
  if (request_priv(program))
    program();
}
else {
  program();
}

आपको यह याद रखना होगा कि लिनक्स के विपरीत जो उन्नत उपयोगकर्ताओं और अनुप्रयोगों के लिए अधिक सक्षम है, विंडोज को विभिन्न प्रकार के उपयोगकर्ताओं के लिए यथासंभव उपयोगकर्ता के अनुकूल बनाया गया है, इसलिए सुरक्षा को सरल बनाना सर्वोपरि है। इसके अलावा, इसकी बड़ी एक्सपोज़र सतह के कारण, यह मैलवेयर के लिए लगातार लक्ष्य है, इसलिए यह या तो किसी प्रोग्राम पर पूरी तरह से भरोसा करने के लिए अधिक समझ में आता है या नहीं।


4

मैं लिनक्स आर्किटेक्चर को अच्छी तरह से नहीं जानता, इसलिए मुझे माफ कर दो अगर मुझसे कोई गलती हो जाती है, लेकिन मेरी समझ यह है कि लिनक्स और विंडोज इस संबंध में बिल्कुल अलग नहीं हैं ...

एक उदाहरण ... एक कॉपी स्क्रिप्ट जो एक सामान्य फ़ाइल की एक गैर-संरक्षित स्थान पर प्रतिलिपि और एक सुरक्षित स्थान पर कॉपी करने की कोशिश करने वाली फ़ाइल, फिर एक नियमित प्रतिलिपि बनाता है।

मेरी समझ यह है कि लिनक्स में, एक एप्लिकेशन बस चलता है और एक कार्रवाई करने की कोशिश करता है - अगर इसके पास उस कार्रवाई को करने की अनुमति नहीं है - यह उस कार्रवाई को विफल कर देगा, लेकिन ले जाएगा। ऊपर दिए गए उदाहरण में - लिनक्स में कॉपी स्क्रिप्ट को एक नियमित उपयोगकर्ता के रूप में चलाने पर, यह नियमित फाइल की नकल करेगा, एक अनुमति जारी करेगा और दूसरी फाइल को कॉपी करेगा - अगर सूडो के साथ चलाया जाता है, तो यह सभी तीन प्रतियों को करेगा।

विंडोज इस संबंध में बिल्कुल वैसा ही है - एक गैर प्रशासनिक उपयोगकर्ता के रूप में स्क्रिप्ट को चलाने से केवल एक की प्रतिलिपि होगी, अनुमति दूसरी जारी करने और अगले की प्रतिलिपि बनाने के लिए। यूएसी के साथ, यह तीनों चलाएगा।

अंतर यह है कि बहुत सारे विंडोज अनुप्रयोगों में बस एक कॉन्फ़िगरेशन सेट होता है ताकि वे डिफ़ॉल्ट रूप से यूएसी उत्थान के लिए पूछें और यदि उनके पास नहीं है तो असफल हो जाएं .... लेकिन, यह बहुत कम हो रहा है।


1
... और, मुझे यह कहना है कि मेरे उत्तर और आपके प्रश्न को फिर से पढ़ने के बाद - मैं 100% सुनिश्चित नहीं हूं कि आप क्या पूछ रहे हैं ... मुझे आशा है कि इससे मदद मिलेगी, लेकिन, यह भी निश्चित नहीं: /
विलियम हिल्सम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.