सु विश्व निष्पादन योग्य क्यों है?


20

मेरे पास एक हेडलेस सर्वर है जिसे कई उपयोगकर्ताओं द्वारा दूरस्थ रूप से लॉग इन किया जाता है। अन्य उपयोगकर्ताओं में से कोई भी sudoers फ़ाइल में नहीं है, इसलिए वे रूट प्राप्त नहीं कर सकते हैं sudo। हालांकि, अनुमतियों के बाद से पर suकर रहे हैं -rwsr-xr-xउन्हें जानवर बल के लिए रूट पासवर्ड का प्रयास करने से रोक रहा है कोई बात नहीं है।

कोई यह तर्क दे सकता है कि यदि कोई उपयोगकर्ता रूट पासवर्ड जानता है तो वे वैसे भी सिस्टम से समझौता कर सकते हैं, लेकिन मुझे नहीं लगता कि यह मामला है। OpenSSH के साथ कॉन्फ़िगर किया गया है PermitRootLogin noऔर PasswordAuthentication no, और अन्य उपयोगकर्ताओं में से कोई भी सर्वर से शारीरिक पहुंच है। जहां तक ​​मैं बता सकता हूं, दुनिया /usr/bin/suमेरे सर्वर पर रूट प्राप्त करने का प्रयास करने वाले उपयोगकर्ताओं के लिए एकमात्र एवेन्यू है।

इसमें मेरे लिए और भी चौंकाने वाली बात है कि यह उपयोगी भी नहीं लगती। यह मुझे करने suकी आवश्यकता के बजाय सीधे चलाने की अनुमति देता है sudo su, लेकिन यह शायद ही एक असुविधा है।

क्या मैं कुछ देख रहा हूँ? क्या विश्व suऐतिहासिक कारणों से सिर्फ वहां पर अनुमति देता है? क्या उस अनुमति को हटाने के लिए कोई डाउनसाइड है जो मैंने अभी तक सामना नहीं किया है?


9
"यह मुझे सूडो सु करने की आवश्यकता के बजाय सीधे सु को चलाने की अनुमति देता है, लेकिन यह शायद ही एक असुविधा है।" - वैकल्पिक sudoस्थापित किए बिना सिस्टम के बारे में क्या ? मैं कहूंगा कि यह एक बहुत बड़ी असुविधा है;)
marcelm

1
आप हमेशा / बिन / सु के लिए पहुंच को प्रतिबंधित कर सकते हैं, लेकिन यह भी याद रखें कि / usr / bin / pkexec के लिए भी ऐसा ही करें।
जपा

6
मैं इस प्रश्न के पीछे की प्रेरणा को समझ नहीं सकता। ऐसा लगता है कि आप सोच रहे थे कि सु को विश्व निष्पादन योग्य बनाने की आवश्यकता क्यों है, लेकिन विकल्प का क्या मतलब होगा? यही है, यदि र केवल रूट (?) द्वारा निष्पादित किया गया था, तो आप क्या सोच रहे थे कि इसका उपयोग किया जा सकता है?
डेविड जेड

1
@ डेविड, वास्तव में, यह वास्तव में रूट के लिए उपयोगी है! आप इसके साथ उपयोगकर्ताओं को जल्दी से स्विच कर सकते हैं।
वैल का कहना है कि मोनिका

1
@val हाँ, यह सच है। तथ्य यह है कि रूट सु का उपयोग कर सकता है यहां प्रश्न में नहीं है। (पुनर्मुद्रण पर, मैं देख सकता हूं कि मेरी पिछली टिप्पणी अन्यथा कैसे सुझाएगी, लेकिन इसका मतलब यह नहीं है।) मैं उत्सुक हूं कि Altay_H ने इस बारे में पूछने से पहले क्या सोचा था।
डेविड जेड

जवाबों:


39

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

उदाहरण के लिए, यदि मैं उपयोगकर्ता के रूप में लॉग इन हूं jim, और मैं उस समस्या की जांच करना चाहता हूं mike, जिसने रिपोर्ट की है, लेकिन जिसे मैं पुन: उत्पन्न करने में असमर्थ हूं, तो मैं लॉग इन करने की कोशिश कर सकता हूं mike, और उस कमांड को चला रहा हूं जो उसे परेशान कर रही है।

13:27:20 /home/jim> su -l mike
Password:(I type mike's password (or have him type it) and press Enter)
13:27:22 /home/mike> id
uid=1004(mike) gid=1004(mike) groups=1004(mike)
13:27:25 /home/mike> exit  # this leaves mike's login shell and returns to jim's
13:27:29 /home/jim> id
uid=1001(jim) gid=1001(jim) groups=1001(jim),0(wheel),5(operator),14(ftp),920(vboxusers)

एक पूर्ण लॉगिन (प्रति पृष्ठ) का अनुकरण करने -lके suकारणों के विकल्प का उपयोग करना man

mikeहालाँकि, उपरोक्त पासवर्ड की जानकारी आवश्यक है । अगर मेरे पास sudoपहुंच है, तो मैं mikeउसके पासवर्ड के बिना भी लॉग इन कर सकता हूं ।

13:27:37 /home/jim> sudo su -l mike
Password:(I type my own password, because this is sudo asking)
13:27:41 /home/mike>

संक्षेप में, suनिष्पादन योग्य पर अनुमतियाँ जैसा कि आप दिखाते हैं, इसका कारण suयह है कि एक सामान्य-प्रयोजन उपकरण है जो सिस्टम पर सभी उपयोगकर्ताओं के लिए उपलब्ध है।


1
यह काफी काम की बात है। चूंकि मैं उपयोग करने की आदत में हूं इसलिए मैं sudoभूल गया कि suइसका उपयोग केवल अधिक से अधिक के लिए किया जा सकता है sudo -s। और एक sudoer होने के बिना यह ssh कुंजियों में बदलाव किए बिना उपयोगकर्ताओं को स्विच करने का एकमात्र तरीका होगा। मेरे उपयोग के मामले के लिए यह अनुमति को हटाने का एक और कारण है, लेकिन मुझे अब समझ में आया है कि दुनिया निष्पादित अनुमति डिफ़ॉल्ट रूप से क्यों सेट की गई है। धन्यवाद!
Altay_H

1
एक अन्य बिंदु यह sudoभी है कि , का उपयोग किसी अन्य उपयोगकर्ता की पहचान को मानने के लिए भी किया जा सकता है root। यह केवल उस पहचान के पासवर्ड की आवश्यकता के बिना किसी अन्य पहचान को संभालने सहित, किसके साथ क्या कर सकता है, इस पर बारीक नियंत्रण रखता है ।
चेप्टर

भ्रम का एक हिस्सा यह है कि लोगों को लगता है कि यह su"सुपर उपयोगकर्ता" के लिए खड़ा है, जो यह करता है, जब कोई उपयोगकर्ता निर्दिष्ट नहीं होता है (या रूट निर्दिष्ट विशिष्टता है) लेकिन यह "स्विच उपयोगकर्ता" के लिए भी खड़ा है। suइसलिए इसका दूसरा उपयोग आसानी से भुला दिया जाता है।
मोंटी हार्डर

20

ऐतिहासिक रूप से (गैर-जीएनयू यूनियनों पर), ऐसा नहीं था या कम से कम यह मैन्युअल रूप से जांचा जाता था कि क्या आप "पहिया" के लिए अनुमति वाले समूह में हैं su। GNU संस्करण suने समय पर पहुँच नियंत्रण के बारे में RMS की विचारधारा के कारण इस कार्यक्षमता को पुन: पेश नहीं किया:

Why GNU `su' does not support the `wheel' group
===============================================

   (This section is by Richard Stallman.)

   Sometimes a few of the users try to hold total power over all the
rest.  For example, in 1984, a few users at the MIT AI lab decided to
seize power by changing the operator password on the Twenex system and
keeping it secret from everyone else.  (I was able to thwart this coup
and give power back to the users by patching the kernel, but I wouldn't
know how to do that in Unix.)

   However, occasionally the rulers do tell someone.  Under the usual
`su' mechanism, once someone learns the root password who sympathizes
with the ordinary users, he or she can tell the rest.  The "wheel
group" feature would make this impossible, and thus cement the power of
the rulers.

   I'm on the side of the masses, not that of the rulers.  If you are
used to supporting the bosses and sysadmins in whatever they do, you
might find this idea strange at first.

आप Googling द्वारा "व्हील ग्रुप आरएमएस" या इसी तरह के मामले पर बहुत अधिक पा सकते हैं।


3
यह एकमात्र सही उत्तर है। सेटिंग जानबूझकर, ऐतिहासिक है, और वास्तव में इसका कारण है। सभी तकनीकी ब्लाब्ला बस इतना ही है - ब्लाबला। आप आधुनिक यूनिक्स में "पहिया" समूह को पूरी तरह से फिर से प्रस्तुत कर सकते हैं।
टॉम

10

हालांकि, अनुमतियों के बाद से पर suकर रहे हैं -rwsr-xr-xउन्हें जानवर बल के लिए रूट पासवर्ड का प्रयास करने से रोक रहा है कोई बात नहीं है।

हाँ। आपके सामान्य लिनक्स सिस्टम को मानते हुए, pam_unix.soमॉड्यूल ~ दो सेकंड तक एक असफल प्रमाणीकरण प्रयास में देरी करता है, लेकिन मुझे नहीं लगता कि एक साथ प्रयासों को रोकने के लिए कुछ भी है।

विफल प्रयास निश्चित रूप से लॉग इन हैं:

Aug 16 22:52:33 somehost su[17387]: FAILED su for root by ilkkachu

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

इसमें मेरे लिए और भी चौंकाने वाली बात है कि यह उपयोगी भी नहीं लगती।

बेशक यह उपयोगी है, यह आपको अपने आप को ऊपर उठाने की अनुमति देता है root, यदि आप पासवर्ड जानते हैं।

यह मुझे करने suकी आवश्यकता के बजाय सीधे चलाने की अनुमति देता है sudo su, लेकिन यह शायद ही एक असुविधा है।

sudo suकुछ हद तक बेमानी है। दो कार्यक्रमों का उपयोग करने की आवश्यकता नहीं है जो आपको किसी अन्य उपयोगकर्ता के रूप में प्रोग्राम चलाने की अनुमति देने के लिए हैं, एक काफी पर्याप्त है। बस का उपयोग करें sudo -iया sudo -s(या sudo /bin/bashआदि) यदि आप खोल चलाना चाहते हैं।

क्या मैं कुछ देख रहा हूँ? क्या ऐतिहासिक कारणों से विश्व सु पर अनुमति देता है?

ऊपर देखो। ठीक है, सभी प्रणालियों के sudoविकल्प के रूप में नहीं है, मुझे यकीन नहीं है कि आप उस ऐतिहासिक पर विचार करते हैं।

क्या उस अनुमति को हटाने के लिए कोई डाउनसाइड है जो मैंने अभी तक सामना नहीं किया है?

वास्तव में नहीं, जहां तक ​​मुझे पता है। मुझे लगता है कि कुछ प्रणालियों ने suसेट किया है ताकि केवल एक विशेष समूह (" wheel") के सदस्य ही इसे चला सकें। आप चाहें तो ऐसा कर सकते हैं sudo( chown root.sudousers /usr/bin/sudo && chmod 4710 /usr/bin/sudo)।

या आप बस या तो या दोनों कार्यक्रमों को हटा सकते हैं यदि आपको उनकी आवश्यकता नहीं है। हालांकि डेबियन पर, पैकेज के suसाथ आता है login, इसलिए शायद पैकेज को एक पूरे के रूप में निकालना अच्छा नहीं है। (और जोड़ी बनाना loginऔर suएक साथ ऐसा करना कुछ ऐतिहासिक लगता है।)


1
बीएसडी सिस्टम wheelका उपयोग करने के लिए उपयोगकर्ताओं को समूह में होना चाहिए su। कुछ बीएसडी सिस्टम हैं (मैं केवल ओपनबीएसडी के लिए बोल सकता हूं) जो बिल्कुल भी जहाज नहीं करता है sudo(यह एक 3-पार्टी पैकेज है)। OpenBSD doasकी मूल बातों का पुन: कार्यान्वयन है sudo, लेकिन यह एक नई प्रणाली को स्थापित करने पर डिफ़ॉल्ट रूप से अक्षम है।
Kusalananda

@Kusalananda आप केवल में रहना होगा wheelयदि आप चाहते हैं suजड़ है। कोई भी खाता suकिसी भी गैर-रूट खाते के लिए कर सकता है जिसके लिए उनके पास wheelसमूह में उनकी सदस्यता की परवाह किए बिना पासवर्ड है ।
जिम एल।

मैं यह सुनिश्चित करने के लिए 'sudo su -' चलाता हूं कि मुझे प्राप्त होने वाला रूट शेल मेरे उपयोगकर्ता खाते से प्रदूषित वातावरण के बिना, एक पूर्ण रूट लॉगिन है। आरएचईएल पर डिफ़ॉल्ट सूडोर्स में काफी कुछ पर्यावरण चर शामिल होते हैं जो निष्पादन योग्य होते हैं (जैसे PS1)।
jsbillings

@jsbillings, हम्म, ठीक है। करता है suतो पर्यावरण को साफ? ऐसा लगता नहीं है कि डेबियन पर ...
ilkachachu

"सु -" मुझे पता है हर लिनक्स में करता है। पानी का छींटा।
jsbillings

7

आपके पास पहले से ही कुछ अच्छे उत्तर हैं, लेकिन आपके पोस्ट का एक हिस्सा है जिसे वे संबोधित नहीं करते हैं।

जहाँ तक मैं बता सकता हूँ, दुनिया / usr / bin / su पर अनुमति निष्पादित करती है, मेरे सर्वर पर रूट प्राप्त करने का प्रयास करने वाले उपयोगकर्ताओं के लिए एकमात्र एवेन्यू है।

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


1

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

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

मुझे सर्वसम्मति के बारे में नहीं पता है, लेकिन मैं सीधे और खुद के लिए सुरक्षा समस्या के रूप में लॉग इन करने में सक्षम होने पर विचार करूंगा।


-2

अन्य उत्तर सही कह रहे हैं "सु" आपको रूट के अलावा अन्य खातों में लॉग इन करने की अनुमति देता है।

एक नोट के बारे में "sudo su" हालांकि। यह वास्तव में रूट पासवर्ड जाने बिना आपको रूट खाते में लॉग इन करने की अनुमति देता है। आपको उस खाते का पासवर्ड जानना होगा जिसे आप sudo चलाते हैं और साथ ही उस खाते को sudoers फ़ाइल में होना चाहिए।


3
यह पूरी तरह से इस बात पर निर्भर करता है कि क्या sudoersहै targetpwया rootpwसेट है।
मुरु

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