مقدمة إلى أذونات Linux

المقدمة

يعتبر Linux، من التعريف، نظام تشغيل متعدد المستخدمين يستند إلى مفاهيم Unix لـ ملكية الملفات و الأذونات لتوفير الأمان على مستوى نظام الملفات. لإدارة خادم سحابي بشكل موثوق به، من الضروري أن تمتلك فهمًا جيدًا لكيفية عمل ملكية الملفات والأذونات. هناك العديد من التفاصيل الدقيقة في التعامل مع ملكية الملفات والأذونات، ولكن هذا البرنامج التعليمي سيقدم مقدمة جيدة.

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

المتطلبات المسبقة

تأكد من فهم المفاهيم المشمولة في البرامج التعليمية السابقة في هذه السلسلة:

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

حول المستخدمين

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

في Linux، هناك نوعان من المستخدمين: مستخدمي النظام و المستخدمين العاديين. تُستخدم المستخدمين النظامية تقليديًا لتشغيل العمليات غير التفاعلية أو الخلفية على النظام، بينما يُستخدم المستخدمون العاديون لتسجيل الدخول وتشغيل العمليات بشكل تفاعلي. عندما تقوم بتهيئة النظام وتسجيل الدخول إلى نظام Linux للمرة الأولى، قد تلاحظ أنه يبدأ بعدد كبير من المستخدمين النظامية التي تم إنشاؤها بالفعل لتشغيل الخدمات التي يعتمد عليها النظام التشغيل. هذا أمر طبيعي.

يمكنك عرض جميع المستخدمين على النظام عن طريق النظر إلى محتويات ملف /etc/passwd. يحتوي كل سطر في هذا الملف على معلومات حول مستخدم واحد، بدءًا من اسم المستخدم (الاسم قبل أول :). يمكنك طباعة محتويات ملف passwd باستخدام cat:

  1. cat /etc/passwd
Output
… sshd:x:109:65534::/run/sshd:/usr/sbin/nologin landscape:x:110:115::/var/lib/landscape:/usr/sbin/nologin pollinate:x:111:1::/var/cache/pollinate:/bin/false systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin lxd:x:998:100::/var/snap/lxd/common/lxd:/bin/false vault:x:997:997::/home/vault:/bin/bash stunnel4:x:112:119::/var/run/stunnel4:/usr/sbin/nologin sammy:x:1001:1002::/home/sammy:/bin/sh

المستخدم الجذر

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

من الممكن أيضًا تكوين حسابات مستخدمين أخرى بالقدرة على افتراض “حقوق المستخدم الجذر”. يُشار إلى هذا في كثير من الأحيان باسم sudo، لأن المستخدمين الذين لديهم أذونات للحصول مؤقتًا على حقوق المستخدم الجذر يفعلون ذلك عن طريق تسبيق الأوامر على مستوى المسؤول بـ sudo. في الواقع، يُعتبر إنشاء مستخدم عادي لديه امتيازات sudo لمهام الإدارة النظامية ممارسة جيدة. بهذه الطريقة، يمكنك أن تكون أكثر تحفظًا في استخدام حساب المستخدم الجذر.

حول المجموعات

المجموعات هي مجموعات تحتوي على صفر أو أكثر من المستخدمين. المستخدم ينتمي إلى مجموعة افتراضية، ويمكنه أيضًا أن يكون عضوًا في أي من المجموعات الأخرى على الخادم.

يمكنك عرض جميع المجموعات على النظام وأعضائهم من خلال النظر في ملف /etc/group، كما تفعل مع /etc/passwd للمستخدمين. لا يتناول هذا المقال إدارة المجموعات.

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

عرض الملكية والأذونات

في نظام Linux، يمتلك كل ملف مالكًا واحدًا ومجموعة واحدة، وله أذونات وصول خاصة به. دعونا نلقي نظرة على كيفية عرض ملكية الملف وأذوناته.

أكثر الطرق شيوعًا لعرض أذونات الملف هو استخدام الأمر ls مع الخيار الطويل للقائمة -l، مثل ls -l اسم_الملف. إذا كنت ترغب في عرض أذونات جميع الملفات في الدليل الحالي الخاص بك، قم بتشغيل الأمر دون استخدام وسيط الملف اسم_الملف، مثل هذا:

  1. ls -l

ملاحظة: إذا كنت في دليل المستخدم الرئيسي الفارغ، ولم تقم بإنشاء أي ملفات حتى الآن، يمكنك اتباع الخطوات عن طريق عرض محتويات الدليل /etc عبر تشغيل هذا الأمر: ls -l /etc

فيما يلي مثال للقائمة المفصلة ls -l مع تسميات لكل عمود في الإخراج:

يُدرج كل ملف وضعه (الذي يحتوي على الأذونات)، والمالك، والمجموعة، والاسم. لمساعدتك في تفسير ما تعنيه جميع تلك الحروف والشرطات، دعونا نقسم عمود الوضع إلى مكوناته.

وضع الفهم

لمساعدتك في شرح ما يعنيه كل التجميعات والحروف، إليك تفصيل لبيانات التوجيه للملف الأول في المثال أعلاه:

نوع الملف

في نظام Linux، هناك نوعان من الملفات: العادية و الخاصة. يُشير نوع الملف بالحرف الأول من وضع الملف – في هذا الدليل، سيُشار إليه كـ “حقل نوع الملف”.

يمكن التعرف على الملفات العادية بوجود إشارة ناقصة (-) في حقل نوع الملف الخاص بها. يمكن أن تحتوي الملفات العادية على بيانات أو أي شيء آخر. يُطلق عليها مصطلح “عادية”، أو “منتظمة”، للتمييز بينها وبين الملفات الخاصة.

يمكن التعرف على الملفات الخاصة بوجود حرف غير إشارة ناقصة، مثل حرف، في حقل نوع الملف الخاص بها، وتُعالج بشكل مختلف عن الملفات العادية من قِبل نظام التشغيل. الحرف الذي يظهر في حقل نوع الملف يشير إلى نوع الملف الخاص الذي يكون عليه الملف الفردي. على سبيل المثال، يُعرف الدليل، وهو النوع الأكثر شيوعًا من الملفات الخاصة، بالحرف d الذي يظهر في حقل نوع الملف الخاص به (كما هو موضح في الشاشة السابقة). يوجد العديد من أنواع الملفات الخاصة الأخرى.

فئات الأذونات

من الرسم البياني، يمكنك رؤية أن عمود الـ الوضع يشير إلى نوع الملف، تليه ثلاث مجموعات ، أو فئات، من الأذونات: المستخدم (المالك)، المجموعة، وغيرهم. ترتيب الفئات ثابت عبر جميع أنظمة Linux.

تعمل الفئات الثلاث للأذونات على النحو التالي:

  • المستخدم: المالك للملف ينتمي إلى هذه الفئة.
  • المجموعة: أعضاء مجموعة الملف ينتمون إلى هذه الفئة. أذونات المجموعة هي طريقة مفيدة لتعيين الأذونات على ملف معين لعدة مستخدمين.
  • الآخرين: أي مستخدمين ليست جزءًا من الفئتين المستخدم أو المجموعة لهذا الملف ينتمون إلى هذه الفئة.

قراءة الأذونات الرمزية

الشيء التالي الذي يجب الانتباه إليه هو تلك المجموعات المكونة من ثلاثة أحرف. تشير إلى الأذونات، بشكل رمزي، التي يمتلك كل فئة لملف معين.

في كل مجموعة، تُمثل الأذونات للقراءة، الكتابة، والتنفيذ بالطريقة التالية:

  • القراءة: تُمثل بحرف r في الموضع الأول
  • الكتابة: تُمثل بحرف w في الموضع الثاني
  • تنفيذ: مشار إليه بواسطة x في الموقع الثالث. في بعض الحالات الخاصة، قد تكون هناك حرف مختلف هنا

A hyphen (-) in the place of one of these characters indicates that the respective permission is not available for the respective class. For example, if the group (second) triad for a file is r--, the file is “read-only” to the group that is associated with the file.

فهم القراءة، الكتابة، التنفيذ

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

إليك تفصيل للوصول الذي تمنحه ثلاثة أنواع من الأذونات للمستخدم:

القراءة

بالنسبة للملف العادي، تسمح أذونة القراءة للمستخدم بعرض محتويات الملف.

بالنسبة للدليل، تسمح أذونة القراءة للمستخدم بعرض أسماء الملفات في الدليل.

الكتابة

بالنسبة للملف العادي، تسمح أذونة الكتابة للمستخدم بتعديل وحذف الملف.

لصفحة، يسمح إذن الكتابة للمستخدم بحذف الدليل، وتعديل محتوياته (إنشاء، وحذف، وإعادة تسمية الملفات فيه)، وتعديل محتويات الملفات التي لدى المستخدم إذن الكتابة فيها.

التنفيذ

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

بالنسبة للدليل، يسمح إذن التنفيذ للمستخدم بالوصول، أو الانتقال إلى داخله (أي cd) والوصول إلى البيانات الوصفية حول الملفات في الدليل (المعلومات التي يتم سردها في ls -l).

أمثلة على الوضعيات (والأذونات)

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

  • -rw-------: ملف يمكن الوصول إليه فقط بواسطة مالكه
  • -rwxr-xr-x: ملف قابل للتنفيذ من قبل كل مستخدم على النظام. ملف “قابل للتنفيذ من العالم”
  • -rw-rw-rw-: ملف مفتوح للتعديل من قبل كل مستخدم على النظام. ملف “قابل للكتابة من العالم”
  • drwxr-xr-x: دليل يمكن لكل مستخدم في النظام قراءته والوصول إليه
  • drwxrwx---: دليل يمكن تعديله (بما في ذلك محتوياته) من قبل مالكه والمجموعة
  • drwxr-x---: دليل يمكن الوصول إليه من قبل مجموعته

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

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

الاستنتاج

يجب أن يكون لديك الآن فهم جيد لكيفية عمل الملكية والأذونات في نظام Linux. لتعلم كيفية تعديل هذه الأذونات باستخدام chown، chgrp، و chmod، راجع مفاهيم أساسية لأذونات Linux وكيفية استخدام Umask على خادم VPS.

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

Source:
https://www.digitalocean.com/community/tutorials/an-introduction-to-linux-permissions