هل أنت متعب من الحاجة إلى تغيير أذونات الملفات والمجلدات يدويًا؟ هل تبحث عن طريقة أسرع وأكثر كفاءة لتعديل أذونات الملفات والمجلدات الخاصة بك؟ إذاً، فقد وصلت إلى المكان الصحيح، لأنه في هذه المقالة، ستتعلم كيفية تغيير أذونات الملفات والمجلدات باستخدام أمر “chmod” بشكل تكراري!
تابع القراءة لمعرفة المزيد!
المتطلبات الأساسية
لمتابعة الشرح، تحتاج إلى جهاز يعمل بنظام Linux ومجلد يحتوي على ملفات ومجلدات يمكنك ممارسة تغيير أذوناتها.
التعرف على مستخدمي Linux ومجموعاتهم
المستخدمون والمجموعات هما عنصران مهمان في نظام Linux، حيث يلعبون دورًا أساسيًا في إدارة الملفات والمجلدات بشكل آمن. المالك هو الشخص الذي يتم تعيين الملف أو المجلد له، وهو الشخص الذي أنشأه بشكل افتراضي. في Linux، تنتمي الملفات والمجلدات أيضًا إلى مجموعات. يتم تعيين المستخدمين والمجموعات عن طريق أمر “chown”.chown
command.
في الصورة أدناه، يتم إظهار المحتوى المميز باللون الأخضر للمستخدم الذي يملك الملف أو المجلد، “mihail” في هذا المثال. ويتم إظهار المحتوى المميز باللون الأزرق للمجموعة التي ينتمي إليها الملف أو المجلد، والتي تملكها مجموعة “staff” في هذا المثال.

فهم أذونات الملفات والمجلدات في Linux
الأذونات تحدد الإجراءات التي يمكن للمستخدم أو المجموعة القيام بها على ملف أو دليل معين. تُشير برمز حرفي وتُخصص أيضًا قيمة عددية.
- القراءة (
r
أو4
): تشير إلى ما إذا كان يمكن للمستخدم أو المجموعة قراءة محتويات الملف أو الدليل. يتم منح إذن القراءة تلقائيًا لجميع الملفات والدلائل المُنشأة حديثًا لجميع الأطراف. - الكتابة (
w
أو2
): تشير إلى ما إذا كان يمكن للمستخدم أو المجموعة تحرير محتوى كائن. يُمنح هذا الإذن تلقائيًا فقط لمالك الملف أو الدليل. - التنفيذ (
x
أو1
): تشير إلى ما إذا كان يمكن للمستخدم أو المجموعة تنفيذ ملف أو تنفيذ الأوامر داخل دليل. يُمنح إذن التنفيذ تلقائيًا فقط للدلائل ولكن ليس للملفات.
إذا لم تمنح الإذن للمستخدم (
u
) أذونات التنفيذ لدليل، فلن يكون بإمكانه إظهار محتويات الدليل لأن المستخدم لن يتمكن من تنفيذ الأوامر داخل الدليل!
يُعرض مثال أدناه، ويوضح إخراج الأمر ls -l
أنواع الأذونات المختلفة. تسبق تلك الأذونات التي يسبقها القيمة d
، دليلاً على أنها دليل.

لماذا يوجد ثلاث مجموعات من الأذونات لكل كائن على ما يبدو؟ يتم تحقيق التحكم الدقيق في الأذونات عن طريق تقسيم الأذونات إلى الأقسام (المُشار إليها باسم الأطراف لغرض هذا البرنامج التعليمي) المدرجة أدناه.
- المستخدم (
u
): صاحب الملف أو الدليل، مميز باللون الأزرق. - المجموعة (
g
): أعضاء المجموعة التي ينتمي إليها ملف أو دليل، مميزين باللون الأخضر. - الآخرين (
o
): جميع المستخدمين والمجموعات الإضافية التي لم يتم تعيينها صراحة، مميزة باللون الأحمر.

تغيير أذونات الملف عبر أمر chmod المتكرر
مع فهم الأذونات الصحيح لنظام Linux، يمكنك قراءة كيفية تغيير أذونات الملف. يتم تعديل الأذونات عبر أمر chmod المتكرر كما هو موضح في الأمثلة أدناه.
1. أولاً، قم بفحص الأذونات الحالية باستخدام الأمر ls -l
. هنا، يتم عرض ملف my_dir/index.js.

2. قم بتشغيل الأمر chmod
، محددًا الطرف، a
(الكل)، والأذونات، rwx
، أو القراءة/الكتابة/التنفيذ. يتبع الأمر الكامل: chmod a=rwx index.js
.

3. كما يمكنك ملاحظة، لا يعيد تشغيل الأمر chmod
المتكرر أي نتائج. للتحقق من تغيير الأذونات، قم بتشغيل الأمر ls -l
مرة أخرى.

تعيين أذونات الملف عبر القيم الرقمية
تذكر الأرقام المرتبطة بالأذونات مثل القراءة أو الكتابة؟ بدلاً من تحديد قيم الحروف، يمكنك تحديد الأذونات المحددة عبر رقم. من خلال إضافة القيم، يمكنك إنشاء إذن محدد مثل 6
وهو مزيج من أذونة الكتابة (2
) والقراءة (4
).
في المثال أدناه، قم بتعيين الأذونات لملف main.py عبر الأمر chmod 664 main.py
. القيم الرقمية تفسر كما يلي.
- المستخدم: قراءة وكتابة (
6
). - المجموعة: قراءة وكتابة (
6
). - الآخرين: قراءة (
4
).

بمجرد تغيير الأذونات، تحقق من الأذونات الجديدة لملف main.py بواسطة الأمر ls -l
.

إزالة وإضافة أذونات الملف
الأوامر غير الرقمية التي قمت بتشغيلها حتى الآن تستخدم المعلمة التعيينية (=
) مع chmod
بشكل تكراري، لتعيين الأذونات الصريحة. بدلاً من ذلك، يمكنك إزالة (-
) أو إضافة (+
) أذونات إلى مجموعات الأذونات الحالية.
1. أولاً، قم بعرض الأذونات الحالية لملف README.md عبر الأمر ls -l README.md
.

2. بعد ذلك، قم بإضافة (+
) أذونات التنفيذ (x
) لفئة المستخدم (u
)، مع إزالة (-
) أذونات القراءة (r
) من فئة الآخرين (o
) لـ README.md، باستخدام الأمر التالي chmod u+x,o-r README.md
. تفصل أذونات الأطراف المختلفة بفواصل (,
).

3. قم بتشغيل الأمر ls -l README.md
للتحقق من تعديل الأذونات.

تغيير الأذونات للملفات والمجلدات بشكل متكرر
على الرغم من أنك تحقق تقدمًا، إلا أنك تعمل على ملف واحد في كل مرة. ماذا لو كان لديك عدد كبير من الملفات لتغيير الأذونات؟ حان الوقت لتطوير أدائك وتعلم كيفية تغيير الأذونات لعدة ملفات.
واحدة من الخيارات لتغيير عدة ملفات هي تشغيل أمر chmod
مع خيار -R
(تكراري، وليس الحرف الكبير). خيار التكراري سيغير الأذونات لجميع الملفات، بما في ذلك تلك التي تحت الدلائل الفرعية، داخل المسار المعطى.
1. اعتبر الأمر التالي، chmod -R a=r,u=rwx my_dir
. معظم الخيارات التي رأيتها من قبل.
سيقوم هذا الأمر بتغيير الأذونات لجميع الملفات في الدليل، my_dir والدلائل الفرعية، عبر الخيار التكراري (-R
). يتم تعيين القراءة (r
) للجميع (a
)، مع إذن مختلف للمستخدم الحالي (u
) معين إلى الأذونات الكاملة (قراءة، كتابة، تنفيذ).
في اللقطة أدناه، ترى الأذونات الناتجة بعد تنفيذ الأمر، الذي لا يعطي أي ناتج.

2. افترض أنك قمت بتشغيل الأمر، chmod -R a=rwx my_dir
، على نفس الدليل كما في السابق، my_dir. مرة أخرى، أنت تقوم بتغيير جميع الملفات في my_dir، ودلائلها الفرعية، لتعيين جميع (a
) الأذونات الكاملة (قراءة، كتابة، تنفيذ). إليك نتيجة الأمر، حيث أن أمر chmod
التكراري لا يعرض ناتجًا.

3. كيف بالنسبة للأسلوب الرقمي؟ كما هو موضح أدناه، الطريقة التكرارية تعمل أيضًا مع أذونات رقمية، chmod -R 770 my_dir
. هنا تعطي صلاحيات كاملة للمستخدم والمجموعة، لكن لا تعطي أي صلاحيات للطرف الآخر.

4. قم بتشغيل ls -l
للتحقق من أن أذونات ملفات my_dir ومجلداتها مضبوطة بالطريقة الرقمية.

تحديد سلوك الملف والمجلد عبر الأذونات الخاصة
الأذونات الخاصة تسمح بعدة امتيازات إضافية مميزة عن مجموعات الأذونات القياسية. هنا كيفية عمل هذه الأذونات الخاصة وكيف يمكنك إضافتها إلى ملف أو دليل.
تعيين أذونات SUID (المستخدم + S)
المعروفة عادة باسم SUID، فهي أذونة خاصة للمستخدم. تتمتع SUID بوظيفة واحدة: يتم تنفيذ الملف الذي يحمل SUID باعتباره المستخدم الذي يمتلك الملف، بغض النظر عن من يقوم بتنفيذ الملف.
على سبيل المثال، تخيل index.js. لإعطاء أذونة SUID الإضافية، قم بتشغيل chmod u+s index.js
.
الآن، إذا قمت بتشغيل ls -l index.js
، ستجد أن المستخدم لديه s في صلاحياتهم بدلاً من x.

تعيين أذونات SGID (المجموعة + S)
المعروفة عادة باسم SGID، تتمتع هذه الأذونة الخاصة بوظيفتين:
- إذا تم تعيينها لملف، فإنها تسمح بتنفيذ الملف باسم المجموعة التي تمتلك الملف، بغض النظر عن من يقوم بتنفيذ الملف.
- إذا تم تعيينها للمجلد، فإن أي ملفات يتم إنشاؤها في المجلد ستكون لديها ملكية المجموعة مضبوطة على ملكية مالك المجلد.
قم بتطبيق ذلك على ملف index.php. لإضافة إذن SGID لهذا الملف، قم بتشغيل الأمر التالي: chmod g+s index.php
.
الآن، إذا قمت بتشغيل ls -l index.php
، ستجد أن المجموعة لديها s في الأذونات.

انتقل إلى مجلد: my_dir. يمكنك إضافة إذن SGID لهذا المجلد باستخدام الأمر التالي: chmod g+s my_dir
. ستكون ملكية المجموعة لأي ملفات يتم إنشاؤها في هذا المجلد الآن مضبوطة على مالك المجلد. يمكنك التحقق من الأذونات الجديدة للمجلد باستخدام ls -ld my_dir
(يحدد المعلم “d” إخراج المجلدات فقط).

تغيير إذن البت اللزج
آخر إذن خاص معروف أيضًا بـ “إذن البت اللزج”. هذا الإذن لا يؤثر على الملفات الفردية. ولكن، على مستوى المجلد، يقيد حذف الملفات. يمكن لـ المالك فقط للملف إزالته من ذلك المجلد.
أضف البت اللزج إلى المجلد my_dir المألوف القديم. للقيام بذلك، قم بتشغيل الأمر على النحو التالي: chmod +t my_dir
.
لاحظ أنه لإضافة البت اللزج، لا تشير إلى المجموعة الأخرى (o) قبل
+t
.
عندما تحقق من الأذونات الجديدة لـ my_dir، سترى حرف T كبير في أذونات الآخرين، كما هو موضح في اللقطة المصورة أدناه.

الختام
تهانينا! لقد تناولت العديد من المواضيع حول الـ chmod
البارزة. أنت الآن جاهز للتعامل مع أي مشاكل إذن مزعجة تنشأ مع أداة الـ chmod
العظيمة. حتى تعلمت كيفية استغلال قوة الخيار التكراري (-R
)
كيف تنوي تطبيق وظائف الـ chmod
المتعددة الاستخدامات لصالحك في المرة القادمة التي ستحتاج فيها إلى إدارة أذونات الملف أو الدليل؟