windows - 'रन फ़ॉर एडमिनिस्ट्रेटर ’क्या ठीक है?
windows-7 privileges (6)
विंडोज 7 पर, मेरे पास एक कमांड-लाइन प्रोग्राम है जो फ़ाइल लिखने की अनुमति त्रुटियों के कारण विफल रहता है, और हर बार जब मैं कमांड-लाइन प्रोग्राम चलाता हूं, तो एक 'अज्ञात प्रकाशक' से परेशान UAC संवादों को पॉप अप करता है।
हालांकि, अगर मैं राइट क्लिक करके और 'रन फॉर एडमिनिस्ट्रेटर' चुनकर अपना कंसोल शुरू करता हूं, तो इंस्टॉल ठीक काम करता है, भले ही यूएसी संवाद अभी भी मौजूद हों।
मेरा उपयोगकर्ता पहले से ही 'व्यवस्थापकों' के समूह का सदस्य है, इसलिए 'व्यवस्थापक के रूप में चलने वाला' वास्तव में क्या करता है जो मेरे काम को स्थापित करता है?
मेरा विशिष्ट प्रश्न ठीक है: 'व्यवस्थापक के रूप में' क्या चलता है? इस प्रकार अब तक के जवाबों में से कोई भी इसका जवाब नहीं देता है। (उदाहरण के लिए, क्या यह नई प्रक्रिया को 'प्रशासक' उपयोगकर्ता के रूप में चलाता है? या क्या यह प्रक्रिया को वर्तमान उपयोगकर्ता के रूप में चलाता है, लेकिन उन्नत विशेषाधिकारों के साथ? यदि हां, तो क्या विशेषाधिकार? मेरे द्वारा प्राप्त विशेषाधिकारों से अलग कैसे? उपयोगकर्ता 'व्यवस्थापकों' समूह में है?
(विशेष रूप से, मैं SourceForge से 'कंसोल' का उपयोग कर रहा हूं, नियमित सीएमडी विंडो नहीं, लेकिन मुझे नहीं लगता कि यह महत्वपूर्ण है। अजगर 'वितरण' पैकेज को 'अजगर' वितरण_सेटअप ओडीयू 'पर चलाकर। python.org से नव स्थापित Python3 MSI। यह 64-बिट विंडोज पर 32-बिट Python है। इंस्टॉल करके देखें Python और विंडोज 7 पर वितरित करने से "लेखन विफल रहा ... अनुमति अस्वीकृत" )
"विशेषाधिकार बढ़ाता है", "प्रतिबंधित पहुंच टोकन", "प्रशासक विशेषाधिकार" जैसी चीजें ... वैसे भी प्रशासनिक विशेषाधिकार क्या है? बकवास कर रहे हैं।
सामान्य रूप से व्यवस्थापकों के समूह से संबंधित उपयोगकर्ता से चलने वाली प्रक्रिया के लिए यहां ACCESS_TOKEN है।
0: kd> !process 0 1 test.exe
PROCESS 87065030 SessionId: 1 Cid: 0d60 Peb: 7ffdf000 ParentCid: 0618
DirBase: 2f22e1e0 ObjectTable: a0c8a088 HandleCount: 6.
Image: test.exe
VadRoot 8720ef50 Vads 18 Clone 0 Private 83. Modified 0. Locked 0.
DeviceMap 8936e560
Token 935c98e0
0: kd> !token -n 935c98e0
_TOKEN 935c98e0
TS Session ID: 0x1
User: S-1-5-21-2452432034-249115698-1235866470-1000 (no name mapped)
User Groups:
00 S-1-5-21-2452432034-249115698-1235866470-513 (no name mapped)
Attributes - Mandatory Default Enabled
01 S-1-1-0 (Well Known Group: localhost\Everyone)
Attributes - Mandatory Default Enabled
02 S-1-5-32-544 (Alias: BUILTIN\Administrators)
Attributes - Mandatory Default Enabled Owner
03 S-1-5-32-545 (Alias: BUILTIN\Users)
Attributes - Mandatory Default Enabled
04 S-1-5-4 (Well Known Group: NT AUTHORITY\INTERACTIVE)
Attributes - Mandatory Default Enabled
05 S-1-2-1 (Well Known Group: localhost\CONSOLE LOGON)
Attributes - Mandatory Default Enabled
06 S-1-5-11 (Well Known Group: NT AUTHORITY\Authenticated Users)
Attributes - Mandatory Default Enabled
07 S-1-5-15 (Well Known Group: NT AUTHORITY\This Organization)
Attributes - Mandatory Default Enabled
08 S-1-5-5-0-85516 (no name mapped)
Attributes - Mandatory Default Enabled LogonId
09 S-1-2-0 (Well Known Group: localhost\LOCAL)
Attributes - Mandatory Default Enabled
10 S-1-5-64-10 (Well Known Group: NT AUTHORITY\NTLM Authentication)
Attributes - Mandatory Default Enabled
11 S-1-16-12288 (Label: Mandatory Label\High Mandatory Level)
Attributes - GroupIntegrity GroupIntegrityEnabled
Primary Group: S-1-5-21-2452432034-249115698-1235866470-513 (no name mapped)
Privs:
05 0x000000005 SeIncreaseQuotaPrivilege Attributes -
08 0x000000008 SeSecurityPrivilege Attributes -
09 0x000000009 SeTakeOwnershipPrivilege Attributes -
10 0x00000000a SeLoadDriverPrivilege Attributes -
11 0x00000000b SeSystemProfilePrivilege Attributes -
12 0x00000000c SeSystemtimePrivilege Attributes -
13 0x00000000d SeProfileSingleProcessPrivilege Attributes -
14 0x00000000e SeIncreaseBasePriorityPrivilege Attributes -
15 0x00000000f SeCreatePagefilePrivilege Attributes -
17 0x000000011 SeBackupPrivilege Attributes -
18 0x000000012 SeRestorePrivilege Attributes -
19 0x000000013 SeShutdownPrivilege Attributes -
20 0x000000014 SeDebugPrivilege Attributes -
22 0x000000016 SeSystemEnvironmentPrivilege Attributes -
23 0x000000017 SeChangeNotifyPrivilege Attributes - Enabled Default
24 0x000000018 SeRemoteShutdownPrivilege Attributes -
25 0x000000019 SeUndockPrivilege Attributes -
28 0x00000001c SeManageVolumePrivilege Attributes -
29 0x00000001d SeImpersonatePrivilege Attributes - Enabled Default
30 0x00000001e SeCreateGlobalPrivilege Attributes - Enabled Default
33 0x000000021 SeIncreaseWorkingSetPrivilege Attributes -
34 0x000000022 SeTimeZonePrivilege Attributes -
35 0x000000023 SeCreateSymbolicLinkPrivilege Attributes -
Authentication ID: (0,14e4c)
Impersonation Level: Anonymous
TokenType: Primary
Source: User32 TokenFlags: 0x2000 ( Token in use )
Token ID: d166b ParentToken ID: 0
Modified ID: (0, d052f)
RestrictedSidCount: 0 RestrictedSids: 00000000
OriginatingLogonSession: 3e7
... और यहां एक ACCESS_TOKEN प्रक्रिया है जो सामान्य रूप से "रन के रूप में व्यवस्थापक" के साथ एक ही उपयोगकर्ता द्वारा चलती है।
TS Session ID: 0x1
User: S-1-5-21-2452432034-249115698-1235866470-1000 (no name mapped)
User Groups:
00 S-1-5-21-2452432034-249115698-1235866470-513 (no name mapped)
Attributes - Mandatory Default Enabled
01 S-1-1-0 (Well Known Group: localhost\Everyone)
Attributes - Mandatory Default Enabled
02 S-1-5-32-544 (Alias: BUILTIN\Administrators)
Attributes - Mandatory Default Enabled Owner
03 S-1-5-32-545 (Alias: BUILTIN\Users)
Attributes - Mandatory Default Enabled
04 S-1-5-4 (Well Known Group: NT AUTHORITY\INTERACTIVE)
Attributes - Mandatory Default Enabled
05 S-1-2-1 (Well Known Group: localhost\CONSOLE LOGON)
Attributes - Mandatory Default Enabled
06 S-1-5-11 (Well Known Group: NT AUTHORITY\Authenticated Users)
Attributes - Mandatory Default Enabled
07 S-1-5-15 (Well Known Group: NT AUTHORITY\This Organization)
Attributes - Mandatory Default Enabled
08 S-1-5-5-0-85516 (no name mapped)
Attributes - Mandatory Default Enabled LogonId
09 S-1-2-0 (Well Known Group: localhost\LOCAL)
Attributes - Mandatory Default Enabled
10 S-1-5-64-10 (Well Known Group: NT AUTHORITY\NTLM Authentication)
Attributes - Mandatory Default Enabled
11 S-1-16-12288 (Label: Mandatory Label\High Mandatory Level)
Attributes - GroupIntegrity GroupIntegrityEnabled
Primary Group: S-1-5-21-2452432034-249115698-1235866470-513 (no name mapped)
Privs:
05 0x000000005 SeIncreaseQuotaPrivilege Attributes -
08 0x000000008 SeSecurityPrivilege Attributes -
09 0x000000009 SeTakeOwnershipPrivilege Attributes -
10 0x00000000a SeLoadDriverPrivilege Attributes -
11 0x00000000b SeSystemProfilePrivilege Attributes -
12 0x00000000c SeSystemtimePrivilege Attributes -
13 0x00000000d SeProfileSingleProcessPrivilege Attributes -
14 0x00000000e SeIncreaseBasePriorityPrivilege Attributes -
15 0x00000000f SeCreatePagefilePrivilege Attributes -
17 0x000000011 SeBackupPrivilege Attributes -
18 0x000000012 SeRestorePrivilege Attributes -
19 0x000000013 SeShutdownPrivilege Attributes -
20 0x000000014 SeDebugPrivilege Attributes -
22 0x000000016 SeSystemEnvironmentPrivilege Attributes -
23 0x000000017 SeChangeNotifyPrivilege Attributes - Enabled Default
24 0x000000018 SeRemoteShutdownPrivilege Attributes -
25 0x000000019 SeUndockPrivilege Attributes -
28 0x00000001c SeManageVolumePrivilege Attributes -
29 0x00000001d SeImpersonatePrivilege Attributes - Enabled Default
30 0x00000001e SeCreateGlobalPrivilege Attributes - Enabled Default
33 0x000000021 SeIncreaseWorkingSetPrivilege Attributes -
34 0x000000022 SeTimeZonePrivilege Attributes -
35 0x000000023 SeCreateSymbolicLinkPrivilege Attributes -
Authentication ID: (0,14e4c)
Impersonation Level: Anonymous
TokenType: Primary
Source: User32 TokenFlags: 0x2000 ( Token in use )
Token ID: ce282 ParentToken ID: 0
Modified ID: (0, cddbd)
RestrictedSidCount: 0 RestrictedSids: 00000000
OriginatingLogonSession: 3e7
जैसा कि आप देखते हैं, एकमात्र अंतर टोकन आईडी है:
Token ID: d166b ParentToken ID: 0
Modified ID: (0, d052f)
बनाम
Token ID: ce282 ParentToken ID: 0
Modified ID: (0, cddbd)
क्षमा करें, मैं अभी तक इसमें ज्यादा रोशनी नहीं जोड़ सकता, लेकिन मैं अभी भी खुदाई कर रहा हूं।
जब आप लॉग ऑन करते हैं तो विंडोज एक एक्सेस टोकन बनाता है। यह आपको पहचानता है, जिन समूहों के आप सदस्य हैं और जो आपके विशेषाधिकार हैं। और ध्यान दें कि उपयोगकर्ता प्रशासक है या नहीं, यह निर्धारित किया जाता है कि उपयोगकर्ता प्रशासक समूह का सदस्य है या नहीं।
UAC के बिना, जब आप कोई प्रोग्राम चलाते हैं तो उसे एक्सेस टोकन की एक प्रति मिलती है, और यह नियंत्रित करता है कि प्रोग्राम क्या एक्सेस कर सकता है।
UAC के साथ, जब आप कोई प्रोग्राम चलाते हैं तो उसे प्रतिबंधित एक्सेस टोकन मिलता है। यह समूहों (और कुछ अन्य परिवर्तनों) की सूची से हटाए गए "प्रशासकों" के साथ मूल पहुंच टोकन है। भले ही आपका उपयोगकर्ता व्यवस्थापक समूह का सदस्य है, लेकिन प्रोग्राम व्यवस्थापक विशेषाधिकारों का उपयोग नहीं कर सकता है।
जब आप "प्रशासक के रूप में चलाएं" का चयन करते हैं और आपका उपयोगकर्ता एक प्रशासक होता है तो कार्यक्रम को मूल अप्रतिबंधित एक्सेस टोकन के साथ लॉन्च किया जाता है। यदि आपका उपयोगकर्ता एक व्यवस्थापक नहीं है, तो आपको एक व्यवस्थापक खाते के लिए संकेत दिया जाता है, और उस खाते के तहत कार्यक्रम चलाया जाता है।
तो ... अधिक खुदाई, परिणाम के साथ। ऐसा लगता है कि हालांकि मैंने एक प्रक्रिया को सामान्य और एक "As Administrator" के रूप में चलाया, लेकिन मुझे UAC बंद था। UAC को माध्यम में बदलने से मुझे अलग परिणाम देखने की अनुमति मिली। मूल रूप से, यह सभी अखंडता के स्तर तक उबलता है, जो 5 हैं।
उदाहरण के लिए, ब्राउज़र निम्न स्तर (1) पर चलते हैं, जबकि सेवाएँ (सिस्टम उपयोगकर्ता) सिस्टम स्तर (4) पर चलती हैं। विंडोज इंटीग्रिटी मैकेनिज्म डिजाइन में सब कुछ बहुत अच्छी तरह से समझाया गया है। जब UAC सक्षम होता है, तो प्रक्रियाएँ मध्यम स्तर (SID S-1-16-8192 AKA 0x2000 जोड़ी जाती हैं) के साथ बनाई जाती हैं, जबकि "Run as Administrator", यह प्रक्रिया उच्च स्तर (SID S-1-16-12288 उर्फ के साथ बनाई गई है) 0x3000)।
सामान्य उपयोगकर्ता (मध्यम वफ़ादारी स्तर) के लिए सही ACCESS_TOKEN है:
0:000:x86> !token
Thread is not impersonating. Using process token...
TS Session ID: 0x1
User: S-1-5-21-1542574918-171588570-488469355-1000
Groups:
00 S-1-5-21-1542574918-171588570-488469355-513
Attributes - Mandatory Default Enabled
01 S-1-1-0
Attributes - Mandatory Default Enabled
02 S-1-5-32-544
Attributes - DenyOnly
03 S-1-5-32-545
Attributes - Mandatory Default Enabled
04 S-1-5-4
Attributes - Mandatory Default Enabled
05 S-1-2-1
Attributes - Mandatory Default Enabled
06 S-1-5-11
Attributes - Mandatory Default Enabled
07 S-1-5-15
Attributes - Mandatory Default Enabled
08 S-1-5-5-0-1908477
Attributes - Mandatory Default Enabled LogonId
09 S-1-2-0
Attributes - Mandatory Default Enabled
10 S-1-5-64-10
Attributes - Mandatory Default Enabled
11 S-1-16-8192
Attributes - GroupIntegrity GroupIntegrityEnabled
Primary Group: LocadDumpSid failed to dump Sid at addr 000000000266b458, 0xC0000078; try own SID dump.
s-1-0x515000000
Privs:
00 0x000000013 SeShutdownPrivilege Attributes -
01 0x000000017 SeChangeNotifyPrivilege Attributes - Enabled Default
02 0x000000019 SeUndockPrivilege Attributes -
03 0x000000021 SeIncreaseWorkingSetPrivilege Attributes -
04 0x000000022 SeTimeZonePrivilege Attributes -
Auth ID: 0:1d1f65
Impersonation Level: Anonymous
TokenType: Primary
Is restricted token: no.
अब, अंतर इस प्रकार हैं:
S-1-5-32-544
Attributes - Mandatory Default Enabled Owner
"As Admin" के लिए, जबकि
S-1-5-32-544
Attributes - DenyOnly
गैर-प्रशासन के लिए।
ध्यान दें कि S-1-5-32-544 BUILTIN \ Administrators है। इसके अलावा, कम विशेषाधिकार हैं, और सबसे महत्वपूर्ण बात यह है:
व्यवस्थापक:
S-1-16-12288
Attributes - GroupIntegrity GroupIntegrityEnabled
गैर-व्यवस्थापन के लिए:
S-1-16-8192
Attributes - GroupIntegrity GroupIntegrityEnabled
आशा है कि ये आपकी मदद करेगा।
आगे पढ़े: http://www.blackfishsoftware.com/blog/don/creating_processes_sessions_integrity_levels
थोड़ा स्पष्ट ... एक सॉफ्टवेयर प्रोग्राम जिसमें कर्नेल मोड का उपयोग होता है, कंप्यूटर के सभी डेटा और उसके हार्डवेयर तक कुल पहुंच होती है।
चूंकि विंडोज विस्टा माइक्रोसॉफ्ट ने कर्नेल (रिंग 0) को सीधे फिर से एक्सेस करने से किसी भी और सभी I / O प्रक्रियाओं को रोक दिया है। निकटतम हम प्राप्त करते हैं एक वर्चुअल कर्नेल एक्सेस विभाजन के रूप में बनाया गया एक फ़ोल्डर, लेकिन तकनीकी रूप से स्वयं कर्नेल तक पहुंच नहीं है; कर्नेल आधे रास्ते से मिलता है।
ऐसा इसलिए है क्योंकि सॉफ़्टवेयर स्वयं ही यह बताता है कि किस टोकन का उपयोग करना है, इसलिए यदि यह व्यवस्थापक एक्सेस टोकन के लिए पूछता है, तो केवल Windows XP जैसे कर्नेल के साथ संचार की अनुमति देने के बजाय, आपको हर बार, कर्नेल तक पहुँच की अनुमति देने के लिए कहा जाता है। UAC बदलने से संकेत कम हो सकते हैं, लेकिन कर्नेल संकेत कभी नहीं देता।
यहां तक कि जब आप एक प्रशासक के रूप में लॉगिन करते हैं, तो आप एक मानक उपयोगकर्ता के रूप में प्रक्रियाएं चला रहे हैं जब तक कि आपके पास अधिकारों को ऊंचा करने के लिए संकेत नहीं दिया जाता है। मेरा मानना है कि लॉग इन के रूप में व्यवस्थापक आपको क्रेडेंशियल दर्ज करने से बचाता है। लेकिन यह व्यवस्थापक उपयोगकर्ता फ़ोल्डर संरचना को भी लिखता है।
लिनक्स में कर्नेल एक्सेस रूट एक्सेस के समान है। जब आप अपनी अनुमतियों को बढ़ाते हैं, तो आप अपने आप को C: \ की जड़ से अलग कर रहे हैं और जो भी सुंदर वातावरण चर रहे हैं।
यदि आपको याद है कि यह खराब I / O कर्नेल तक पहुंचने पर BSODs को याद करता है।
विंडोज 7 के लिए आवश्यक है कि आप जानबूझकर कुछ विशेषाधिकारों के लिए पूछें ताकि एक दुर्भावनापूर्ण प्रोग्राम आपके लिए बुरा काम न कर सके। यदि आपके द्वारा डाउनलोड किया गया मुफ्त कैलकुलेटर एक व्यवस्थापक के रूप में चलाने की आवश्यकता है, तो आपको पता होगा कि कुछ ऊपर है। आपके एप्लिकेशन के विशेषाधिकार को बढ़ाने के लिए ओएस कमांड हैं (जो उपयोगकर्ता से पुष्टि का अनुरोध करेगा)।
एक अच्छा विवरण यहां पाया जा सकता है:
अद्यतन करें
UAC अलर्ट प्रदर्शित किए बिना, प्रशासक विशेषाधिकारों की आवश्यकता वाले कुछ कार्यों को जारी रखने के लिए प्रोग्राम को सक्षम करने के लिए "रन एमिनिस्टेटर के रूप में चलाएं" केवल एक कमांड है।
यहां तक कि अगर आपका उपयोगकर्ता प्रशासक समूह का सदस्य है, तो आपके जैसे कुछ एप्लिकेशन को चलाने के लिए व्यवस्थापक विशेषाधिकारों की आवश्यकता होती है, क्योंकि एप्लिकेशन को सुरक्षित नहीं माना जाता है, अगर यह कुछ विशेष ऑपरेशन कर रहा है, जैसे कि सिस्टम फ़ाइल या कुछ और संपादन करना। यही कारण है कि विंडोज को एप्लिकेशन को निष्पादित करने के लिए प्रशासक के विशेषाधिकार की आवश्यकता होती है और यह आपको यूएसी अलर्ट के साथ सूचित करता है। सभी अनुप्रयोगों को चलाने के लिए एक एमनेस्ट्रेटर खाते की आवश्यकता नहीं होती है, और आपके जैसे कुछ एप्लिकेशन को प्रशासक के विशेषाधिकारों की आवश्यकता होती है।
यदि आप एप्लिकेशन को 'कमांडर के रूप में चलाएं' कमांड के साथ निष्पादित करते हैं, तो आप सिस्टम को सूचित कर रहे हैं कि आपका एप्लिकेशन सुरक्षित है और कुछ ऐसा कर रहा है जिसके लिए आपकी पुष्टि के साथ प्रशासक के विशेषाधिकारों की आवश्यकता है।
यदि आप इससे बचना चाहते हैं, तो नियंत्रण कक्ष पर केवल UAC को अक्षम करें।
यदि आप और आगे जाना चाहते हैं, तो Microsoft फ़ोरम पर "रन ऐज़ एडमिनिस्ट्रेटर" और विंडोज 7 एडमिनिस्ट्रेटर ग्रुप के बीच के अंतर या this सुपरबाइक प्रश्न के बीच के अंतर को पढ़ें।