فبراير 20، 2011

تعديل معرف المستخدم بين فيدورا و دبيان/أبونتو لحل تعارض صلاحيات التعديل على الملفات

عند استخدام توزيعتي فيدورا و أبونتو/دبيان على نفس الجهاز و حتى مع استخدام نفس اسم المستخدم و كلمة السر على النظامين ستجد أن الملفات التي أنشئت على نظام غير قابلة للتعديل من على الآخر. هذا غالبا لن يحصل مع التوزيعات التي تنحدر من نفس الشجرة: دبيان مع أبونتو أو فيدورا مع سينتوس على سبيل المثال. و سبب هذه الحالة راجع إلى قرار التوزيعتين إسناد معرف مستخدم (uid) مختلف.

دبيان تسند المعرف رقم 1000 لأول مستخدم و فيدورا تسند المعرف 500 لأول مستخدم، ثم يتزايد ذلك المعرف تصاعديا مع كل مستخدم جديد على النظام: 501, 502,.. أو 1001,1002,... و هكذا

الأيقونة بقفلين على اليمين هي لملف لا يمكن فتحه و لا التعديل عليه.
التي بها قفل واحد هي لملف تُسمح قراءته لكن دون التعديل عليه
خصائص الملف menu2.lst و نجد فيها على صفحة الصلاحيات أن
مالك الملف معرفه (uid) هو 500

هذا الاختلاف يصبح أكثر إزعاجا عندما يكون آخر شيء تريد أن تفعله قبل أن تبدأ التركيز في عملك هو فتح نافدة طرفية جديدة لتصحيح الصلاحيات من سطر الأوامر.

بتنفيد الأمر  id على سطر الأوامر سيمكننا معرفة معرف المستخدم:
ستكون النيجة 1000 على دبيان مثلا:
uid=1000(arafoss) gid=1000(arafoss) groups=1000(arafoss),
24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),
109(netdev),110(bluetooth),116(scanner)
أو أبونتو:
uid=1000(arafoss) gid=1000(arafoss) groups=1000(arafoss),
4(adm),20(dialout),24(cdrom),46(plugdev),111(lpadmin),
119(admin),122(sambashare)

على فيدورا ستكون 500:
uid=500(arafoss) gid=500(arafoss) groups=500(arafoss)

الآن ما يمكننا أن نفعله لتصحيح هذا الإختلاف هو أن نعدل معرف المستخدم على أحد النظامين ليصبح مثل الآخر. سنختار تعديل معرف فيدورا ليطابق دبيان/أبونتو.


الخطوات:

1. بعد الإقلاع بفيدورا، لن نسجل الدخول على الجلسة بل سنضغط على ALT+CTRL+F2 ثم نسجل الدخول من سطر الأوامر باستخدام حساب الجدع/مدير النظام root.

2. بعدها سننفد الأمر التالي بعد تغيير arafoss بإسم حساب مستخدمك على النظام:
usermod -u 1000 arafoss

3. لنتأكد من أن معرف المستخدم تغير فعلا ليصبح 1000 بدلا من 500
id arafoss

ستجد أن النتيجة أصبحت كالتالي:
uid=1000(arafoss) gid=500(arafoss) groups=500(arafoss)

4. بعدها نسجل الخروج من جلسة الجدر/مدير النظام root بتنفيذ الأمر exit ثم الضغط على ALT+CTRL+F1 للعودة إلى واجهة تسجيل الدخول الرسومية.


هذه الخطوات كافية و تفي بالغرض لكنها لا تخلق تحولا شاملا لصلاحيات كل ملفات المستخدم على النظام و لا تغير معرف المجموعة التي ينتمي إليها المستخدم gid و groups. إذا كان من الضروري تنسيق كل ذلك نظرا لطبيعة العمل (خادم بأكثر من مستخدم، بريد داخلاي،..) فيمكن تبديل أمر تعديل المعرف بالتالي -- مع توخي القليل من الحدر حسب استخدامتك و بيئة عمل النظام :

groupmod -g 1000 arafoss

usermod -u 1000 -g 1000 arafoss 

find / -user 500 -print0 | xargs -0 chown -h 1000


=> لذلك يفضل دائما أن تقوم بهذا التعديل على معرف المستخدم مباشرة بعد تثبيت فيدورا


مصادر إضافية:
IBM developerWorks - Changing UIDs and GIDs


تحديث:
بعض البرامج كالآلة الافتراضية VirtualBox 4 تترك مجلدات مخفية على /tmp/ ، إذا سبق و أن شغلتها قبل أن تقوم بتعديل المعرف فهناك احتمال كبير أن تصادف في المرة المقبلة رسالة خطأ "Failed to create the VirtualBox COM object" متلوة بإنهيارها.

لتصحيح الخطأ يكفي تعديل اسم المجلد،حدفه أو تصحيح صلاحياته:

sudo mv /tmp/.vbox-`whoami`-ipc/  /tmp/--vbox-`whoami`-ipc
أو
sudo rm -Ri /tmp/.vbox-`whoami`-ipc/


ليست هناك تعليقات:

إرسال تعليق