आप रूट का नाम कैसे बदल सकते हैं?


27

ऐसा नहीं है कि इसे बदलने के लिए एक बहुत अच्छा विचार है, लेकिन मज़े के लिए। के अनुसार इस पद, अभी भी में प्रविष्टियों को बदलने के बाद भी कुछ समस्याएं हैं /etc/passwd, /etc/shadowऔर /etc/sudoers। कोई सुझाव?


खाता नाम "रूट"? टॉपप्ले निर्देशिका "/"?
अकीरा

4
उपयोगकर्ता नाम रूट
yxkb

1
तो कृपया अपना प्रश्न स्पष्ट करें ...
अकीरा

7 साल बाद, मैं सोच रहा हूं कि क्या आप इसके साथ आगे बढ़े और किस वजह से बैडस्टफ हुआ ... ^ _ ^
Mioriin

जवाबों:


29

सैद्धांतिक रूप से, इसे बदलना /etc/passwdऔर यह /etc/shadowसब आपको 'नाम बदलने' की आवश्यकता होगी। समस्या इसलिए होती है क्योंकि अस्तित्व में यूनिक्स सॉफ्टवेयर का हर एक टुकड़ा मानता है कि उपयोगकर्ता नाम 'रूट' मौजूद है और यह सुपरयूजर - मेल एलियासेस, विभिन्न डेमॉन, क्रोन ...

यदि आप वास्तव में नरक की कोशिश कर रहे हैं, find /etc -type f -exec grep -l root {} +तो आपको हर उस कॉन्फ़िगर फ़ाइल की एक सूची ढूंढने की एक अच्छी शुरुआत होनी चाहिए , जिसे आपको संभवतः बदलना होगा - लेकिन जैसा कि आपने पहले ही कहा था, लगभग हर बोधगम्य स्थिति में यह वास्तव में बुरा विचार है।

संपादित करें एक और विचार - यदि आपके पास पहले से ही (जो आपके पास नहीं होना चाहिए ), सुनिश्चित करें कि /etc/aliasesइसमें एक प्रविष्टि rootऔर एक उपयोगकर्ता नाम मौजूद है या एक ईमेल पता है जो सही मूल्यांकन करता है। बहुत से स्वचालित सिस्टमवाइड कार्य ( cronउदाहरण के लिए) ईमेल द्वारा अपना आउटपुट भेजते हैं root, जो पारंपरिक रूप से उस सिस्टम के संचालन के लिए जिम्मेदार सिस्टम एडमिनिस्ट्रेटर (ओं) को दिया जाता है।


2
/ etc / group में यूज़रनेम भी हैं ...
vrdhn

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

3
क्या यह? मैंने सोचा था कि अधिकांश एप्लिकेशन यूआईडी के लिए जाते हैं और नाम नहीं। मुझे लगता है कि आदर्श रूप से, किसी भी एप्लिकेशन को "रूट = यूआईडी 0" नहीं मानना ​​चाहिए
yxkb

2
@yxkb: आप सही हैं कोई भी एप्लिकेशन को ऐसा नहीं मानना चाहिए । लेकिन मैं वास्तव में हर एप्लिकेशन या स्क्रिप्ट के लिए 1 $ प्राप्त करना चाहता हूं जो करता है! :)
ब्रैम

1
वास्तव में। आइए हम सभी समय के बारे में सोचें जो हमने व्यक्तिगत रूप chown root …से एक शेल स्क्रिप्ट में लिखे हैं।
अपमानजनक

24

यह सब कहते हुए डर लगता है, "यह मत करो!" हास्यास्पद है। एक समय पर, हाँ, यह शायद बहुत बुरी तरह से लिखी गई स्क्रिप्टों को तोड़ता था, लेकिन मुझे संदेह है कि वे अब इतने सामान्य नहीं हैं; कम से कम मानक वितरण में नहीं।

हमें लिनक्स सर्वर के सबसेट पर रूट अकाउंट का नाम बदलने के लिए कहा गया है। इसलिए, शोध करने का प्रयास करने के बाद कि यह कैसे सही ढंग से करने के बारे में है, मैंने, इसके बजाय कई, कई पोस्ट कहा, "यह मत करो!" यदि आप ऐसा करने के लिए चुनते हैं, तो "खराब सामान" की सख्त चेतावनी के साथ। लेकिन, मुझे अभी तक "खराब सामान" के ठोस उदाहरणों के साथ कोई भी नहीं मिला है जो हो सकता है।

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

मैं "सुरक्षा में अस्पष्टता के तर्क" से अच्छी तरह से वाकिफ हूं; मुझे पता है कि रूट खाता नाम बदलने से वास्तव में सुरक्षा में बहुत सुधार नहीं होता है, रूट को SSH में अक्षम किया जाना चाहिए, आदि, मुझे पता है, यह बात नहीं है, मैं और अधिक सुनने में दिलचस्पी नहीं रखता हूं। मैं भी अधिक "आकाश गिर जाएगा" चेतावनियों में दिलचस्पी नहीं है। मैं इस तरह के बयानों की तलाश कर रहा हूं: "> यह बुरी चीज <> इस मानक पैकेज के साथ होगा <(जब तक आप ऐसा नहीं करते हैं <)।"

अब तक मेरे पास 3 सेंटोस (आरएचईएल) सिस्टम हैं जो कि मूल रूप से रूट अकाउंट का नाम बदलने के साथ कोई समस्या नहीं है। यहाँ मैंने क्या किया: मैंने / etc / passwd, / etc / shadow, / etc / group, और / etc / gshadow में खाता नाम बदल दिया। फिर / etc / में नाम रूट के लिए grepped और पोस्टफ़िक्स उपनाम फ़ाइल को संशोधित किया ताकि रूट हमारे नए खाते के नाम के लिए एक उपनाम था, इसे rojotoro कहें। (अन्य ईमेल प्रणालियों के लिए कुछ ऐसा ही किया जाना चाहिए)। मुझे यह भी पता चला कि मुझे लॉग इन करने के लिए कुछ कॉन्फ़िगरेशन को बदलने की आवश्यकता है, जब यह वर्णन किया जाए कि कौन फ़ाइलों को स्वयं बनाना चाहिए। और यह सब मैं अब तक बदल गया है।

मैंने कई init.d स्क्रिप्ट्स को देखा है, लेकिन कुछ भी नहीं बदला है, और सब कुछ बूट पर ठीक शुरू करने के लिए प्रतीत होता है। मुझे sudo का उपयोग करते समय नया खाता निर्दिष्ट करना होगा: "sudo -u rojotoro vim / etc / passwd" उदाहरण के रूप में, लेकिन मुझे वास्तव में sudoers फ़ाइल के भीतर कुछ भी बदलने की आवश्यकता नहीं थी। मुझे उम्मीद थी कि शायद सेलिनक्स के साथ कुछ मुद्दे जो हमारे पास हैं और लागू कर रहे हैं, लेकिन इस प्रकार मुझे उस प्रणाली को छूने की आवश्यकता नहीं है।

मैं यह भी देख सकता हूं कि mkdev या mkfs स्क्रिप्ट्स को समायोजित करने की आवश्यकता हो सकती है, लेकिन मैं उन का उपयोग करने की योजना नहीं बनाता, इसलिए मैंने उनकी जांच के योग्य नहीं देखा।

अगर यह सच में एक सेलेनक्स सक्षम प्रणाली पर कोई बुरा प्रभाव नहीं के साथ बदलना आसान है, तो सभी भय की निरंतरता क्यों?


11
यदि आप लोगों को अज्ञानी कहने के लिए समर्पित कई पैराग्राफों को काट देते हैं तो यह बेहतर उत्तर होगा; यह वास्तव में आवश्यक नहीं है
माइकल Mrozek

3
आप सही हैं, लेकिन मुझे इसे स्वीकार करने में थोड़ा समय लगा। इसका उद्देश्य यह सुनिश्चित करने में मदद करना था कि दूसरों को वास्तविक उपयोगकर्ता नाम बदलने से पहले अनुभव को कोसने के साथ वास्तविक अनुभव था, लेकिन इसकी वास्तव में आवश्यकता नहीं थी।
5mi11er

3
चूँकि आप CentOS पर हैं: क्या आप जाँच सकते हैं rpm -Vaकि उन सिस्टम पर क्या कहते हैं जहाँ रूट अकाउंट का नाम बदला गया है? अधिकतम आरपीएम गाइड के अनुसार "उपयोगकर्ता और समूह के पहचानकर्ता गैर-संख्यात्मक होने चाहिए" इसलिए किसी भी आरपीएम जो निर्दिष्ट करता है कि फ़ाइलों को रूट द्वारा स्वामित्व में होना चाहिए, स्थापित समय पर ऐसा करने में असमर्थ होगा। बस सोच रहा था कि आपके सिस्टम इससे कैसे निपटेंगे।
ब्राम

1
PCI में यह कहां कहा गया है कि आपको ROOT का नाम बदलना होगा?
किदबर्ला

@MichaelMrozek, आम तौर पर मैं इस बात पर सहमत होता हूं कि इस तरह का बैकस्टोरी नहीं होना चाहिए। हालांकि, इस विषय के लिए एक इंटरनेट खोज बहुत सी सटीक चेतावनियों से भरी हुई है, ओपी तीन पैराग्राफ के बारे में बात कर रहा है, मुझे लगता है कि इसे इस मामले में कहा जाता है। इसने उनके "हाउ टू" पैराग्राफ को फ्रेम करने में मदद की और मेरे लिए उनके समाधान के संदर्भ को जानना आसान बना दिया।
user1717828

7

सुझाव: ऐसा मत करो।

कुछ उपकरण यूआईडी के माध्यम से रूट करने के लिए बात करने की कोशिश करते हैं, वहां आपको समस्याएं नहीं होनी चाहिए। कुछ उपकरण मानते हैं कि आपका रूट खाता रूट कहलाता है, और टूट जाएगा। जब तक आप अपने सिस्टम को "मज़े के लिए" आधा करने के लिए तैयार नहीं होते हैं, तब तक, बस कोशिश न करें।


2
मुझे नहीं लगता कि कोई भी विवाद कर रहा है कि रूट का नाम बदलना सबसे अच्छा है, बहुत बुरा विचार है।
शादुर

khhkatz, यह सिर्फ एक सावधानी है। अगर कोई ऐसा करता है, तो उसे वापस लाने में मदद मिल सकती है यदि आप जानते हैं कि क्या होता है जब कोई रूट बदलता है
yxkb

लेख आपको नोट्स से यह विचार मिला कि इसे करने से sudo का उपयोग करते हुए लॉगिन टूट जाता है। इसलिए, आप केवल इसे वापस करने का एक तरीका है, यह एक साफ पुनर्स्थापना होगा। इसलिए, आपको इसे आज़माने की ज़रूरत नहीं है, यह स्पष्ट है कि इसे कैसे पुनर्स्थापित किया जाए। इसके अलावा, आपके हाथ में एक एलएआरटी है, वैसे ही आपका कोई उपयोगकर्ता वैसे भी कोशिश करता है।
khhkatz

Recompiling के कारण ... gogo gentoo? उन सभी पर शासन करने के लिए हर एक पुनर्निर्माण में एक पैच?
बनंगुइन

4

मेरे दिमाग में, UID 0 और /rootघर के साथ एक नया उपयोगकर्ता (उपनाम) बनाना सबसे आसान काम है ।

आप अपने रूट के डिफ़ॉल्ट शेल को ( /bin/falseया /sbin/nologinतो कोई भी इसमें लॉगिन नहीं कर सकता है, लेकिन सिस्टम अभी भी इसका उपयोग करता है) और बनाए गए नए उपनाम के लिए लॉगिन क्यों नहीं करता?

razvan@naboo ~ $ head -2 /etc/passwd
root:x:0:0:root:/root:/bin/nologin
root2:x:0:0:root:/root:/bin/bash
razvan@naboo ~ $ su -
Password:
su: Authentication failure
razvan@naboo ~ $ su root2
Password:
naboo razvan # whoami
root

यदि आप रूट के शेल को कोलोन में बदलते हैं, तो सूडो, मेल या एफडब्ल्यू क्षतिग्रस्त नहीं होंगे।


जैसा कि @ 5mi11er ने बताया है कि मैंने यह कोशिश नहीं की है, लेकिन यदि रूट का शेल सेट है /bin/falseया /sbin/nologinयह किसी भी सेवा को शुरू करने में असमर्थ है। तो उन सभी को फिर से जोड़ना होगा। प्लस पूरा उद्देश्य सुरक्षा में सुधार करना था, "रूट" अनुमतियों के साथ एक दूसरा खाता जोड़ना शायद ही सुरक्षा में सुधार करता है।
ब्रैम

मुझे लगता है कि यह समाधान अब तक का सबसे अच्छा है, यह नाम को रूट के लिए खोज की अनुमति देता है और रूट के लिए लॉगिन को निष्क्रिय करता है। आप लाइनों के क्रम को स्वैप कर सकते हैं इसलिए root2 रूट से पहले दिखाई देता है, फिर whoami root2 रिपोर्ट करेगा, अर्थात। जब पहली यूआईडी प्रविष्टि का मिलान किया जाता है, तो नाम लुकअप रोक दिया जाता है। मैं इस बात से सहमत नहीं हूं कि सेवाएं शुरू नहीं हो पाएंगी, क्योंकि कर्नेल एक प्रक्रिया शुरू करता है और इसे सिस्टम सेटअप करने के लिए uid 0 देता है (init, upstart, ...)
X Tian

2

लिनक्स विंडोज नहीं है और वर्तमान में अज्ञात भविष्य की समस्याएं पैदा किए बिना रूट का नाम आसानी से नहीं बदला जा सकता है।

रिमोट और यहां तक ​​कि स्थानीय लॉगिन को रूट के रूप में अक्षम करना एक सुरक्षित दृष्टिकोण है क्योंकि यह खाता रूट को सक्रिय रूप से अक्षम करता है! UBUNTU अनिवार्य रूप से ऐसा करता है और रूट एक्सेस के बजाय sudo को बाध्य करता है।

मूल रूप से कोई भी आपके सिस्टम पर हमला करने के लिए रूट खाते का उपयोग नहीं कर सकता है क्योंकि यह सिस्टम में लॉगिन करने के लिए उपयोग नहीं किया जा सकता है!

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

समायोजन / etc / passwd रूट को संशोधित करें: x: 0: 0: root: / root: / bin / nologin

केवल EMERGENCY USE के लिए एक सिंगल फ़ॉलबैक व्यवस्थापक खाता बनाएं! fallbackadmin: एक्स: 0: 0: जड़: / जड़: / bin / bash

सभी प्रवेशों के लिए sudo लागू करें ताकि परिवर्तन लॉग ऑडिटिंग को सटीक रूप से ट्रैक करने के लिए लागू किया जा सके जो जवाबदेही के लिए परिवर्तन करता है!

यह PCI US Gov आवश्यकताओं को डिफ़ॉल्ट व्यवस्थापक / अतिथि खातों को अक्षम करने और एकल आपातकालीन उपयोग व्यवस्थापक खाता बनाने के लिए लागू करता है।

ऑडिटिंग के लिए लॉग को संग्रहीत करने का एक तरीका यह है कि यदि केंद्रीयकृत AAA लागू नहीं किया गया है, तो सभी उपयोगकर्ता से sudo खाता एक्सेस के साथ टर्मिनल इतिहास एकत्र करें।

केवल व्यवस्थापक को लागू करने का एक उपाय केवल एक उपयोगकर्ता केवल खाता और एक sudo सक्षम खाता बनाना है, तब उपयोगकर्ता को व्यवस्थापकीय पहुँच के लिए अपने sudo सक्षम खाते पर मुकदमा करने के लिए बाध्य करना होगा।

आप स्मार्ट कार्ड प्रमाणीकरण को भी लागू कर सकते हैं यदि आप बेहतर सुरक्षा चाहते हैं तो जीएनयू / लिनक्स के लिए समाधान उपलब्ध हैं जो दो सामान्य प्रमाणीकरण के लिए यूएस कॉमन एक्सेस कार्ड सीएसी समाधान की तुलना करते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.