الحلقة الدراسية الثالثة عشر: صلاحيات استخدام الملفات و المجلدات.



لكل ملف في لينوكس مالك ينتمي إلى مجموعة ما ، و عادة يكون مالك الملف هو الشخص الذي أنشأه.

افتراضيا كل مستخدم ينتمي لمجموعة ، و كل الملفات المنشأة بواسطة ذلك المستخدم توضع تلقائيا في مجموعته.

هناك ثلاث صلاحيات في لينوكس للمستخدمين ممكن تخصيصها للملفات:

1- read قراءة.

2- write كتابة.

3- execute تنفيذ.

صلاحية القراءة تسمح للمستخدم بقراءة محتويات الملف.

أما صلاحية الكتابة فتسمح للمستخدم بعمل تغييرات على الملف و حتى حذفه.

أما صلاحية التنفيذ فتسمح للمستخدم بتشغيل الملف إذا كان عبارة عن برنامج، أما إذا كان ملفا نصيا فإن صلاحية التنفيذ لن تعمل معه.

يمكن تخصيص نفس الصلاحيات للمجلدات و لكن مع اختلاف معانيها، فصلاحية القراءة تسمح للمستخدم بسرد محتويات المجلد، بينما صلاحية الكتابة تسمح للمستخدم بإضافة ملفات إلى المجلد أو حذفها منه، بينما تسمح صلاحية التنفيذ للمستخدم بسرد المعلومات المرتبطة بالملفات في المجلد.

عندما تنشئ ملفا أو مجلدا فإن نظام لينوكس يعطيك بعض الصلاحيات بشكل افتراضي ، فمثلا عندما تنشئ ملفا فإنك تحصل على صلاحيات القراءة و الكتابة لذلك الملف، أما باقي المستخدمين فسيحصلون على صلاحية القراءة فقط لذلك الملف.

يتم إعطاء الصلاحيات لثلاثة أنواع من مجموعات المستخدمين كما يلي:

1- owner (المالك) و هو المستخدم الذي يملك الملف أو المجلد.

2- group (مجموعة) و هي المجموعة التي تم تخصيصها للملف أو المجلد.

3- other (آخر) و ينتمي لها كل المستخدمين في النظام و لكنهم لا يملكون الملف و ليسوا أعضاء في المجموعة.

هذه المجموعات الثلاث تعرف بمستويات الصلاحية levels of permission.

يسمح مستوى المجموعة للمستخدمين الذين يعملون في نفس المجال بالوصول إلى نفس الملفات و استخدامها.

يستطيع المستخدمون الانضمام إلى أكثر من مجموعة في نفس الوقت، كما تستطيع في أي وقت تغيير المجموعة المرتبطة بملف أو مجلد معين.

لننظر إلى الملف meeting الذي أنشأه المستخدم Khalid. سنستخدم الأمر ls –l لسرد معلومات عن الملفات و سنلاحظ المعلومات التالية المرتبطة بالملف meeting:

rw-rw-r-- 1 khalid friend 114 Aug 5 11:12 meetin-

يمثل khalid اسم المستخدم بينما يمثل friend اسم المجموعة التي ينتمي إليها.

ما يهمنا الآن معلومات الصلاحية التي تظهر في البداية:

--rw-rw-r-

يمكن تقسيم مجموعة الأحرف السابقة إلى 4 أجزاء :

الرمز الأول يشير إلى النوع (ملف أو مجلد)،حيث يشير الرمز - إلى ملف ،أما d فتشير إلى مجلد و يشير الرمز l إلى link أي وصلة أو اختصار.

الجزء الثاني يتكون من الرموز الثلاثة التالية : -rw و تشير إلى مستوى المالك.

الجزء الثالث يتكون من الرموز الثلاثة التالية : -rw و تشير إلى مستوى المجموعة.

الجزء الرابع يتكون من الرموز الثلاثة التالية : --r و تشير إلى مستوى الآخر.

يشير الرمز r إلى صلاحية القراءة بينما يشير الرمز w إلى صلاحية الكتابة بينما يشير استخدام الرمز - إلى منع الصلاحية أما الرمز x في حالة وجوده فيشير إلى صلاحية التنفيذ.

نستنتج مما سبق أن الملف النصي meeting يملك صلاحيات القراءة و الكتابة لكل من مستوى المالك و المجموعة بينما يملك صلاحية القراءة فقط لمستوى الآخر.

لننظر إلى ملف آخر و هو program.exe سنجد أن معلومات الصلاحيات له كما يلي:

rwxr-xr-x-

و هذا يعني أن هذا الملف التنفيذي يملك صلاحية القراءة و الكتابة و التنفيذ لمستوى المالك بينما يملك صلاحية القراءة و التنفيذ لكل من مستوى المجموعة و الآخر.

يسمح لك لينوكس بتغيير الصلاحيات المرتبطة بملف أو مجلد معين باستخدام الأمر : chmod و هو اختصار ل change mode.

يكتب الأمر على النحو التالي لإضافة صلاحية:

chmod level+permission filename

و لإزالة الصلاحية تستبدل إشارة + بإشارة - ، و يتم التعبير عن المستوى level باختصارات كما يلي:

1- يعبر عن المستوى owner بالاختصار u.

2- يعبر عن المستوى group بالاختصار g.

3- يعبر عن المستوى other بالاختصار o.

أما الصلاحيات فيعبر عنها بالاختصارات التالية:

1- يعبر عن الصلاحية read بالاختصار r.

2- يعبر عن الصلاحية write بالاختصار w.

3- يعبر عن الصلاحية execute بالاختصار x.

فمثلا لتغيير الصلاحيات المرتبطة بالملف program.exe بحيث يتمكن المستخدمون في مستوى المجموعة من الكتابة عليه سنحتاج لمنح صلاحية الكتابة لمستوى المجموعة كما يلي:

chmod g+w program.exe
و هكذا إذا نفذنا الأمر : ls -l لنرى مفعول التغيير على الملف program.exe سنرى معلومات الصلاحية المرتبطة به كما يلي:

rwxrwxr-x-

كما أنك تستطيع منح عدة صلاحيات لمستوى ما باستخدام أمر واحد، فإذا افترضنا أن لديك ملف برنامج يسمى update ، و يمتلك مستخدمو مستوى المجموعة صلاحية القراءة فقط ، و تود منحهم صلاحية الكتابة و التنفيذ فإنك تستطيع عمل ذلك بكتابة الأمر كما يلي:

chmod g+wx update

كما تستطيع منح عدة مستويات نفس الصلاحية باستخدام أمر واحد ، فمثلا لمنح صلاحية الكتابة لكل من مستوى المجموعة و الآخر لملف اسمه prophet نكتب الأمر كما يلي:

chmod go+w prophet

أما إذا استخدمت الرمز = مع الأمر chmod فإنه سيتم منح الصلاحيات المحددة مع الأمر و إزالة أي صلاحيات أخرى غير محددة، فمثلا إذا افترضنا أن لديك ملفا اسمه report و معلومات الصلاحية له كما يلي:

rw---x--x-

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

chmod go=rw report

و ستجد أن معلومات الصلاحية أصبحت كما يلي:
-rw-rw-rw-

و هناك طريقة أخرى للتعامل مع الأمر chmod باستخدام الأرقام كما في الجدول التالي:



بينما يعبر عن الصلاحية الممنوعة عن مستوى ما بالرقم 0.

لمنح صلاحية فإنك تقوم بجمع القيم الرقمية لصلاحيات كل مستوى ، فمثلا إذا رغبت بمنح الملف program الصلاحيات التالية :

rwxr-x--x-

فإنك تستخدم المعادلة التالية:

4+2+1 4+0+1 0+0+1
7 5 1

و نكتب الأمر كما يلي:

chmod 751 program

و فيما يلي مثال آخر:

لنفترض أن لديك ملف اسمه data.exe و تود منح جميع المستويات صلاحية القراءة و التنفيذ، فإنك تستخدم المعادلة التالية:


4+0+1 4+0+1 4+0+1

5 5 5

و نكتب الأمر كما يلي:

chmod 555 data.exe

و هناك أمر آخر يقوم بنفس المهمة و باستخدام الأرقام فقط و لكن بشكل عكسي ، هذا الأمر هو unmask و يتم منح الصلاحية بطرح مجموع القيم الرقمية لصلاحيات كل مستوى من العدد 7 (و الذي يمثل المجموع الكلي للصلاحيات 4+2+1) ، فمثلا إذا افترضنا أن لديك ملف اسمه king و تود منحه صلاحية القراءة و الكتابة لمستوى المالك و صلاحية القراءة فقط لمستوى المجموعة و الآخر فإننا نستخدم المعادلة التالية:

7-(4+2) 7-(4) 7-(4)

1 3 3

و يكتب الأمر كما يلي:

unmask 133 king

تستطيع باستخدام الأمر chgrp تغيير المجموعة التي لديها حق الوصول لملف أو مجلد معين، مع التنبيه إلى أن هذا الأمر لا يستطيع تشغيله إلا مدير النظام root، فمثلا إذا كان لديك ملف اسمه build و أردت أن تغير المجموعة التي لديها حق الوصول إليه إلى مجموعة builders فإنك تكتب الأمر التالي:

chgrp builders build


أما إذا رغبت بتغيير مالك أي ملف فإنك تستخدم الأمر chown ، و يستخدم من قبل root فقط، فلتغيير مالك الملف sun إلى المستخدم walid نكتب الأمر كما يلي:

chown walid sun

كما يمكنك باستخدام نفس الأمر السابق تغيير مالك الملف و المجموعة التي لديها حق الوصول إليها بأمر واحد كما في المثال التالي:
لتغيير مالك الملف sun من walid الى khalid و تغيير المجموعة من friend إلى brother نكتب الأمر كما يلي:

chown khalid.brother sun

يسمح لك نظام لينوكس الانتقال و التبديل بين المستخدمين دون الحاجة للخروج من النظام و الدخول مرة أخرى كمستخدم آخر و ذلك باستخدام الأمر su متبوعا باسم المستخدم الذي تود التبديل إليه ثم تضغط على Enter و سيطلب منك إدخال كلمة السر للمستخدم الجديد، فلانتقال إلى المستخدم khalid نكتب الأمر كما يلي:

su khalid

ثم نضغط على Enter و سيطالبنا النظام بإدخال كلمة المرور الخاصة بالمستخدم khalid ، أما للانتقال إلى مدير النظام root فنستطيع كتابة الأمر كما يلي:

su root

و من ثم ندخل كلمة المرور بعد الضغط على Enter و على العموم إذا كتبنا الأمر su بدون أي إضافات و ضغطنا على Enter فإننا أيضا سننتقل إلى مدير النظام بعد إدخال كلمة المرور له.

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

 

 

 


Copyright © www.kettaneh.net