البحث في الموقع
المحتوى عن 'مجموعات'.
-
يجب أن تضع الحماية نصب عينيّك عند تثبيت ونشر واستخدام أي نوع من أنظمة تشغيل الحاسوب؛ وعلى الرغم من أن تثبيتًا حديثًا لأوبنتو هو آمن نسبيًا للاستخدام الفوري على الإنترنت، لكن من المهم أن يكون لديك فهم متوازن لحالة حماية أنظمتك بناءً على طريقة استخدامها بعد «نشرها» (deployment). يزودك هذا الدرس بلمحة عن المواضيع المرتبطة بالحماية المتعلقة بنسخة خادوم أوبنتو 14.04، ويخط الخطوط العريضة للإجراءات التي يمكنك أن تستخدمها لحماية خادومك وشبكتك من أي عدد من التهديدات الأمنية المحتملة. إدارة المستخدمينإدارة المستخدمين هي جزء جوهري في الحفاظ على نظامٍ آمن؛ تقود الإدارة غير الكفء للمستخدمين والامتيازات عادةً إلى إضعاف أمان النظام؛ وبالتالي من الضروري أن تفهم كيف تحميه باستخدام تقنيات إدارة حسابات المستخدمين. أين هو حساب الجذر؟اتخذ مطورو أوبنتو قرارًا واعيًا بتعطيل حساب الجذر الإداري افتراضيًا في جميع حالات تثبيت أوبنتو؛ هذا لا يعني أن حساب الجذر محذوفٌ أو لا يمكن الوصول إليه، حيث أُسنِدَت إليه ببساطة كلمة مرور لا تُطابِق أيّة قيمة؛ أي أنك لا تستطيع الدخول إليه مباشرةً. لكن بدلًا من ذلك، يُحَثّ المستخدمون أن يستخدموا أداةً باسم sudo لتنفيذ مهام إدارة النظام؛ حيث تسمح sudo لمستخدم موثوق بترقية امتيازاته باستخدام كلمة مروره بدلًا من الحاجة لمعرفة كلمة المرور الخاصة بحساب الجذر. هذه الطريقة البسيطة تعطي المسؤولية لجميع أفعال المستخدم، وتمنح مدير النظام تحكمًا بالأفعال التي يستطيع القيام بها مع امتيازاته الحالية. إذا أردت تفعيل حساب الجذر لسبب ما، فببساطة أسند كلمة مرور لذاك الحساب: sudo passwdستطلب منك أداة sudo كلمة مرورك، ثم ستطلب منك توفير كلمة مرور جديدة لحساب الجذر كما هو موضح هنا: [sudo] password for username: (enter your own password) Enter new UNIX password: (enter a new password for root) Retype new UNIX password: (repeat new password for root) passwd: password updated successfullyاستخدم الأمر passwd بهذه الطريقة لتعطيل كلمة مرور حساب الجذر: sudo passwd -l rootلكن إذا أردت تعطيل الحساب نفسه، فاستخدم الأمر الآتي: usermod --expiredate 1تستطيع التعلم أكثر عن sudo بالنظر إلى صفحة الدليل المتعلقة بهذا الأمر: man sudoينتمي المستخدم الذي أُنشِئ أثناء تثبيت أوبنتو افتراضيًا إلى المجموعة «sudo» المُضافة إلى ملف /etc/sudoers كمستخدم sudo موثوق؛ إذا رغبت بمنح أيّ حساب آخر امتيازات الجذر كاملةً عبر sudo، فأضف ذاك الحساب إلى المجموعة sudo. إضافة وحذف المستخدمينعملية إدارة المستخدمين المحليين والمجموعات هي عملية بسيطة ومباشرة ولا تختلف إلا قليلًا بين أغلبية أنظمة تشغيل غنو/لينُكس الأخرى؛ تحث أوبنتو، والتوزيعات المبنية على دبيان، على استخدام الحزمة «adduser» لإدارة الحسابات. لإضافة حساب مستخدم جديد، استخدم الشكل العام الآتي، وأكمل مع الرسائل التي تطلب منك إعطاء كلمة مرور للحساب، وتعريف بعض الخاصيات مثل الاسم الكامل ورقم الهاتف ...إلخ. sudo adduser usernameاستخدم الأمر الآتي لحذف مستخدم ومجموعته الرئيسية: sudo deluser usernameلا يؤدي حذف حساب مستخدم إلى حذف مجلد المنزل الموافق له؛ هذا يعود لك إن كنت تريد أو لا تريد حذف المجلد يدويًا أو الإبقاء عليه وفقًا لسياساتك. تذكر أن أي مستخدم آخر يُضاف لاحقًا بنفس معرفَيّ UID/GID للمستخدم القديم سيحصل على وصول كامل لهذا المجلد إذا لم تتخذ الاحتياطات اللازمة. قد ترغب بتغيير قيم UID/GID إلى قيم أخرى ملائمة أكثر -كحساب الجذر مثلًا- وربما تريد أيضًا نقل المجلد لتفادي التضاربات المستقبلية: sudo chown -R root:root /home/username/ sudo mkdir /home/archived_users/ sudo mv /home/username /home/archived_users/لكي تقفل حساب مستخدم مؤقتًا أو تلغي قفله، فاستخدم الأمر passwd مع الخيارات الموافقة للعملية التي تريد إجراءها كما يلي (على التوالي وبالترتيب): sudo passwd -l username sudo passwd -u usernameلإضافة أو حذف مجموعة خاصة، فاستخدم الأمرين الآتيين على التوالي وبالترتيب: sudo addgroup groupname sudo delgroup groupnameاستخدم الشكل الآتي من أمر adduser لإضافة مستخدم إلى مجموعة: sudo adduser username groupnameأمن حساب المستخدمعندما يُنشأ مستخدمٌ جديد، فستُنشِئ الأداة adduser مجلد منزل جديد باسم /home/username، يتشكل ملف الحساب (profile) الافتراضي اعتمادًا على المحتويات الموجودة في مجلد /etc/skel الذي يحتوي على أساسيات ضبط الحساب. إذا كان سيحتوي خادومك على عدّة مستخدمين، فيجب أن تولي أذونات مجلد المنزل للمستخدم اهتمامًا شديدًا لتحقيق سرية بياناته؛ افتراضيًّا، مجلدات منزل المستخدم في أوبنتو تُنشَأ بأذونات القراءة والتنفيذ؛ هذا يعني أن كل المستخدمين يستطيعون الوصول والتجول في محتويات مجلدات المنزل للمستخدمين الآخرين، ربما لا يلائم ذلك احتياجات بيئة تشغيل نظامك. استخدم الأمر الآتي للتأكد من أذونات مجلد المنزل للمستخدمين الحاليين: ls -ld /home/usernameيُظهِر الناتج الآتي أن مجلد /home/username لديه أذن القراءة لجميع المستخدمين (العالم أو world): drwxr-xr-x 2 username username 4096 2007-10-02 20:03 usernameتستطيع إزالة أذن القراءة للجميع بتنفيذ الأمر: sudo chmod 0750 /home/usernameملاحظة: بعض الأشخاص يميلون لاستخدام الخيار التعاودي (-R [recursive]) دومًا دون تمييز الحالات التي يجب استخدامه فيها، الذي يُعدِّل أذونات المجلدات «الأبناء» والملفات التي فيها، لكن هذا ليس ضروريًا، وربما يتسبب ببعض النتائج غير المرغوب بها؛ يكفي تعديل أذونات المجلد «الأب» فقط لمنع المستخدمين غير المصرَّح لهم بدخول أي شيء داخل هذا المجلد الأب. طريقة أخرى أكثر فعاليةً هي تعديل ضبط الأذونات الافتراضية العام للأداة adduser عند إنشاء مجلدات المنزل للمستخدمين الجدد؛ عدِّل ببساطة الملف /etc/adduser.conf وغيِّر قيمة المتغير DIR_MODE إلى قيمةٍ مناسبةٍ، حيث ستحصل جميع مجلدات المنزل الجديدة على الأذونات الصحيحة: DIR_MODE=0750بعد تصحيح أذونات المجلد باستخدام إحدى الطرق السابق ذكرها، فتأكد من النتائج بالأمر: ls -ld /home/usernameالنتائج الآتية تُظهِر أنه قد أُزيل إذن القراءة لجميع المستخدمين: drwxr-x--- 2 username username 4096 2007-10-02 20:03 usernameسياسة كلمة المرورأحد أهم الجوانب في حماية نظامك هو استخدام سياسة قوية لكلمات المرور؛ إذ تتطلب العديد من الاختراقات الأمنية الناجحة استخدام هجمات «القوة القاسية» (brute force) وتخمين كلمات المرور الضعيفة من القاموس؛ إذا كنت تنوي توفير أي نوع من التحكم البعيد الذي يتطلب كلمة المرور المحلية للنظام، فتأكد أنك تحقق المتطلبات الدنيا من تعقيد كلمات المرور، ومدة كلمة المرور الدنيا، والتدقيق الرتيب لأنظمة الاستيثاق عندك. طول كلمة المرور الدنياتتطلب أوبنتو افتراضيًا طولًا أصغريًا لكلمة المرور يساوي ستة محارف، يمكن التحكم بهذه القيمة في ملف /etc/pam.d/common-password الظاهر هنا: password [success=2 default=ignore] pam_unix.so obscure sha512إذا أردت تغيير الحد الأدنى لطول كملة المرور إلى ثمانية محارف، فعدِّل المتغير الملائم إلى min=8؛ كما يلي: password [success=2 default=ignore] pam_unix.so obscure sha512 min=8ملاحظة: التحقق البسيط من كلمة المرور، والطول الأدنى لها لا يُطبَّق على الأوامر المُنفَّذة باستخدام sudo لإعداد مستخدم جديد. مدة صلاحية كلمة المرورعند إنشاء حسابات للمستخدمين، فيجب أن تُنشِئ سياسة لعمر كلمة المرور الأدنى والأقصى وإجبار المستخدمين على تغيير كلمات مرورهم عندما تنتهي مدتها. استخدم الأمر الآتي لعرض حالة حساب مستخدم: sudo chage -l usernameيُظهِر ناتج الأمر السابق حقائق مثيرة للاهتمام حول حساب المستخدم، ولنفترض أنه لا توجد أيّة سياسات مطبَّقة: Last password change : Jan 20, 2008 Password expires : never Password inactive : never Account expires : never Minimum number of days between password change : 0 Maximum number of days between password change : 99999 Number of days of warning before password expires : 7استخدم الأمر الآتي ببساطة وتابع مع الرسائل التفاعلية لضبط أيّة قيمة من هذه القيم: sudo chage usernameما يلي مثالٌ لطريقة تغيير تاريخ انتهاء الصلاحية (-E) إلى 01/31/2008، والعمر الأدنى لكلمة المرور (-m) إلى 5 أيام، والعمر الأقصى لكلمة المرور (-M) إلى 90 يومًا، ومدة الخمول (inactivity، الخيار -I) إلى 5 أيام بعد انتهاء صلاحية كلمة المرور، ومدة وقت التحذير (-W) إلى 14 يومًا قبل انتهاء صلاحية كلمة المرور. sudo chage -E 01/31/2008 -m 5 -M 90 -I 5 -W 14 usernameللتأكد من التعديلات، استخدم نفس الأمر المذكور آنفًا: sudo chage -l usernameيجب أن يُظهِر الناتج السياسات الجديدة التي أعددناها لهذا الحساب: Last password change : Jan 20, 2008 Password expires : Apr 19, 2008 Password inactive : May 19, 2008 Account expires : Jan 31, 2008 Minimum number of days between password change : 5 Maximum number of days between password change : 90 Number of days of warning before password expires : 14اعتبارات أمنية أخرىتستخدم العديد من التطبيقات آليات استيثاق أخرى يمكن أن يغفلها حتى مدراء الأنظمة الخبراء؛ وبالتالي فمن المهم فهم والتحكم في طريقة استيثاق المستخدمين وحصولهم على الوصول إلى الخدمات والتطبيقات على خادومك. وصول SSH من المستخدمين المعطلينلا يمنع تعطيل حساب مستخدم من دخوله إلى خادومك عن بعد إن كان قد ضبط استيثاق بمفتاح RSA عام؛ وسيتمكنون من الحصول على وصول إلى الصدفة (shell) في الخادوم دون الحاجة لأيّة كلمة مرور؛ تذكر أن تتحقق من مجلد المنزل للمستخدمين الذي يسمحون بهذا النوع من وصول SSH الذي تم الاستيثاق منه؛ أي /home/username/.ssh/authroized_keys. احذف أو أعد تسمية مجلد .ssh/ في مجلد المنزل للمستخدم لتعطيل إمكانيات الاستيثاق عبر SSH. تأكد أن تتحقق من أيّة اتصالات SSH قد أُنشِئت من المستخدم المعطَّل؛ حيث من الممكن أن يملكوا اتصالات داخلة أو خارجة موجودة مسبقًا، «اقتل» (kill) تلك العمليات إذا عثرت عليها. who | grep username # to get the pts/X terminal sudo pkill -f pts/Xاحصر الوصول عبر SSH إلى حسابات المستخدمين الذين يجب أن يحصلوا عليها فقط؛ فعلى سبيل المثال، ربما تنُشِئ مجموعة تسميها «sshlogin» وتضيف اسم المجموعة كقيمة مرتبطة بالمتغير AllowGroups الموجود في الملف /etc/ssh/sshd_config. AllowGroups sshloginثم أضف مستخدمي SSH المسموح لهم إلى المجموعة «sshlogin»، وأعد تشغيل خدمة SSH: sudo adduser username sshlogin sudo service ssh restartاستيثاق المستخدم بقواعد البيانات الخارجيةتتطلب معظم الشبكات المشاريع التجارية آليةَ استيثاقٍ مركزية والتحكم بالوصول إلى جميع مصادر النظام، إذا ضبطت خادومك ليستوثق من المستخدمين من قاعدة بيانات خارجية؛ فتأكد من تعطيل حسابات المستخدمين محليًا وخارجيًا، وبهذا تتأكد من أن البديل المحلي للاستيثاق غير متوفر. تأمين الطرفيةوكما غيرها من ترسانة الحماية التي تستخدمها لحماية خادومك، من القواعد الصارمة هو التأمين ضد الأضرار الناتجة عن شخص لديه الوصول الفيزيائي لبيئتك، على سبيل المثال، سرقة الأقراص الصلبة، أو خلل في الطاقة الكهربائية ...إلخ؛ وبالتالي يجب أن يكون تأمين الطرفية جزءًا رئيسيًا في استراتيجية الحماية الفيزيائية؛ سيحد «قفل الشاشة» (screen door) من تأثير مجرم عادي، أو على الأقل سيبطئ عمل مجرم مصمم على إلحاق الأذى بنظامك! لذلك من المستحسن إجراء بعض احتياطات الوقاية فيما يتعلق بحماية الطرفية. سيساعدك ما يلي في الدفاع عن خادومك ضد المشاكل التي قد تسبب عواقب وخيمة. تعطيل Ctrl+Alt+Deleteبادئ ذي بدء، يستطيع أي شخص لديه الوصول الفيزيائي للوحة المفاتيح ببساطة أن يستخدم تجميعة المفاتيح «Ctrl+Alt+Delete» لإعادة إقلاع الخادوم دون الحاجة لتسجيل الدخول؛ طبعًا يمكن لأي شخص إزالة كبل الكهرباء من المقبس، لكن ما يزال عليك منع استخدام هذه التجميعة على خادوم إنتاجي؛ وهذا يجبر المهاجم على اتخاذ إجراءات عنيفة لإعادة إقلاع الخادوم، وسوف يمنع إعادة الإقلاع غير المقصودة في نفس الوقت. لتعطيل إعادة إقلاع الخادوم بالضغط على تجميع الأزرار Ctrl+Alt+Delete، فضع رمز التعليق قبل السطر الآتي في ملف /etc/init/control-alt-delete.conf: #exec shutdown -r now "Control-Alt-Delete pressed"ترجمة -وبتصرف- للمقال Ubuntu Server Guide: User Management.
-
تعرفنا في المقالين السابقين على كيفية تثبيت وضبط خادوم OpenLDAP على أوبنتو و كيفية القيام بعملية التناسخ لتفادي توقف الخادوم. استيثاق LDAPبعد أن أصبح عندك خادوم LDAP يعمل جيدًا، فستحتاج إلى تثبيت مكتبات على جهاز العميل التي تعلم كيف ومتى عليها أن تتصل إلى الخادوم؛ يتم ذلك في أوبنتو تقليديًا بتثبيت حزمة libnss-ldap؛ ستجلب هذه الحزمة أدواتٍ أخرى، وستساعدك في خطوة الضبط؛ ثبت الآن الحزمة: sudo apt-get install libnss-ldapستُسأل عن معلوماتٍ حول خادوم LDAP؛ إذا ارتكبت خطأً هنا، فتستطيع المحاولة مرة أخرى بالأمر: sudo dpkg-reconfigure ldap-auth-configستظهر نتائج مربع الحوار السابق في ملف /etc/ldap.conf، إذا تطلَّب الخادوم خياراتٍ غير موجودة في القائمة، فعليك تعديل هذا الملف وفقًا لها. اضبط LDAP لاستخدامه مع NSS: sudo auth-client-config -t nss -p lac_ldapاضبط النظام لاستخدام LDAP للاستيثاق: sudo pam-auth-updateاختر LDAP وأيّة آليات استيثاق أخرى قد تحتاج لها من القائمة. تستطيع الآن تسجيل الدخول بتصاريح مبنية على LDAP. سيحتاج عملاء LDAP إلى الإشارة إلى عدّة خواديم إذا اُستخدِم الاستنساخ؛ يجب أن تضع شيئًا شبيهًا بالسطر الآتي في ملف /etc/ldap.conf: uri ldap://ldap01.example.com ldap://ldap02.example.comإذا نَفِذَت مهلة (timeout) الطلب، فسيحاول العميل الوصول إلى المستهلك (ldap02) إذا لم يستجيب المزود (ldap01). إذا كنت تريد استخدام LDAP لتخزين مستخدمي سامبا، فإن عليك ضبط سامبا ليستوثق عبر LDAP، وسنشرح ذلك في الدرس القادم. ملاحظة: بديل عن حزمة libnss-ldap هي حزمة libnss-ldapd؛ التي ستجلب معها حزمة nscd الذي قد لا نرغب فيها؛ احذفها ببساطة بعد التثبيت. إدارة المستخدمين والمجموعاتتأتي حزمة ldap-utils مع أدوات كافية لإدارة الدليل، لكن السلسلة الكبيرة من الإعدادات المطلوبة قد تصعِّب استخدامها؛ تحتوي حزمة ldapscripts على سكربتات متعلقة بهذه الأدوات التي يجدها بعض الأشخاص أسهل في الاستخدام. ثبِّت الحزمة: sudo apt-get install ldapscriptsثم عدِّل الملف /etc/ldapscripts/ldapscripts.conf حتى يصبح شبيهًا بالآتي: SERVER=localhost BINDDN='cn=admin,dc=example,dc=com' BINDPWDFILE="/etc/ldapscripts/ldapscripts.passwd" SUFFIX='dc=example,dc=com' GSUFFIX='ou=Groups' USUFFIX='ou=People' MSUFFIX='ou=Computers' GIDSTART=10000 UIDSTART=10000 MIDSTART=10000أنشِئ الآن الملف ldapscripts.passwd لكي يستطيع rootDN الوصول إلى الدليل: sudo sh -c "echo -n 'secret' > /etc/ldapscripts/ldapscripts.passwd" sudo chmod 400 /etc/ldapscripts/ldapscripts.passwdملاحظة: ضع كلمة المرور الخاصة بمستخدم rootDN بدلًا من «secret». أصبحت السكربتات جاهزةً لإدارة دليلك؛ هذه بضعة أمثلة حول طريقة استخدامها: إنشاء مستخدم جديد: sudo ldapadduser george exampleهذا ما سيُنشِئ مستخدمًا بمعرِّف george ويضبط مجموعة المستخدم الرئيسية إلى example. تغيير كلمة مرور المستخدم: sudo ldapsetpasswd george Changing password for user uid=george,ou=People,dc=example,dc=com New Password: New Password (verify):حذف مستخدم: sudo ldapdeleteuser georgeإضافة مجموعة: sudo ldapaddgroup qaحذف مجموعة: sudo ldapdeletegroup qaإضافة مستخدم إلى مجموعة: sudo ldapaddusertogroup george qaعليك أن ترى الآن خاصية memberUid لمجموعة qa ذات القيمة george. إزالة مستخدم من مجموعة: sudo ldapdeleteuserfromgroup george qaيجب أن تزال الآن الخاصية memberUid من المجموعة qa. يسمح لك سكربت ldapmodifyuser بإضافة أو حذف أو استبدل خاصيات المستخدم؛ يستخدم هذا السكربت البنية العامة لأداة ldapmodify، على سبيل المثال: sudo ldapmodifyuser george # About to modify the following entry : dn: uid=george,ou=People,dc=example,dc=com objectClass: account objectClass: posixAccount cn: george uid: george uidNumber: 1001 gidNumber: 1001 homeDirectory: /home/george loginShell: /bin/bash gecos: george description: User account userPassword:: e1NTSEF9eXFsTFcyWlhwWkF1eGUybVdFWHZKRzJVMjFTSG9vcHk= # Enter your modifications here, end with CTRL-D. dn: uid=george,ou=People,dc=example,dc=com replace: gecos gecos: George Carlinيجب أن يصبح الآن المستخدم gecos باسم «George Carlin». ميزة جميلة من ميزات ldapscripts هو نظام القوالب؛ تسمح لك القوالب بتخصيص خاصيات المستخدم، والمجموعة، وكائنات الجهاز؛ فعلى سبيل المثال، لتفعيل قالب user، عدِّل الملف /etc/ldapscripts/ldapscripts.conf مغيّرًا: UTEMPLATE="/etc/ldapscripts/ldapadduser.template"هنالك عينات عن القوالب في مجلد /etc/ldapscripts، انسخ أو أعد تسمية ملف ldapadduser.template.sample إلى /etc/ldapscripts/ldapadduser.template: sudo cp /usr/share/doc/ldapscripts/examples/ldapadduser.template.sample \ /etc/ldapscripts/ldapadduser.templateعدِّل القالب الجديد ليضيف الخاصيات التي تريدها؛ سيُنشِئ ما يلي مستخدمين جدد بقيمة inetOrgPerson للخاصية objectClass: dn: uid=<user>,<usuffix>,<suffix> objectClass: inetOrgPerson objectClass: posixAccount cn: <user> sn: <ask> uid: <user> uidNumber: <uid> gidNumber: <gid> homeDirectory: <home> loginShell: <shell> gecos: <user> description: User account title: Employeeلاحظ القيمة <ask> المُستخدَمة للخاصية sn؛ وهي ما سيجعل ldapadduser يسألك عن قيمتها. هنالك أدوات في هذه الحزمة لم نشرحها هنا، هذه هي قائمةٌ كاملةٌ بها: ldaprenamemachine ldapadduser ldapdeleteuserfromgroup ldapfinger ldapid ldapgid ldapmodifyuser ldaprenameuser lsldap ldapaddusertogroup ldapsetpasswd ldapinit ldapaddgroup ldapdeletegroup ldapmodifygroup ldapdeletemachine ldaprenamegroup ldapaddmachine ldapmodifymachine ldapsetprimarygroup ldapdeleteuserالنسخ الاحتياطي والاسترجاعالآن يجب أن يعمل LDAP كما نريده تمامًا، فحان الآن الوقت للتحقق من أن عملنا يمكن أن يُستَرجَع وقت الحاجة. كل ما نحتاج هو طريقة لنسخ قاعدة بيانات ldap احتياطيًا، وخصوصًا السند الخلفي (backend التي هي cn=config) والواجهة الأمامية (frontend التي هي dc=example,dc=com)؛ إذا كنت ستنسخ هذه القواعد نسخًا احتياطيًا إلى- ولِنَقُل- /export/backup، فإننا سنستخدم slapcat كما هو موضَّح في السكربت الآتي المدعو /usr/local/bin/ldapbackup: #!/bin/bash BACKUP_PATH=/export/backup SLAPCAT=/usr/sbin/slapcat nice ${SLAPCAT} -n 0 > ${BACKUP_PATH}/config.ldif nice ${SLAPCAT} -n 1 > ${BACKUP_PATH}/example.com.ldif nice ${SLAPCAT} -n 2 > ${BACKUP_PATH}/access.ldif chmod 640 ${BACKUP_PATH}/*.ldifملاحظة: هذه الملفات هي ملفات نصية غير مضغوطة تحتوي كل شيء في قواعد بيانات LDAP بما فيها مخطط الشجرة، وأسماء المستخدمين، وكل كلمات المرور؛ لذلك ربما تفكر في جعل /export/backup قسمًا مشفرًا؛ وحتى كتابة سكربت يشفر هذه الملفات عند إنشائها، وربما تفعل كلا الأمرين، ولكن ذلك متعلقٌ بمتطلبات الأمن في نظامك. كل ما يلزم الآن هو الحصول على سكربت مهام مجدولة (cron) لتشغيل هذا البرنامج كل فترة زمنية (ترى أنها مناسبة)؛ سيكون ملائمًا للكثيرين جدولة تنفيذ البرنامج مرة واحدة كل يوم؛ لكن قد يحتاج الآخرون إلى مراتٍ أكثر في اليوم؛ هذا مثال عن سكربت cron مدعو /etc/cron.d/ldapbackup، والذي سيعمل كل ليلة في تمام الساعة 22:45: MAILTO=backup-emails@domain.com 45 22 * * * root /usr/local/bin/ldapbackupوبعد إنشاء الملفات، يجب نقلها لخادوم النسخ الاحتياطي. وعلى فرض أنك أعدت تثبيت ldap، فإن عملية الاسترجاع ستكون شبيهةً بما يلي: sudo service slapd stop sudo mkdir /var/lib/ldap/accesslog sudo slapadd -F /etc/ldap/slapd.d -n 0 -l /export/backup/config.ldif sudo slapadd -F /etc/ldap/slapd.d -n 1 -l /export/backup/domain.com.ldif sudo slapadd -F /etc/ldap/slapd.d -n 2 -l /export/backup/access.ldif sudo chown -R openldap:openldap /etc/ldap/slapd.d/ sudo chown -R openldap:openldap /var/lib/ldap/ sudo service slapd startمصادرالمصدر الأساسي هو توثيق www.openldap.org.هنالك الكثير من صفحات الدليل للحزمة slapd؛ هذه أهمها آخذين بعين الاعتبار المعلومات المقدمة في هذا الفصل:man slapd man slapd-config man slapd.access man slapo-syncprovصفحات الدليل الأخرى: man auth-client-config man pam-auth-updateصفحة ويكي مجتمع أوبنتو «OpenLDAP» تحتوي مجموعةً من الملاحظات.كتاب O'Reilly المدعو «LDAP System Administration».كتاب Packt المدعو «Mastering OpenLDAP».ترجمة -وبتصرف- للمقال Ubuntu Server Guide: OpenLDAP Server.
-
يفترض هذا الدرس أنّك قد قمتَ بالفعل بإنشاء خادوم افتراضي خاصّ (VPS) وإضافة العديد من حسابات المستخدمين إليه. يتم تطبيق نظام الحصص (Quotas) في غالب الأحيان على مستخدمي FTP أو SFTP، ولكن من الممكن أيضًا تطبيقه على أيّ مستخدم على النظام. لاحظ أنّه من غير الممكن استخدام ميّزة المستخدم الوهمي (virtual user) عبر VSFTP، لأنّ المستخدمين لا يجب أن يكونوا موجودين على النظام أصلًا. يتم استخدام الحصص لتقييد المساحة التي يمكن لمستخدم أو مجموعة أن يستخدمها على الخادوم. هناك عادةً طريقتان لإدارة الحصص: الأولى عبر إنشاء نظام ملفّاتٍ فارغ خاصّ بمستخدمٍ معيّن ومن ثمَّ ضمّه (mount) إلى النظام. ميّزة هذه الطريقة هي أنّك لا تحتاج تثبيت أيّ حزمة إضافية خارجية. والطريقة الثانية هي عبر استخدام أداة لإدارة الحصص وتنظيمها. ميّزة هذه الطريقة هي إمكانية تغيير الحصص بسهولة بدون الحاجة إلى القيام بأيّ تغييراتٍ معقّدة على نظام الملفّات. تثبيت Quotaسنبدأ العملية عبر تثبيت برنامج quota: apt-get install quotaيجب أن يتم تعديل خيارات الضمّ (mount) الخاصّة بنظام الملفّات قبل أن نتمكّن من استخدام الحصص. يجب أن نفتح ملفّ fstab ونقوم بتعديله عبر الأمر التالي: sudo nano /etc/fstabيتم تفعيل الحصص عبر إضافة usrquota و/أو grpquota إلى خيارات الضمّ للقرص الصلب الرئيسي. عند استخدام usrquota، فإنّه سيتم تفعيل الحصص على مستخدمين معيّنين فقط، بينما يسمح خيار grpquota بتفعيل نظام الحصص لمجموعات معيّنة. يمكن إضافة الخيارين بشكلٍ منفصل بناء على النتيجة التي تريد الوصول إليها. يجب أن يتم تعديل ملفّ fstab كالتالي لتفعيل نظام الحصص على حسابات المستخدمين (إذا كنتَ تريد تفعيل نظام الحصص على المجموعات، فقم بإضافة grpquota): LABEL=DOROOT / ext4 errors=remount-ro,usrquota 0 1احفظ الملفّ وقم بتفعيل خيارات الضمّ الجديدة عبر إعادة ضمّ نظام الملفّات بالأمر: mount -o remount /سيقوم الأمر التالي بإنشاء ملفّ حصص جديد في مسار الجذر الخاصّ بنظام الملفّات. سيكون هذا الملفّ عبارةً عن ملف فهرس يتم استخدامه بواسطة نظام الحصص لإدارة حجم حصّة كلّ مستخدم من مساحة القرص. يحتوي الملفّ أيضًا على تقييدات المستخدمين والإعدادات المضبوطة. quotacheck -cum /يتألّف الأمر من المُعامِلات الثلاثة التالية: يقوم المُعامِل c بالإشارة إلى ضرورة إنشاء ملفٍّ جديد، وسيقوم بالكتابة فوقه في حال كان موجودًا مسبقًا.يشير المُعامِل u إلى أنّه يجب إنشاء ملفّ فهرس جديد للمستخدمين. لإنشاء ملفّ فهرس للمجموعات كذلك، قم بإضافة المُعامِل g في الأمر السابق.وأخيرًا يحدد المُعامِل m أنّه ليس هناك حاجة إلى القيام بعمليّة ضمّ بوضع القراءة فقط لنظام الملفّات بأكمله لإنشاء ملفّات الفهارس.بسبب استخدام المُعامِل m، فإنّه من الممكن أن يحصل عدم تطابق صغير بين الحجم الذي قمتَ بتحديده لحصّة مساحة المستخدم وبين الحجم الذي سيتم استخدامه بالفعل من قبل برنامج quota. تأكّد من أنّه لا يوجد مستخدم يقوم حاليًا برفع الملفّات إلى الخادوم عند تطبيق الأمر السابق لتقليل حجم الفرق. يقوم الأمر التالي بتفعيل نظام الحصص على نظام الملفّات المطلوب: quotaon /يمكن استخدام أمرٍ مشابه لتعطيل نظام الحصص بأكمله: quotaoffإعداد الحصص المختلفة لحسابات المستخدمينيمكن إعداد الحصص باستخدام الأمر edquota متبوعًا باسم المستخدم أو اسم المجموعة. سيقوم الأمر بفتح محرر الملفّات الافتراضي، في درسنا هذا، سنفترض أنّ المستخدم ftpuser يجب أن يتم تخصيص مساحة 10ميغابت له. الأمر الذي سنستخدمه هو هذا: edquota ftpuserوالذي سيقوم بفتح الملفّ للتعديل: Disk quotas for user ftpuser (uid 1001): Filesystem blocks soft hard inodes soft hard /dev/disk/by-label/DOROOT 8 10000 10240 2 0 0يعرض محرر النصوص 7 أعمدة مختلفة: يحدد اسم نظام الملفّات الذي تمّ تفعيل نظام الحصص عليه.يحدد حجم الكُتَل (Blocks) المُستخدمة حاليًا من قبل المستخدم.يحدد حدّ soft block للمستخدم على نظام الملفّات.يحدد حدّ hard block للمستخدم على نظام الملفّات.يحدد عدد عُقَد inodes المُستخدمة حاليًا بواسطة المستخدم.يحدد حدّ soft inode للمستخدم على نظام الملفّات.يحدد حدّ hard inode للمستخدم على نظام الملفّات.تشير الكُتَل (Blocks) إلى حجم المساحة التي يجب استخدامها، بينما تشير الـinodes إلى عدد الملفّات/المجلّدات التي يمكن استخدامها. عادةً ما يتم استخدام حجم الكتلة في برنامج quota. حدّ hard block هو المساحة القصوى من القرص الصلب التي يمكن لمستخدم أو مجموعة استخدامها. بمجرّد الوصول إلى هذا الحدّ، فلن يتم استخدام أيّ مساحة إضافية من على القرص الصلب. يُعرِِّف حدّ soft block أيضًا أقصى مساحة يمكن للمستخدم أو المجموعة استخدامها، إلّا أنّه وعلى عكس hard block، فإنّه يمكن للمستخدم أن يقوم بتخطّي الحدّ الأقصى المسموح لفترة معيّنة من الزمن فقط، تعرف هذه الفترة باسم فترة المهلة (grace period). سنتعرّف على المزيد من المعلومات عنها لاحقًا في هذا الدرس. في المثال أعلاه، استخدمنا الحدّ الناعم (soft limit) بمساحة 9,785Mb والحدّ الصلب (hard limit) بمساحة 10Mb. يمكنك القيام ببدء عملية نقل ملفّات عبر برتوكول FTP/SFTP، حيث يكون الملفّات المرفوعة بحجم 12Mb مثلًا(طالما يكون حجمها أكبر من الحدّ الصلب hard limit). سيتم إرجاع رسالة خطأ إليك من طرف برنامج عميل FTP/SFTP تخبرك بأنّ عملية الرفع قد فشلت. بالطبع فإنّ تخصيص مساحة 10Mb للمستخدم ليس أمرًا منطقيًا، وسنخصص الآن حدًّا ناعمًا بمساحة 976Mb وحدًّا صلبًا بمساحة 1Gb: Disk quotas for user ftpuser (uid 1001): Filesystem blocks soft hard inodes soft hard /dev/disk/by-label/DOROOT 8 1000000 1048576 2 0 0للتحقق من حصّة مستخدم معيّن، يمكن أن يتم تنفيذ الأمر التالي متبوعًا باسم المستخدم أو اسم المجموعة: quota ftpuserوسيكون الخرج على شكل: Disk quotas for user ftpuser (uid 1001): Filesystem blocks soft hard inodes soft hard /dev/disk/by-label/DOROOT 8 1000000 1048576 2 0 0إنشاء التقاريرمن الممكن إنشاء التقارير من مختلف أنظمة الحصص عبر الأمر: repquota -aوالذي سيقوم بطباعة الخرج التالي لك: *** Report for user quotas on device /dev/disk/by-label/DOROOT Block grace time: 7days; Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace ------------------------------------------------------------------------------------ root -- 1118708 0 0 37093 0 0 daemon -- 68 0 0 4 0 0 man -- 9568 0 0 139 0 0 www-data -- 2908 0 0 15 0 0 nobody -- 0 0 0 1 0 0 libuuid -- 24 0 0 2 0 0 Debian-exim -- 44 0 0 10 0 0 mysql -- 30116 0 0 141 0 0 ftpuser -- 8 1000000 1048576 2 0 0فرعي: تحديد فترة مهلةلإعطاء المستخدمين الحاليين بعض الوقت لتقليل مساحة ملفّاتهم على الخادوم، يمكن إعداد فترة مهلة (grace period). تسمح هذه الفترة للمستخدمين بأن يتعدّوا الحدّ الناعم (soft limit) المحدد لهم بينما يبقون تحت سقف الحدّ الصلب (hard limit). يمكن إعداد فترة المهلة عن طريق الأمر التالي (لاحظ أنّ هذه الفترة سيتم تطبيقها على جميع المستخدمين، لا يوجد إمكانية لتطبيقها على مستخدمين معيّنين مثلًا) ويمكنك التعبير عن الفترة التي تريدها بالثواني أو الدقائق أو الساعات أو الشهور.. إلخ: edquota -tسيعطيك الأمر أعلاه الخرج التالي وسيقوم بإخبارك بالوقت الذي يمكنك أن تستخدمه. في هذا الدرس، تمّ استخدام فترة 7 أيام لفترة المهلة: Grace period before enforcing soft limits for users: Time units may be: days, hours, minutes, or seconds Filesystem Block grace period Inode grace period /dev/disk/by-label/DOROOT 7days 7daysخاتمةسيتم تحديث وتطبيق الحصص تلقائيًا عندما يقوم مستخدمٌ ما بإنشاء / حذف / نقل ملفّ أو مجلّد. تذكّر أنّ برنامج quota يعمل عبر النظر إلى مجلّدات المستخدمين أو المجموعات المحددة. يمكن لمستخدمي SSH التخلّص من نظام الحصص عبر تغيير مالك الملفّات الخاصّة بهم. ترجمة -وبتصرف- للمقال: How To Enable User and Group Quotas لصاحبه: Jan Stevens.
-
يشكّل ضبط إعدادات المستخدمين والمجموعات في لينكس واحدًا من المهارات الأساسية لإدارة نظام التشغيل، ويتضمن ذلك مراقبة تسجيلات الدخول الممكنة لكافة مكونات النظام. نستعرض في هذا الدرس المعلومات الأساسية عن إدارة المستخدمين وتسجيلات الدخول، سنطبق أمثلتنا على توزيعة Ubuntu 14.04 إلا أنه يمكنك بالتأكيد المتابعة مهما كانت التوزيعة التي تستخدمها. استعراض المستخدمين الحاليينتخزّن أسماء ومعلومات جميع مستخدمي نظام لينكس ضمن ملف etc/passwd/ سواءً أكانت تشير إلى مستخدمين حقيقيين (مثلي ومثلك) أو مرتبطة بتشغيل إحدى الخدمات أو وظائف النظام. يتضمن الملف etc/passwd/ معلومات حول المستخدمين المنشأين على نظام التشغيل موزعة على عدّة أسطر، بحيث يُخصّص سطر لكل مستخدم، لنلقِ الآن نظرة على محتويات الملف: less /etc/passwdroot:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/bin/sh … ينقسم كل سطر من الأسطر السابقة إلى عدّة خانات يفصل بينها علامة النقطتين (:)، وما يهمنا من هذه الخانات حاليًا هي الخانة الأولى والتي تعبّر عن الاسم الفريد لكل مستخدم، كما يمكن من خلال الأمر التالي الحصول على القائمة السابقة مُضمّنة بأسماء المستخدمين فحسب: cut -d : -f 1 /etc/passwdroot daemon bin sys sync games … وكما ترى حصلنا في هذه المرة على أسماء المستخدمين فقط، السطر الأول مثلًا يحوي اسم المستخدم الإداري ذي الصلاحيات المطلقة root، كما ستجد في القائمة اسم المستخدم الخاص بك، وبين هذا وذاك هناك عددٌ آخر من المستخدمين قد لا تكون مُلِمًا بوظائفهم، مثل المستخدم dbus والذي يُشغّل بواسطة خدمة dbus، أو polkitd المسؤول عن خدمة polkit، وهكذا.. ففي لينكس يتم فصل صلاحيات المهام كلًّا على حدى، وبهذه الطريقة نضمن ألّا تنتقل أيّة مشاكل محتملة في خدمة ما إلى سائر مكونات النظام. استعراض المجموعات الحاليةتخزّن أسماء المجموعات وبعض المعلومات عنها في ملف etc/group/، والذي يمكننا استعراض محتوياته بالأمر التالي: less /etc/grouproot:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4: tty:x:5: disk:x:6: … وكما ترى فإن معظم الأسماء هنا ورد ذكرها في قائمة "المستخدمين الحاليين" منذ قليل، وهذا يدفعنا للتساؤل؛ لمَ؟ يعود السبب في ذلك إلى ما يسمى بـ"مجموعات المستخدم الخاصة" user private group أو UPG، وهو أسلوب في الإدارة والإعداد يسهّل إدارة المجموعات في لينكس، بحيث تنشئ مجموعة خاصة بكل مستخدم تتم إضافته، وتحمل هذه المجموعة ذات اسم المستخدم، وتُعيّن لتكون مجموعته الرئيسيّة، ويكون هو عضوها الوحيد، وحينها يغيّر قناع الطرح لـ umask من 022 إلى 002. ماذا يعني ذلك؟ تسمح هذه العملية بمزيد من المرونة في حالة عمل فريق ما ضمن مشروع، فبدلًا من أن تعود ملكية كل ملف يتم إنشاؤه في المشروع إلى الشخص المُنشئ، تنسد ملكية الملفات في هذه الحالة إلى ذات المجموعة المالكة للمجلد الأب، مما يسهل عملية التشارك. يتم ذلك عبر صلاحية تسمى setgid، إلا أنّ ذلك كلّه خارج نطاق موضوعنا اليوم. هنا أيضًا يمكن عرض أسماء المجموعات فقط من مجمل محتويات الملف etc/group/ عبر الأمر: cut -d : -f 1 /etc/grouproot daemon bin sys adm tty disk … معرفة المستخدم المُسجّل حاليًايتيح الأمر w في لينكس معرفة المستخدم النشط حاليًا على نظام التشغيل بالإضافة إلى مجموعة من المعلومات المهمة عنه، مثل توقيت تسجيل الدخول والأمر المستخدم حاليًا: w19:37:15 up 5:48, 2 users, load average: 0.33, 0.10, 0.07 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 rrcs-72-43-115-1 19:15 38.00s 0.33s 0.33s -bash demoer pts/1 rrcs-72-43-115-1 19:37 0.00s 0.47s 0.00s w إضافة للأمر w تعرض التعليمة who معلومات أكثر اختصارًا، تتضمن اسم المستخدم النشط وتوقيت دخوله فقط: root pts/0 2013-09-05 19:15 (rrcs-72-43-115-186.nyc.biz.rr.com) demoer pts/1 2013-09-05 19:37 (rrcs-72-43-115-186.nyc.biz.rr.com) تقييد تسجيلات دخول المستخدمينتقييد تسجيلات الدخول باستخدام etc/passwd/يمكن من خلال التعديل على ملف etc/passwd/ تقييد تسجيل دخول أحد المستخدمين عن طريق إسناد قيمة معينة للصدفة shell المحدّدة له، لنفترض أنه لدينا مستخدم مسجّل بالاسم "messagebus" ضمن ملف etc/passwd/: less /etc/passwd | grep messagebus messagebus:x:102:104::/var/run/dbus:/bin/false قيمة الحقل الأخير في الخرج السابق تعبّر عن الأمر الذي يتم تنفيذه عقب تسجيل الدخول بنجاح، وهي في مثالنا هنا bin/false/. فإذا حاولت تسجيل دخول المستخدم messagebus كمستخدم جذر root فستلاحظ عدم نجاح المحاولة، وفشل التحويل إلى المستخدم الجديد: sudo su messagebus لنحاول الآن تسجيل الدخول بواسطة المستخدم sshd: sudo su sshd This account is currently not available.حصلنا على الرسالة السابقة بسبب قيمة الصدفة shell المستخدمة لـ ssh وهي usr/sbin/nologin/. less /etc/passwd | grep sshd sshd:x:103:65534::/var/run/sshd:/usr/sbin/nologin أظن أنك قد عرفت الآن كيف نمنع دخول أحد المستخدمين بواسطة هذه الطريقة؟ ببساطة سنستخدم الأداة usermod لتغيير قيمة الصدفة shell من إحدى قيمها المسموحة إلى أخرى وهمية: sudo usermod -s /usr/sbin/nologin usernameتقييد تسجيلات الدخول باستخدام etc/shadow/يتيح التعديل على ملف etc/shadow/ طريقة أخرى مشابهة لتقييد تسجيلات الدخول، وهو ملف يضم كلمات سر مستخدمي النظام بشكل مشفّر، ولاستعراض محتوياته يمكننا كتابة الأمر التالي في الطرفية: sudo less /etc/shadowroot:6r79Dod3Y$3hi3QklpGEQMxwQGEss4ueNNPkoUrqUe3SwyAacaxl.Lmgq1r9i4mTblV1z6NfKMNXH1Cpnq.4iKhOiQd7Riy1:15953:0:99999:7::: daemon:*:15455:0:99999:7::: bin:*:15455:0:99999:7::: sys:*:15455:0:99999:7::: sync:*:15455:0:99999:7::: games:*:15455:0:99999:7::: man:*:15455:0:99999:7::: …يُعرَض الخرج السابق على عدّة أسطر، بحيث يُخصّص سطر لكل مستخدم، ويضم كل سطر اسم المستخدم في الخانة الأولى، وكلمة السر بشكل مشفّر في الخانة الثانية "6r79Dod3Y#3…" مسبوقة بإشارة ($)، أما الخانات التي تبدأ بعلامة النجمة (*) ولا تتلوها قيمة مشفرة من المحارف فهي تخصّ المستخدمين المتعلقين بإدارة خدمات النظام، والتي لا تملك كلمات مرور، ولا يمكنها تسجيل الدخول كمستخدم عادي. يمكننا تعطيل خانة كلمة المرور لأحد الحسابات بوضع إشارة التعجب(!) أمام قيمتها المشفّرة (تسمى هذه العملية بقفل الحساب)، ولإجراء ذلك يمكننا الاستعانة بواحدة من الأداتين التاليتين: أولًا الأمر passwd والذي يتيح قفل حساب مستخدم ما بواسطة الخيار "l-" أو إلغاء قفله مع الخيار"u-": sudo passwd -l username sudo less /etc/shadow | grep username username:!$6$vpNJ3oFe$5GSh2aU2BDcpdjvQeNFzh0zTgyRUl26x4dn77mFE/vaoXwd19m7okX44jO8TWaVqNRL8vUVTAcZVmgUT8dR.4.:15953:0:99999:7:::وكما ترى فإن كلمة المرور تبقى موجودة ضمن الملف بقيمتها المشفرة إلا أنها غير فعّالة بسبب وجود إشارة التعجب (!) أمامها. ولإلغاء قفل الحساب مجددًا يمكننا كتابة: sudo passwd -u username بِذَات الطريقة يمكن استخدام الأمر usermod لقفل أو إلغاء قفل حسابات المستخدمين وفق الخيارات "L-" و "U-" على الترتيب: sudo usermod -L username sudo usermod -U username يجب الانتباه هنا إلى أن هذه الطريقة في القفل تعمل مع حسابات المستخدمين العاديين أي تلك التي تستخدم كلمة مرور لتوثيق دخولها، بينما لا تعمل مع حسابات المستخدمين الخاصة بخدمات النظام (ممن لا تملك كلمة مرور). تقييد تسجيلات الدخول باستخدام etc/nologin/في بعض الحالات الحرجة قد تحتاج لتعطيل تسجيلات دخول كافة المستخدمين باستثناء المستخدم الجذر root، مثل حالات الصيانة الشاملة، أو فيما لو تعرض أحد تلك الحسابات لاختراق أمني. عمومًا، يمكن إنجاز ذلك ببساطة، عن طريق إنشاء ملف فارغ باسم etc/nologin/: sudo touch /etc/nologin بهذه الطريقة تمنع كافة تسجيلات الدخول للنظام باستثناء من يملك امتيازات المستخدم الجذر، حيث تتم إعادة المستخدمين إلى الصدفة المحليّة local shell أو إخبارهم بأن التوثيق خاطئ! ولإضافة بعض التوضيح يجب ألا يترك الملف السابق فارغًا، بحيث تطبع عبارة على الشاشة تقدّم بعض الشرح: sudo sh -c 'echo "Planned maintenance. Log in capabilities will be restored at 1545 UTC" > /etc/nologin' لنقوم بتجربة جديدة الآن لاختبار ما سبق: ssh user@host user@host's password: Planned maintenance. Log in capabilities will be restored at 1545 UTC Connection closed by host عند الانتهاء من التعامل مع الوضع الحرج يمكن إعادة كل شيء على حاله بحذف الملف السابق etc/nologin/: sudo rm /etc/nologinمراقبة تسجيلات الدخولبعد ضبط مختلف الإعدادات المتعلقة بالمستخدمين والمجموعات لديك، نأتي الآن إلى مهارة أخرى أساسية تتعلق بمراقبة النظام، إذ تحتفظ أنظمة لينكس الحديثة بسجلات لكافة محاولات تسجيل الدخول في ملف مستقل يخزّن على المسار var/log/auth.log/: sudo less /var/log/auth.logMay 3 18:20:45 localhost sshd[585]: Server listening on 0.0.0.0 port 22. May 3 18:20:45 localhost sshd[585]: Server listening on :: port 22. May 3 18:23:56 localhost login[673]: pam_unix(login:session): session opened fo r user root by LOGIN(uid=0) May 3 18:23:56 localhost login[714]: ROOT LOGIN on ‘/dev/tty1’ Sep 5 13:49:07 localhost sshd[358]: Received signal 15; terminating. Sep 5 13:49:07 localhost sshd[565]: Server listening on 0.0.0.0 port 22. Sep 5 13:49:07 localhost sshd[565]: Server listening on :: port 22 … باستخدام الأمر lastيتيح لنا الأمر last استعراض تسجيلات الدخول الأخيرة لنظام التشغيل موزعة على جدول: lastdemoer pts/1 rrcs-72-43-115-1 Thu Sep 5 19:37 still logged in root pts/1 rrcs-72-43-115-1 Thu Sep 5 19:37 - 19:37 (00:00) root pts/0 rrcs-72-43-115-1 Thu Sep 5 19:15 still logged in root pts/0 rrcs-72-43-115-1 Thu Sep 5 18:35 - 18:44 (00:08) root pts/0 rrcs-72-43-115-1 Thu Sep 5 18:20 - 18:20 (00:00) demoer pts/0 rrcs-72-43-115-1 Thu Sep 5 18:19 - 18:19 (00:00)يُستمد الخرج السابق من الملف etc/log/wtmp/. وكما نرى فإن السطرين الأول والثالث يوضحان لنا بأن المستخدم لا يزال قيد الدخول logged in، أما في باقي الأسطر فيعرض توقيت كل جلسة والزمن المستغرق فيها. باستخدام الأمر lastlogإذا رغبت باستعراض السجّل السابق من زاوية أخرى، فيمكنك مشاهدة توقيت آخر مرة سجّل بها مستخدمو النظام دخولهم وذلك عبر الأمر lastlog والذي يعرض لنا محتويات الملف etc/log/lastlog/ مرتبة وفقًا لمدخلات الملف etc/passwd/: lastlogUsername Port From Latest root pts/1 rrcs-72-43-115-1 Thu Sep 5 19:37:02 +0000 2013 daemon **Never logged in** bin **Never logged in** sys **Never logged in** sync **Never logged in** games **Never logged in** …كما ترى يعرض الخرج السابق تاريخ آخر تسجيل دخول لكل مستخدم، بينما تُعرض العبارة "Never logged in" أمام المستخدمين الذين يتم إنشاؤهم لإدارة خدمات النظام، والذين لا يملكون كلمات مرور كما مرّ معنا. خاتمةإنه لمن المهم أن نعلم أين يحتفظ النظام بالمعلومات المتعلقة بتسجيلات الدخول، وذلك بهدف مراقبة التغييرات التي قد تشك بأمرها، لتعطيل تسجيل الدخول عن بعض أو كل المستخدمين. ترجمة -وبتصرف- للمقال Configuring and Managing Users and Groups لصاحبه Justin Ellingwood.