जवाबों:
वे कार्यात्मक रूप से एक ही चीज़ के करीब प्रदान कर सकते हैं, लेकिन ऐसा लगता है कि 'सुडो-आई' हल्का वजन है और आपके पर्यावरण में कुछ उपयोगी संदर्भों को रखता है।
आप 'ps auxf' को देख कर अतिरिक्त प्रक्रियाएँ देख सकते हैं (f आपको वन व्यू देता है)
sudo -i इस प्रोसेस ट्री की पैदावार करता है
jkrauska 4480 0.0 0.0 76828 1656 ? S 23:38 0:00 | \_ sshd: jkrauska@pts/0
jkrauska 4482 0.0 0.0 21008 3816 pts/0 Ss 23:38 0:00 | \_ -bash
root 4675 0.6 0.0 19512 2260 pts/0 S+ 23:42 0:00 | \_ -bash
सुडो सु - इस प्रक्रिया पेड़ की पैदावार
jkrauska 4480 0.0 0.0 76828 1656 ? S 23:38 0:00 | \_ sshd: jkrauska@pts/0
jkrauska 4482 0.0 0.0 21008 3816 pts/0 Ss 23:38 0:00 | \_ -bash
root 4687 0.5 0.0 43256 1488 pts/0 S 23:42 0:00 | \_ su -
root 4688 0.5 0.0 19508 2252 pts/0 S+ 23:42 0:00 | \_ -su
ध्यान दें कि वे एक ही बैश प्रक्रिया pid, 4482 से शुरू कर रहे हैं, लेकिन यह su - एक और स्पॉन लगता है))।
आपका पहला 'sudo' पहले से ही आपके एक्सेस लेवल को रूट कर रहा है। सुडो के अंदर एक उपयोगकर्ता नाम निर्दिष्ट किए बिना सु चलाने से दो बार रूट करने के लिए वर्तमान उपयोगकर्ता बदल जाता है।
इसकी जांच करने का दूसरा तरीका स्ट्रेस -f के साथ दोनों कमांड चलाकर है।
strace -f -o sudoi sudo -i
बनाम
strace -f -o sudosu sudo su -
यदि आप उन दो उपभेदों को अलग करते हैं, तो आप सूडो सु - के लिए अधिक पूर्ववत चल रहे देखेंगे।
एक और चीज़।
sudo मैं अतिरिक्त वातावरण चर SUDO द्वारा निर्धारित बनाए रखता है।
SUDO_USER=jkrauska
SUDO_UID=1000
SUDO_COMMAND=/bin/bash
SUDO_GID=1000
sudo su - उन चर को क्लोब करता है।
उत्तर दिया: नहीं, वे समान नहीं हैं।
लंबे उत्तर: सुडो और सु - अलग-अलग कार्यक्रम हैं जो एक ही कार्य को पूरा करते हैं, जो आपको विशेषाधिकारों की ओर बढ़ा रहा है।
सु लिनक्स सिस्टम पर रूट बनने का वास्तविक तरीका हुआ करता था। हालाँकि हमेशा विशेषाधिकारों को अलग करने और कुछ ऑडिटिंग जानकारी को पीछे छोड़ने की आवश्यकता थी। इसके अलावा जब आप सु करते हैं - आप जो कुछ भी करते हैं वह जड़ के रूप में किया जाता है और उस शक्ति के लिए खतरनाक है। यहीं पर सूडो बचाव के लिए आए।
sudo में कुछ विशेषताएं हैं जो su नहीं करता है। सुडो में मुख्य तत्व यह "एक" कमांड को रूट के रूप में चलाने की क्षमता है और फिर सामान्य उपयोगकर्ता के लिए विशेषाधिकार छोड़ देता है। उदाहरण: रूट के स्वामित्व वाली फ़ाइल को निकालें।
sudo rm /root/someFile
यह कमांड फ़ाइल को मिटा देगा क्योंकि sudo हर बार जब आप sudo कमांड का उपयोग किसी अन्य कमांड से पहले करने के लिए करेंगे। आपके द्वारा चलाया गया अगला कमांड सामान्य उपयोगकर्ता की तरह चलाया जाएगा (जब तक कि आप शुरुआत में sudo कमांड को जोड़ न दें)। यह आपको प्रशासनिक कार्य पूरा करने की अनुमति देता है और फिर खतरनाक स्थितियों से बचने में आपकी मदद के लिए विशेषाधिकार छोड़ देता है।
sudo अन्य लाभ भी प्रदान करता है जैसे उपयोगकर्ता द्वारा चलाए जा सकने वाले प्रोग्राम के सेट को प्रतिबंधित करना, sudo और अन्य चीजों के तहत चलने वाले कमांड को लॉग करता है। संक्षेप में अधिक जानकारी के लिए sudo
जब आप su - या sudo करते हैं, तो आप वही काम करते हैं। यह जड़ बनता जा रहा है लेकिन ध्यान रखें कि su और sudo पूरी तरह से अलग हैं और आपको सिस्टम व्यवस्थापक के रूप में विभिन्न उपकरण प्रदान करते हैं। व्यक्तिगत रूप से मैं कभी भी su नहीं चलाता - और मेरी pam नीति इसे प्रतिबंधित करती है , जिससे कोई भी इसे चलाने की अनुमति नहीं देता है। मेरे सिस्टम में आपको हमेशा जोड़े गए लाभों के sudo कारण का उपयोग करना होगा।
अधिक जानकारी: sudo का उपयोग करना और उसे सक्षम करना
su
भी केवल एक ही आदेश चला सकते हैं:su -c 'command ...'
sudo -i
और sudo su -
, के बीच नहीं sudo
और su
।
sudo su -
व्यर्थ है?