السلام عليكم
الموضوع الأول عن sudo .
أولاً. سبب طرح هذا الموضوع !:
ربما كان الموضوع قديما. لكني لحظت أن كثير من الإخوة المتقدمين في الكثير من المواضيع يستخدمون الأمر sudo مع التطبيقات الرسومية وهذا لا ينبغي للمبتدئيين فما بالكم بالمتقدمين منهم.
و الاغرب من ذلك أن معظم وثائق أوبونتوUbuntu تطالبك بستخدام الأمر sudo حتى مع التطبيقات الرسومية ، و الكثير من الكتب الموضوعة لتوزيعة أبونتو تستخدم sudo كما في هذا المثال :
مع أنه كان ينبغي للأمر أن يكون كتالي:
و ترك sudo لتطبيقات سطر الأوامر كما في هذا المثال :
قد تسأل نفسك الآن لكن ما المشكلة ؟ و لماذا هذا الأمر كله ؟
حسنا ، حتى أكون صريحا معكم ، في أغلب الأوقات لا توجد مشكلة. بالنسبة للكثير من التطبيقات ، يمكنك تشغيلهم بستخدم sudo ولن تحدث أي مشكلة.
لكن هناك حالات أخرى ، الأمر مختلف تماما فيها. مثل هذه Firefox extensions أو أكثر تعقيد مثل: لن تصبح قادر على دخول إلى النظام بسبب تغيير حدث في الأذونات permissions في ملف ICEauthority …. يمكنك الإطلاع أكثر على هذه المشكلة هنا.
هذه الأخطاء تحدث أحيانا لأن sudo تستهل أو تبدأ التطبيق بصلحيات مستخدم root و في نفس الوقت تستخدم ملف التكوين/ الأعداد للمستخدم العادي.
على سبيل المثال: لو بدأت برنامج فيرفوكس بالأمر :
في هذه الحالة سوف يستخدم ملف اعدادت برنامج فيرفوكس التابع لمستخدم root .
ولكن إذا بدأت فيرفوكس بالأمر:
سوف يشتغل بصلحيات مستخدم root ولكن يستخدم ملف الإعدادت/ التكوين للمستخدم العادي (في هذه الحالة ، يمكنك أن تلحظ أن الصفحة الرئيسية لفيرفوكس مختلفة تماما).
جانب سلبي أخر. عند تشغيل التطبيقات الرسومية مع sudo يكون عليك دائما تفيذ الأمر من الطرفية Terminal. و إذا لم تستخدم الأمر المناسب gksudo أو kdesu ، فلن تكون قادر على استخدمه كرمز سطح مكتب icon launcher أو اختصار لوحة مفاتيح و لن يكن هناك مربع حوار ظاهري لإدخال كلمة السر .
أيضا ستجد أن هناك بعض التطبيقات الرسومية لن تعمل مع الأمر sudo . على سبيل المثال برنامج Kate يمكن تشغيله على النحو التالي:
لكن لا يمكن تشغيله على هذا النحو:
خلاصة القول :
معظم الوقت لن تجد مشكلة لستخدامك sudo مع التطبيقات الرسومية ،مع ذلك في أوقات أخرى ، ستواجه بعض المشاكل ،و إذا حدث ذلك. صدقني، سيكون الأمر مزعجاً جداً.
فقط عليك تذكر أن الأمر gksudo وkdesu للتطبيقات الرسومية. و sudo لتطبيقات سطر الأوامر.
و أنتهى الموضوع.
***
لكن أنتظر …... الأمر gksudo أحيانا يعطي أخطاء ...مع انه يعمل؟
الأمر gksudo هو الأمر المناسب لتشغيل التطبيقات الرسومية .إلا أنه يبدو للمستخدم أحيانا أنه يقدم ما يبدو خطأ. على سبيل المثال:
هذا خطأ برمجي bug:
there's already been a bug report filed on the message appearing
و قد تم تصنيفه على أنه ذا low priority .
ما عليك هو ، فقط تجاهل رسالة الخطأ. و ستمر في استخدام sudo مع التطبيقات الغير رسومية حتى لا تعبث بملف ~/.ICEauthority أو ملفات الإعداد/التكوين لمستخدم أخر دون قصد.
*********
الموضوع الثاني ذو علاقة بالموضوع الأول و هو عن الإختلاف بين sudo su و sudo -s
يقول كاتب الموضوع ؛ لقد قمت بهذه التجربة:
و وجدت الاختلافات التالية:
"sudo -s"
"sudo su"
لاحظ الفرق في $HOME. كمستخدم root مع تعيين المتغيير $HOME لدليل HOME للمستخدم العاديapplic هذا يمكن أن يسبب مشاكل. على سبيل المثال ، إذا قمت بتشغيل تطبيق رسومي معين ، فإن ملف~/.Xauthority الخاص بالمستخدم العادي قد يعاد كتابته من قبل المستخدم root . و هذا يسبب مشاكل للمستخدم العادي فيما بعد. مثلا كأن يصبح غير قادر على تشغيل تطبيقات معينة عن طريق cron.
خلاصة:
خلاصة القول:
"sudo -i" هو الأمر الصحيح الذي يمكنك استخدمه عندما تريد التحول إلى قشرة الروتroot shell دون تلوث لبيئة المستخدم العادي.
شكراً
عفوا إذا كان هناك أي خطأ ..…...
و السلام عليكم
المصدر : http://ubuntuforums.org
http://www.psychocats.net/ubuntu/graphicalsudo
الموضوع الأول عن sudo .
أولاً. سبب طرح هذا الموضوع !:
ربما كان الموضوع قديما. لكني لحظت أن كثير من الإخوة المتقدمين في الكثير من المواضيع يستخدمون الأمر sudo مع التطبيقات الرسومية وهذا لا ينبغي للمبتدئيين فما بالكم بالمتقدمين منهم.
و الاغرب من ذلك أن معظم وثائق أوبونتوUbuntu تطالبك بستخدام الأمر sudo حتى مع التطبيقات الرسومية ، و الكثير من الكتب الموضوعة لتوزيعة أبونتو تستخدم sudo كما في هذا المثال :
كود:
[SIZE=2]sudo gedit /etc/apt/sources.list[/SIZE]
مع أنه كان ينبغي للأمر أن يكون كتالي:
كود:
gksudo gedit /etc/apt/sources.list
و ترك sudo لتطبيقات سطر الأوامر كما في هذا المثال :
كود:
sudo nano /etc/apt/sources.list
قد تسأل نفسك الآن لكن ما المشكلة ؟ و لماذا هذا الأمر كله ؟
حسنا ، حتى أكون صريحا معكم ، في أغلب الأوقات لا توجد مشكلة. بالنسبة للكثير من التطبيقات ، يمكنك تشغيلهم بستخدم sudo ولن تحدث أي مشكلة.
لكن هناك حالات أخرى ، الأمر مختلف تماما فيها. مثل هذه Firefox extensions أو أكثر تعقيد مثل: لن تصبح قادر على دخول إلى النظام بسبب تغيير حدث في الأذونات permissions في ملف ICEauthority …. يمكنك الإطلاع أكثر على هذه المشكلة هنا.
هذه الأخطاء تحدث أحيانا لأن sudo تستهل أو تبدأ التطبيق بصلحيات مستخدم root و في نفس الوقت تستخدم ملف التكوين/ الأعداد للمستخدم العادي.
على سبيل المثال: لو بدأت برنامج فيرفوكس بالأمر :
كود:
gksudo firefox
في هذه الحالة سوف يستخدم ملف اعدادت برنامج فيرفوكس التابع لمستخدم root .
ولكن إذا بدأت فيرفوكس بالأمر:
كود:
sudo firefox
سوف يشتغل بصلحيات مستخدم root ولكن يستخدم ملف الإعدادت/ التكوين للمستخدم العادي (في هذه الحالة ، يمكنك أن تلحظ أن الصفحة الرئيسية لفيرفوكس مختلفة تماما).
جانب سلبي أخر. عند تشغيل التطبيقات الرسومية مع sudo يكون عليك دائما تفيذ الأمر من الطرفية Terminal. و إذا لم تستخدم الأمر المناسب gksudo أو kdesu ، فلن تكون قادر على استخدمه كرمز سطح مكتب icon launcher أو اختصار لوحة مفاتيح و لن يكن هناك مربع حوار ظاهري لإدخال كلمة السر .
أيضا ستجد أن هناك بعض التطبيقات الرسومية لن تعمل مع الأمر sudo . على سبيل المثال برنامج Kate يمكن تشغيله على النحو التالي:
كود:
[SIZE=2]kdesu kate[/SIZE]
لكن لا يمكن تشغيله على هذا النحو:
كود:
[SIZE=2]sudo kate[/SIZE]
خلاصة القول :
معظم الوقت لن تجد مشكلة لستخدامك sudo مع التطبيقات الرسومية ،مع ذلك في أوقات أخرى ، ستواجه بعض المشاكل ،و إذا حدث ذلك. صدقني، سيكون الأمر مزعجاً جداً.
فقط عليك تذكر أن الأمر gksudo وkdesu للتطبيقات الرسومية. و sudo لتطبيقات سطر الأوامر.
و أنتهى الموضوع.
***
لكن أنتظر …... الأمر gksudo أحيانا يعطي أخطاء ...مع انه يعمل؟
الأمر gksudo هو الأمر المناسب لتشغيل التطبيقات الرسومية .إلا أنه يبدو للمستخدم أحيانا أنه يقدم ما يبدو خطأ. على سبيل المثال:
كود:
[SIZE=2](gedit:####): GnomeUI-WARNING **: While connecting to session manager: Authentication Rejected, reason : None of the authentication protocols specified are supported and host-based authentication failed.[/SIZE]
هذا خطأ برمجي bug:
there's already been a bug report filed on the message appearing
و قد تم تصنيفه على أنه ذا low priority .
ما عليك هو ، فقط تجاهل رسالة الخطأ. و ستمر في استخدام sudo مع التطبيقات الغير رسومية حتى لا تعبث بملف ~/.ICEauthority أو ملفات الإعداد/التكوين لمستخدم أخر دون قصد.
*********
الموضوع الثاني ذو علاقة بالموضوع الأول و هو عن الإختلاف بين sudo su و sudo -s
يقول كاتب الموضوع ؛ لقد قمت بهذه التجربة:
كود:
[SIZE=2][email protected]:~% sudo su [sudo] password for applic: [email protected]:/home/applic# env > /tmp/sudo_su_env [email protected]:/home/applic# exit exit[/SIZE]
كود:
[SIZE=2][email protected]:~% sudo -s applic .bashrc read... [email protected]:~% env >/tmp/sudo_s[/SIZE]
و وجدت الاختلافات التالية:
"sudo -s"
كود:
HOME=/home/applic PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin reads $USER's ~/.bashrc
"sudo su"
كود:
[SIZE=2]HOME=/root PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games reads /etc/environment reads /root/.bashrc[/SIZE]
لاحظ الفرق في $HOME. كمستخدم root مع تعيين المتغيير $HOME لدليل HOME للمستخدم العاديapplic هذا يمكن أن يسبب مشاكل. على سبيل المثال ، إذا قمت بتشغيل تطبيق رسومي معين ، فإن ملف~/.Xauthority الخاص بالمستخدم العادي قد يعاد كتابته من قبل المستخدم root . و هذا يسبب مشاكل للمستخدم العادي فيما بعد. مثلا كأن يصبح غير قادر على تشغيل تطبيقات معينة عن طريق cron.
خلاصة:
كود:
[SIZE=2]corrupted by user's env vars N Y Y Y uses root's PATH Y [2] Y [2] Y [2] N [1] HOME=/root Y N N Y[/SIZE]
كود:
[SIZE=2]sudo -i sudo -s sudo bash sudo su [1] PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games probably set by /etc/environment [2] PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin[/SIZE]
خلاصة القول:
"sudo -i" هو الأمر الصحيح الذي يمكنك استخدمه عندما تريد التحول إلى قشرة الروتroot shell دون تلوث لبيئة المستخدم العادي.
شكراً
عفوا إذا كان هناك أي خطأ ..…...
و السلام عليكم
المصدر : http://ubuntuforums.org
http://www.psychocats.net/ubuntu/graphicalsudo
تعليق