نظرة عامة
يُعد التحكم في صلاحيات الوصول والمجموعات ركيزة أساسية لإدارة خوادم لينكس بأمان وموثوقية. يستعرض هذا الدليل التطبيقي كيفية توظيف الأداة chgrp لضبط وتحديث ملكية المجموعات للملفات والدلائل في نظام أوبونتو. سنتناول القواعد الأساسية للأمر مع التركيز على حالات الاستخدام الاحترافية، مثل التعديل الشامل عبر الشجرة التكرارية (-R)، ومطابقة الصلاحيات استناداً إلى ملف مرجعي (--reference)، بالإضافة إلى كيفية التعامل مع الروابط الرمزية (Symbolic Links) لضمان بيئة عمل آمنة ومنظمة.
المبادئ الأساسية لأمر chgrp وتعديل مجموعة ملف فردي
قبل البدء في تعديل ملكية الملفات، نحتاج أولاً إلى إنشاء مجموعة مستخدمين مخصصة لاختبار الإجراءات، وذلك بتنفيذ الأمر sudo groupadd -f devteam لتجهيز مجموعة العمل devteam.

بعد ذلك، نقوم بتجهيز ملف تجريبي داخل المسار المؤقت عبر تشغيل الأمر touch /tmp/sample_doc.txt.

لمعاينة بيانات الملف الحالية والاطلاع على المستخدم والمجموعة المسند إليهما، نستخدم أمر سرد الملفات بالتفصيل ls -l /tmp/sample_doc.txt.

صُممت أداة chgrp (وهي اختصار لعبارة Change Group) في بيئات يونكس ولينكس لتغيير المجموعة المالكة للعناصر داخل نظام الملفات.
لتخصيص الملف السابق للمجموعة الجديدة، ننفذ الأمر sudo chgrp devteam /tmp/sample_doc.txt.
⚙️ [خيارات التشغيل المهمة]
-c : الاقتصار على إظهار الإشعارات للملفات التي شهدت تغييراً فعلياً في مجموعتها.-f : تجاهل الرسائل التحذيرية وأخطاء تعذر تعديل الملكية دون إيقاف التنفيذ.-v : تفعيل وضع الشرح التفصيلي الذي يعرض مجريات العملية لكل عنصر تتم معالجته.-R : تطبيق التغييرات بشكل تكراري على الدليل وكافة المجلدات والملفات الفرعية بداخله.--reference=RFILE : اقتباس المجموعة المالكة من ملف مصدر محدد (RFILE) وتطبيقها تلقائياً دون كتابة اسم المجموعة يدوياً.

للتأكد من نجاح العملية وانتقال ملف /tmp/sample_doc.txt إلى مظلة المجموعة devteam، نعيد تشغيل الأمر ls -l /tmp/sample_doc.txt.

تطبيق التغيير التكراري على المجلدات ومحتوياتها (الخيار -R)
عند إدارة المشاريع البرمجية، غالباً ما تتطلب هياكل المجلدات المتشعبة تعديل ملكية جميع العناصر بداخلها دفعة واحدة. لتجربة ذلك، ننشئ مساراً شجرياً يضم مجلداً فرعياً باستخدام mkdir -p /tmp/project_dir/sub.

نملأ هذا الهيكل بعدة ملفات لاختبار عملية التغيير الجماعي عبر الأمر touch /tmp/project_dir/file1.txt /tmp/project_dir/sub/file2.txt.

قبل المضي قدماً، نراجع بيانات الصلاحيات والملكية الحالية للدليل ومحتوياته بالكامل من خلال استدعاء الأمر ls -lR /tmp/project_dir.

عند تزويد أمر chgrp بالمعامل -R، يقوم النظام بتمرير التعديل بشكل تراجعي وتكراري ليشمل المجلد المذكور وجميع التفرعات الداخلية دون استثناء.
ننفذ الأمر sudo chgrp -R devteam /tmp/project_dir لإسناد شجرة المشروع بالكامل إلى المجموعة devteam.

للتحقق من شمول التعديل لكل الملفات والمسارات الفرعية داخل الدليل، نستعرض النتائج مجدداً بواسطة ls -lR /tmp/project_dir.

استنساخ ملكية المجموعة بالاعتماد على ملف مرجعي (–reference)
في كثير من سيناريوهات التشغيل، قد ترغب في مطابقة صلاحيات ملف جديد مع ملف آخر معتمد دون الحاجة للبحث عن اسم المجموعة وكتابته. لتمثيل ذلك، ننشئ ملفاً مستهدفاً بواسطة touch /tmp/target_file.txt.

نقارن الوضع الراهن للملف المرجعي والملف المستهدف جنباً إلى جنب بتنفيذ ls -l /tmp/sample_doc.txt /tmp/target_file.txt.

باستخدام الخيار --reference، يتولى نظام التشغيل قراءة ملكية الملف الأصلي وتطبيق نفس المجموعة تلقائياً على الملف المحدد في نهاية الأمر.
نقوم بنسخ ضبط المجموعة من /tmp/sample_doc.txt وإسقاطه على /tmp/target_file.txt بتشغيل الأمر sudo chgrp --reference=/tmp/sample_doc.txt /tmp/target_file.txt.

للتثبت من مطابقة ملف /tmp/target_file.txt للملف المصدر وانضمامه لمجموعة devteam، نفحص خصائصه عبر ls -l /tmp/target_file.txt.

متابعة مجريات التعديل (-v) والتحكم في الروابط الرمزية (-h)
لخوض تجربة إضافية تغطي الروابط الرمزية، نضيف مجموعة جديدة متخصصة عبر تشغيل sudo groupadd -f qateam.

نقوم بربط الملف الرمزي بالملف الفعلي من خلال الأمر ln -sf /tmp/sample_doc.txt /tmp/sample_link لتشكيل بيئة الفحص المناسبة.

نعاين الوضع الأولي للرابط الرمزي لمعرفة المالك والمجموعة الافتراضية باستخدام ls -l /tmp/sample_link.

تفعيل الراية -v يُلزم الأمر بتقديم تقرير حي وتفصيلي في الطرفية يوضح ما تم تعديله بدقة.
ننفذ sudo chgrp -v qateam /tmp/sample_doc.txt لتحويل مجموعة الملف إلى qateam ومتابعة مخرجات العملية فوراً على الشاشة.

بشكل افتراضي، يؤدي تعديل الرابط الرمزي إلى التأثير على الملف الفعلي المستهدف؛ ولكن عند تضمين المعامل -h، يُوجَّه التعديل حصراً إلى كائن الرابط الرمزي ذاته دون المساس بالأصل.
نطبق ذلك عملياً عبر الأمر sudo chgrp -h qateam /tmp/sample_link لعزل الرابط بالتعديل الجديد.

للتأكد التام من استجابة الرابط الرمزي وتحديث مجموعته إلى qateam، نتحقق مجدداً بتنفيذ ls -l /tmp/sample_link.

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