فهم أذونات Linux واستخدام chmod

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

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

أذونات ومستويات Linux

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

هناك ثلاثة مستويات من الأذونات في Linux : المالك والمجموعة وغيرها. المالك هو المستخدم الذي يمتلك الملف / المجلد ، وتشمل المجموعة مستخدمين آخرين في مجموعة الملف ويمثل الآخرون جميع المستخدمين الآخرين الذين ليسوا المالك أو في المجموعة.

يتم تمثيل القراءة(Read) والكتابة والتنفيذ إما كأحرف رمزية أو كأرقام ثماني. على سبيل المثال ، إذا قمت بإجراء ls -l في دليل يحتوي على بعض الملفات ، فسترى التمثيل الرمزي للأذونات.

تتم كتابة الأذونات على النحو التالي: البت الأول هو إما شرطة أو الحرف d. تعني Dash(Dash) أنه ملف و d تعني دليل. لاحظ أن البت الأول يمكن أيضًا أن يكون حرف l إذا كان اسم الملف عبارة عن ارتباط. بعد ذلك ، هناك ثلاث مجموعات من ثلاث بتات. البتة الأولى في كل مجموعة للقراءة ، البتة الثانية للكتابة والثالثة للتنفيذ. أول ثلاث بتات للمالك ، والبتات الثلاث الثانية للمجموعة والثالث بتات أخرى. هنا شرح مرئي أكثر.

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

إذا نظرت إلى الإخراج من الأمر ls -l ، فستلاحظ أن ملف التدريب النصي الخاص بي لديه الأذونات التالية:

-rw-rw-rw-

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

drwxr--r--

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

تمثيل رقم ثماني

هذه هي الطريقة التي يتم بها عرض الأذونات في Linux باستخدام الرموز. الطريقة الثانية لتمثيل الأذونات نفسها هي استخدام الأرقام الثمانية. عندما نستخدم الأمر chmod لاحقًا ، سترى أنه يمكنك تغيير الأذونات باستخدام إما الرموز أو الأرقام الثمانية.

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

يتم تمثيل إذن القراءة بالرقم 4 ، والكتابة بـ 2 والتنفيذ بواسطة 1. كل ما عليك فعله هو إضافتهم للحصول على الإذن الثماني. على سبيل المثال ، لنأخذ المثال أعلاه حيث يتمتع كل شخص بجميع الأذونات:

-rwxrwxrwx

المالك لديه rwx ، لذلك سنضيف 4 + 2 + 1 للحصول على القيمة 7. نفعل نفس الشيء للمجموعة ونفس الشيء بالنسبة للآخرين. القيمة الثمانية النهائية هي 777. دعنا نلقي نظرة على المثال حيث أعطينا أذونات القراءة / الكتابة فقط:

-rw-rw-rw-

سيكون الرقم الثماني الأول 4 + 2 لأننا نضيف القراءة والكتابة. سيكون الثاني هو نفسه الرقم الثماني الثالث. لدينا هنا القيمة الثمانية النهائية 666.

والآن دعونا نجربها بالطريقة الأخرى. لنفترض أننا نريد أن نعرف ما هي الأذونات التي يمثلها 755 ؟ حسنًا ، من السهل جدًا معرفة ما إذا كنت تقسمها إلى أرقام فردية. الرقم الأول هو 7 ، والذي يمكننا الحصول عليه فقط بإضافة 4 + 2 + 1 ، مما يعني أن المالك لديه إذن قراءة / كتابة / تنفيذ. يمكن الحصول على خمسة فقط عن طريق إضافة 4 + 1 ، مما يعني أن المجموعة والمستخدمين الآخرين قد قرأوا الأذونات وقاموا بتنفيذها.

نأمل(Hopefully) أن يكون هذا شرحًا جيدًا لكيفية تمثيل الأذونات في Linux باستخدام الأرقام الثمانية. إنه أمر بسيط بشكل عام.

باستخدام chmod لتعديل الأذونات

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

لنبدأ بالأذونات التي تحدثنا عنها أعلاه وهي:

-rw-rw-rw-

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

الأمر الدقيق هو

chmod a+x filename

الصيغة هي كما يلي: الحرف أو الأحرف التي تمثل المالك ( u ) ، المجموعة ( g ) ، أخرى ( o ) أو الكل ( a ) متبوعًا بعلامة + لإضافة الأذونات أو a - لسحب الأذونات ثم الحرف لـ الإذن ( r للقراءة ، w للكتابة و x للتنفيذ).

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

كما ترى هنا ، اعتدت على الأمر التالي لإنجاز هذا:

chmod go-wx filename

نظرًا لأنني أريد تغيير أذونات المجموعة وغيرها ، فأنا أستخدم الحرف g والحرف o . أريد إزالة الأذونات ، لذلك أستخدم علامة - . أخيرًا ، أريد إزالة أذونات الكتابة وتنفيذها ، لذلك أستخدم w و x . إليك جدول صغير مفيد لاستخدام الرموز:

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

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

-rw-rw-rw-

أعلاه(Above) ، يمكنك أن ترى أنني استخدمت الأمر التالي:

chmod 744 filename

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

الآن استخدمت الأمر التالي ، مرة أخرى أمر بسيط للغاية:

chmod 640 filename

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

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



About the author

أنا مطور iOS بخبرة تزيد عن 10 سنوات. أنا متخصص في تطوير التطبيقات لأجهزة iPhone و iPad. لدي خبرة في بناء تدفقات المستخدمين ، وإنشاء مجموعات تطوير مخصصة (CDKs) ، والعمل مع أطر تطوير التطبيقات المختلفة. في عملي السابق ، قمت أيضًا بتطوير أدوات للمساعدة في إدارة متجر تطبيقات Apple ، والتي تتضمن أداة إدارة المنتج وأداة إرسال التطبيق.



Related posts