سؤال ما الفرق بين "su" مع أو بدون الواصلة؟


أنا جديدة تماما في محطة لينكس وأنا لست متأكدا تماما ما الفرق بين su مع واصلة و su بدون الواصلة ، على سبيل المثال: su - username ضد. su username.

أنا نظرت في الوثائق ولكن هناك ، لم يتم ذكر ذلك. هل يوجد آحد يساعدني رجاءا؟


72
2017-07-26 16:39


الأصل


غالبًا ما تعني "shell login" الغلاف التفاعلي. هذا مقابل قذيفة تقوم بتنفيذ برنامج نصي ومخارج. - Shahbaz
انها هناك في نفس الصفحة التي ترتبط بها: "- ، -l ، --login: جعل قذيفة قذيفة تسجيل الدخول" - ArjunShankar
لا تحتاج حتى إلى google ، فقط اكتب su --help. - Art Shayderov
من الجدير بالذكر: هذا مفيد بشكل خاص عند الاستعاضة عن الجذر لأنه بدون استخدام نقطة الدخول لبدء قذيفة تسجيل دخول جديدة ، $PATH لن يتم تحديثها وبالتالي لن تتمكن من الاتصال الثنائيات الجذر فقط في /sbin و /usr/sbin - Garrett


الأجوبة:


الفرق بين "-" و "لا يوجد واصلة" هو أن هذا الأخير تحافظ بيئتك الحالية (المتغيرات ، إلخ) ؛ السابق يخلق بيئة جديدة (مع إعدادات المستخدم الفعلي ، وليس بنفسك).

https://wiki.archlinux.org/index.php/Su

يحتوي واصلة على تأثيرين:

1) التبديل من الدليل الحالي إلى الدليل الرئيسي لل   مستخدم جديد (على سبيل المثال ، إلى / root في حالة المستخدم الأساسي) عن طريق تسجيل الدخول   مثل هذا المستخدم

2) تغيير المتغيرات البيئية إلى تلك الخاصة بالمستخدم الجديد   تمليها ~ / .bashrc بهم. وهذا هو ، إذا كانت الحجة الأولى إلى سو هي   واصلة ، سيتم تغيير الدليل الحالي والبيئة إلى ما   من المتوقع إذا كان المستخدم الجديد قد قام بالفعل بتسجيل الدخول إلى جديد   جلسة (بدلا من مجرد الاستيلاء على جلسة موجودة).


70
2017-07-26 16:43



هذا الموقع -> admon.org/difference-between-login-shell-and-non-login-shell يقول أنه عند استخدامها بدون الواصلة لا يتم تنفيذ الملفات / etc / profile و ~ / .bash_profile. ما أهمية هذين الملفين على بيئة المستخدم؟ - user574183
هذين الأمرين هي الملفات التي جلس بيئة المستخدم :) ليس تنفيذ لهم يعني حفظ بيئتك الأصلية. إعدامهم (باستخدام "-") يعني صنع ك بيئة مماثلة للمستخدم الذي "تتم محاسبته" عليه. استخدام الواصلة هو عادة ما أنت تريد - أنا استخدم "-" عادة كلما I "سو". - paulsm4
هل أمر التنفيذ مهم حقا؟ Iam يسأل هذا لأنه على هذا الموقع ذكروا أن الملفين / etc / bashrc ~ / .bashrc يتم تنفيذهما في ترتيب عكسي عندما يكون في shell غير مسجل. شخص ما يرجى مساعدتي - user574183
@ user574183 بالطبع ، على سبيل المثال إذا قام أحدهم بإعداد شيء ما ، لكن الآخر لم يعطِ شيئًا أو تعيينه إلى شيء آخر - fikr4n


su - يبدأ قذيفة تسجيل الدخول للجذر. للاختلافات إلى غلاف عادي ، انظر هذا الموقع فمثلا.


2
2017-07-26 16:43



هذا صحيح ، لكنه ليس السؤال :) - paulsm4
هذا غير صحيح ، يمكنك تشغيل su مع شرطة وإطلاقه على shell لمستخدم آخر. قم بتنفيذ ما يلي ورؤية الإخراج sudo su - "testuser" -c "whoami" - David Hergert
DavidHergert Yep ، وبدون اسم مستخدم ، يتم فتح غلاف للجذر. - Lars Kotthoff
تضمين التغريدة ردًا علىLarsKotthoff - ok، sorry، الطريقة التي تمت ترميزها ، بدا الأمر كما لو أن الشرطة هي ما يجعلها shell root ، وليس حقيقة أن ترك المستخدم افتراضا في الجذر. حتى بلدي SA المحلية المربكة لي على هذا. :) - David Hergert