`Su -` और` su --login` में क्या अंतर है?


15

से suकी आदमी पेज:

For  backward  compatibility, su defaults to not change the current directory
and to only set the environment variables HOME and SHELL (plus USER and LOGNAME
if the target user is not root).  It is recommended to always use the 
--login option (instead of  its  shortcut -) to avoid side effects caused
by mixing environments.

...

-, -l, --login
    Start the shell as a login shell with an environment similar to a real login:

        o      clears all the environment variables except TERM

        o      initializes the environment variables HOME, SHELL, USER, LOGNAME, and PATH

        o      changes to the target user's home directory

        o      sets argv[0] of the shell to '-' in order to make the shell a login shell

यह बताना मुश्किल है कि क्या -और --login(या माना जाता है -l) के बीच कोई अंतर है । अर्थात्, मैन पेज "इसके शॉर्टकट के बजाय -" कहता है, लेकिन इन सभी विकल्पों को एक साथ समूहीकृत किया गया है, और मुझे अंतर का स्पष्टीकरण नहीं दिखता है, अगर यह बिल्कुल मौजूद है।

UPD मैंने प्रश्न की जाँच की, जो मेरी समस्या को हल करने वाला है । प्रश्न मूल रूप से suऔर के बीच अंतर के बारे में है su -। और मैं के बीच अंतर के बारे में पूछ रहा हूँ su -और su --login। तो नहीं, यह बिल्कुल हल नहीं करता है।


4
मुझे लगता है कि यह वाक्य खराब लिखा गया है। यह होना चाहिएTo avoid side effects caused by mixing environments use --login option or its equivalent -. The first form is recommended because - can be placed only just before username.
jimmij

मैं आपकी डुप्लिकेट की परिभाषा नहीं जानता, लेकिन मैं इस तरह से अपने प्रश्न पर विचार नहीं करता। आपके द्वारा सुझाया गया प्रश्न मूल रूप से suऔर के बीच अंतर के बारे में है su -। और मैं के बीच अंतर के बारे में पूछ रहा हूँ su -और su --login। मुझे यहां क्या समझ नहीं आ रहा है?
x-यूरी

जवाबों:


11

डेबियन की मैनुअल प्रविष्टि अधिक ज्ञानवर्धक प्रतीत होती है:

   -, -l, --login
       Provide an environment similar to what the user would expect had the user logged
       in directly.

       When - is used, it must be specified before any username. For portability it is
       recommended to use it as last option, before any username. The other forms (-l
       and --login) do not have this restriction.

मैं कहूंगा कि वे एक दूसरे के पूरक हैं। ऊपर से एक का उपयोग करने से बचने का सुझाव है -। जिसके बारे में बोलते हुए, " किसी भी उपयोगकर्ता नाम से पहले" क्यों ?
एक्स-यूरी

7
"किसी भी उपयोगकर्ता नाम से पहले" को "उपयोगकर्ता नाम से पहले, यदि कोई हो"
के रूप में पुनःप्रकाशित

@MarkPlotnick आपको गलत लगता है
x- यूरी

@ एक्स-यूरी कि पूरी चर्चा, इस निष्कर्ष पर पहुंचती है कि मार्क प्लॉटनिक सही है, और मैनुअल, सबसे अच्छा, तार्किक रूप से अस्पष्ट है। (हालांकि हम में से अधिकांश ने ध्यान नहीं दिया)
ctrl-alt-delor-

I disagree, however, with the general point that, "before any username" can be rephrased as "before the username, if any." Perhaps Mr. Plotnik meant that the man page* should have rephrased the text using his suggestion, but the two phrases are not equivalent (as I explained at the beginning of this post).मतलब, मार्क प्लॉटनिक जानता है कि कैसे suकाम करता है, लेकिन "किसी भी उपयोगकर्ता नाम से पहले!" = "उपयोगकर्ता नाम से पहले, यदि कोई हो।" इस निष्कर्ष पर चर्चा हुई, जैसा कि मैं देख रहा हूं।
एक्स-यूरी

0

कोई अंतर नहीं है, यह चलने जैसा है;

echo bob | grep -v bob
echo bob | grep --invert-match bob

बस आशुलिपि ...


3
मुझे लगता है कि वह पर्यावरण के मिश्रण से होने वाले दुष्प्रभावों से बचने के लिए स्पष्टीकरण मांग रहा है मैन पेज का हिस्सा। क्या दुष्प्रभाव?
ज़ाचरी ब्रैडी

ज़रुरी नहीं। साइड इफेक्ट कम या ज्यादा स्पष्ट हैं, और वे लागू होते हैं जब से किसी का उपयोग नहीं -, -l, --login। मेरा प्रश्न इस बारे में है कि इसका उपयोग करने की अनुशंसा क्यों नहीं की गई -, जैसा कि '-l , and --login` के विपरीत है।
x-yuri

पोर्टेबिलिटी का मुद्दा यह होगा कि अगर आप स्क्रिप्ट लिख रहे हैं, तो मैं स्क्रिप्ट में सब का उपयोग करके रेकॉर्ड नहीं करूंगा, लेकिन एक उपयोग मामला हो सकता है, भले ही स्क्रिप्ट में सबसे पोर्टेबल विकल्प -l या --login
mikejonesey होगा

suस्क्रिप्ट लिखते समय उसका उपयोग क्यों नहीं किया जाता है?
x-yuri

डेटा लिखने वाले उपयोगकर्ता के रूप में स्क्रिप्ट क्यों नहीं लिखी जाती? यह सबसे दुर्लभ है एक usecase है जहां आपको किसी अन्य उपयोगकर्ता के रूप में कार्य करने की आवश्यकता होती है, और उसके बाद sudo होता है (जिसमें आदेशों और उपयोग किए जाने वाले पैराम्स की सीमाएं होती हैं)।
मिकोजोनिसे
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.