دليل أمر chage في لينكس: إدارة صلاحية كلمات المرور

نظرة عامة

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

1. إعداد حساب تجريبي واستعراض تفاصيل الصلاحية الحالية (chage -l)

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

sudo id -u testuser &>/dev/null || sudo useradd -m testuser

عقب إنشاء المستخدم، نقوم بتعيين كلمة سر أولية للحساب عبر أداة chpasswd بشكل مباشر وفعال.

echo ’testuser:Password123!’ | sudo chpasswd

تختص أداة chage بالتحكم في سياسات انتهاء كلمات المرور وفترات تقادم الحسابات في لينكس. يمكن التحقق من كافة الإعدادات والتواريخ المرتبطة بالحساب testuser بتمرير الخيار -l.

⚙️ [أهم خيارات الأداة]

-l : استعراض كافة تفاصيل وسياسات تقادم كلمة المرور المرتبطة بالحساب.
-m : تحديد الحد الأدنى من الأيام الفاصلة قبل السماح بتغيير كلمة المرور مجدداً.
-M : تعيين أقصى مدة زمنية بالأيام لصلاحية استخدام كلمة المرور الحالية.
-W : ضبط عدد الأيام المحددة لتنبيه المستخدم وتحذيره قبل انتهاء صلاحية كلمته.
-I : تحديد فترة السماح (بالأيام) قبل تعطيل الحساب تماماً بعد انقضاء صلاحية كلمة المرور.
-E : تحديد تاريخ زمني محدد تنتهي عنده صلاحية الحساب بشكل نهائي ويتوقف عن العمل.
-d : تعيين التاريخ الذي تم فيه آخر تعديل لكلمة المرور.

sudo chage -l testuser

2. تخصيص فترات الاستخدام والتنبيه المسبق (-m، -M، -W)

لفرض نمط أمني متوازن، نحدد مدة بقاء كلمة المرور الدنيا بسبعة أيام عبر (-m 7) لمنع التغيير العشوائي المتكرر، بينما نلزم الحساب بتحديثها خلال فترة أقصاها تسعون يوماً باستخدام (-M 90). كما نمنح المستخدم مهلة تحذيرية قدرها أربعة عشر يوماً عبر (-W 14) لإشعاره باقتراب موعد التجديد.

sudo chage -m 7 -M 90 -W 14 testuser

نعيد فحص الحساب باستخدام الخيار -l للتحقق من اعتماد القيم الجديدة في قواعد بيانات النظام.
يُظهر المخرَج بوضوح سريان الحد الأدنى (7)، والحد الأقصى (90)، وأيام الإشعار المبكر (14)، بالإضافة إلى التاريخ المحسوب تلقائياً لموعد انقضاء صلاحية كلمة المرور.

sudo chage -l testuser

3. تعيين موعد إيقاف الحساب وفترة السماح بعد التعطيل (-E، -I)

عند إدارة الحسابات المؤقتة أو التعاقدية، يتعين إغلاق إمكانية الوصول بعد تاريخ محدد. نقوم ببرمجة انتهاء الحساب في تاريخ 31 ديسمبر 2026 عبر الخيار (-E 2026-12-31)، مع منح فترة سماح لمدة سبعة أيام بعد انقضاء صلاحية كلمة المرور قبل تجميد الحساب كلياً باستخدام الخيار (-I 7).

sudo chage -E 2026-12-31 -I 7 testuser

للتأكد من استجابة النظام للسياسة الأمنية المحدثة، نستعرض بيانات testuser مجدداً عبر المعامل -l.
توضح النتائج تاريخ إيقاف الحساب النهائي (Account expires : Dec 31, 2026) وموعد دخول الحساب في حالة التجميد الإجباري (Password inactive : Jan 21, 2027) بدقة متناهية وفق ما تم تخصيصه.

sudo chage -l testuser

4. إلزام المستخدم بتغيير كلمة المرور وتنظيف بيئة العمل (-d 0)

تقتضي أفضل الممارسات الأمنية عدم الاستمرار بكلمات المرور المبدئية التي يحددها المسؤول. بإعادة تعيين تاريخ آخر تغيير لكلمة المرور إلى القيمة صفر عبر (-d 0)، يُجبر النظام المستخدم على إنشاء كلمة مرور جديدة فور دخوله القادم قبل السماح له بالوصول إلى سطر الأوامر.

sudo chage -d 0 testuser

بفحص تفاصيل الحساب عبر -l، نرى أن كلاً من تاريخ التعديل الأخير (Last password change) وموعد الانتهاء (Password expires) قد تحولا إلى الحالة password must be changed، مما يؤكد إلزامية التغيير الفوري عند تسجيل الدخول القادم.

sudo chage -l testuser

بعد اكتمال مراحل الاختبار العملي، نحذف المستخدم testuser مع دليله المنزلي بالكامل باستخدام أداة userdel -r لضمان نظافة الخادم وخلوه من الحسابات الفائضة.

sudo userdel -r testuser

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