المحتوى عن 'مستخدمين'.



مزيد من الخيارات

  • ابحث بالكلمات المفتاحية

    أضف وسومًا وافصل بينها بفواصل ","
  • ابحث باسم الكاتب

نوع المُحتوى


التصنيفات

  • التخطيط وسير العمل
  • التمويل
  • فريق العمل
  • دراسة حالات
  • نصائح وإرشادات
  • التعامل مع العملاء
  • التعهيد الخارجي
  • التجارة الإلكترونية
  • الإدارة والقيادة
  • مقالات ريادة أعمال عامة

التصنيفات

  • PHP
    • Laravel
    • ووردبريس
  • جافاسكريبت
    • Node.js
    • jQuery
    • AngularJS
    • Cordova
  • HTML
    • HTML5
  • CSS
  • SQL
  • سي شارب #C
    • منصة Xamarin
  • بايثون
    • Flask
    • Django
  • لغة روبي
    • Sass
    • إطار عمل Bootstrap
    • إطار العمل Ruby on Rails
  • لغة Go
  • لغة جافا
  • لغة Kotlin
  • برمجة أندرويد
  • لغة Swift
  • لغة R
  • لغة TypeScript
  • ASP.NET
    • ASP.NET Core
  • سير العمل
    • Git
  • صناعة الألعاب
    • Unity3D
  • مقالات برمجة عامة

التصنيفات

  • تجربة المستخدم
  • الرسوميات
    • إنكسكيب
    • أدوبي إليستريتور
    • كوريل درو
  • التصميم الجرافيكي
    • أدوبي فوتوشوب
    • أدوبي إن ديزاين
    • جيمب
  • التصميم ثلاثي الأبعاد
    • 3Ds Max
    • Blender
  • نصائح وإرشادات
  • مقالات تصميم عامة

التصنيفات

  • خواديم
    • الويب HTTP
    • قواعد البيانات
    • البريد الإلكتروني
    • DNS
    • Samba
  • الحوسبة السّحابية
    • Docker
  • إدارة الإعدادات والنّشر
    • Chef
    • Puppet
    • Ansible
  • لينكس
  • FreeBSD
  • حماية
    • الجدران النارية
    • VPN
    • SSH
  • مقالات DevOps عامة

التصنيفات

  • التسويق بالأداء
    • أدوات تحليل الزوار
  • تهيئة محركات البحث SEO
  • الشبكات الاجتماعية
  • التسويق بالبريد الالكتروني
  • التسويق الضمني
  • التسويق بالرسائل النصية القصيرة
  • استسراع النمو
  • المبيعات
  • تجارب ونصائح

التصنيفات

  • إدارة مالية
  • الإنتاجية
  • تجارب
  • مشاريع جانبية
  • التعامل مع العملاء
  • الحفاظ على الصحة
  • التسويق الذاتي
  • مقالات عمل حر عامة

التصنيفات

  • الإنتاجية وسير العمل
    • مايكروسوفت أوفيس
    • ليبر أوفيس
    • جوجل درايف
    • شيربوينت
    • Evernote
    • Trello
  • تطبيقات الويب
    • ووردبريس
    • ماجنتو
  • أندرويد
  • iOS
  • macOS
  • ويندوز

التصنيفات

  • شهادات سيسكو
    • CCNA
  • شهادات مايكروسوفت
  • شهادات Amazon Web Services
  • شهادات ريدهات
    • RHCSA
  • شهادات CompTIA
  • مقالات عامة

أسئلة وأجوبة

  • الأقسام
    • أسئلة ريادة الأعمال
    • أسئلة العمل الحر
    • أسئلة التسويق والمبيعات
    • أسئلة البرمجة
    • أسئلة التصميم
    • أسئلة DevOps
    • أسئلة البرامج والتطبيقات
    • أسئلة الشهادات المتخصصة

التصنيفات

  • ريادة الأعمال
  • العمل الحر
  • التسويق والمبيعات
  • البرمجة
  • التصميم
  • DevOps

تمّ العثور على 16 نتائج

  1. المستخدمون، محور عالم تجربة المستخدم، وهمّنا الأوّل والأخير. أحد القوانين المقدّسة في تجربة المستخدم: "لا تلم المستخدم مهما يكن"، على الرغم من أنّ لومه قد يكون مُغريًا أحيانًا. فهرس سلسلة مدخل إلى تجربة المستخدم: مدخل إلى تجربة المستخدم User Experience فهم ودراسة المستخدمين في مجال تجربة المستخدم (هذا الدرس) دراسة الشريحة المستهدفة في مجال تجربة المستخدم كيفية التصميم للأجهزة المختلفة هندسة المعلومات في تجربة المستخدم تعرف على أنماط التصميم في مجال تجربة المستخدم أشياء لا يمكن اعتبارها رسوما تخطيطية (Wireframes) في مجال تجربة المستخدم تعرف على الرسوم التخطيطية (Wireframes) في مجال تجربة المستخدم مفهوم الثقل المرئي (Visual Weight) والألوان في مجال تجربة المستخدم التكرار ومخالفة الأنماط في مجال تجربة المستخدم المحاذاة والقرب في مجال تجربة المستخدم تعرف على أساليب مسح الواجهة والتراتب المرئي في مجال تجربة المستخدم أساليب الإطلاع في مجال تجربة المستخدم: التصفح، البحث والاكتشاف تصميم هيكل صفحة الويب والعناصر الأساسية في مجال تجربة المستخدم الأزرار، النماذج والدعوات إلى الإجراء في مجال تجربة المستخدم استخدام علم النفس في مجال تجربة المستخدم لتكييف المستخدم وإقناعه كيف تغير الخبرة من تجربة المستخدم؟ تصميم تجربة المستخدم من خلال بيانات وإحصائيات المستخدمين تعرف على أنواع المخططات الإحصائية في مجال تجربة المستخدم اختبارات أ/ب (A/B Test) في مجال تجربة المستخدم دراسة المستخدمين (User Research) تختلف الآراء حول ترتيب دراسة المستخدمين في تجربة المستخدم، فالبعض يقول بالبدء بها، والبعض يقول بالدراسة بعد التخطيط، والبعض يقول بعد الوصول إلى نسخة عاملة من المنتج. كل هذا الآراء صائبة. فما من توقيت خاطئ لدراسة المستخدمين. ونصيحتي أن تبدأ بها في المراحل الأولى، وتعيدها مرارًا. السؤال الأهم ليس "متى نقوم بدراسة المستخدمين؟". بل "ما الغرض منها؟". ما الذي تحاول فهمه عن مستخدميك؟ للمعلومات التي يمكن استخلاصها من دراسة المستخدمين نوعان رئيسيّان: موضوعيّ وشخصيّ. دراسة شخصية كلمة "شخصيّ" (subjective) تعني أنّ الأمر متعلّق برأي معيّن، أو بذكرى معيّنة، أو بانطباع معيّن عن شيء ما. المقصود هو الشعور الذي ينتج عن هذا الشيء، والتوقّعات التي يخلقها، وليس الحقيقة المجرّدة. "ما لونك المفضّل؟" "هل تثق بهذه الشّركة؟" "هل أبدو سمينًا بهذا السّروال؟" ما أقصده من هذه الأسئلة هو أنه ما من إجابة "صحيحة" عليها. للقيام بهذا النوع من الدراسة ينبغي على من يقوم بالدراسة طرح أسئلة على المستخدمين. دراسة موضوعية الكلمة "موضوعيّ" (objective) تعني حقيقة الأمر، وهي شيء يمكن إثباته، لا تغيّره الآراء مهما تمنّينا عكس ذلك. "كم أمضيت من الوقت ضمن تطبيقنا؟" "أين وجدت رابط موقعنا؟" "كم مستخدمًا زار موقعنا اليوم؟" لو أن للناس ذاكرة سليمة تمامًا، ولو أنّهم يصدقون دومًا، لكنّا سألنا المستخدمين هذه الأسئلة (لو وجدت شخصًا بهذه المواصفات، أخبرني!) الحقيقة أنّنا نصل إلى المعلومات الموضوعيّة من خلال القياسات والإحصاءات. ولكن إحصاء شيء ما لا يعني مباشرةً الوصول إلى الحقيقية المجرّدة. إليك مثالًا: لو قال 102 من الناس أن شيئًا ما جيّد، وقال 50 أنّه سيّئ، فهذا لا يعني أنّ أحدهما على صواب، الحقيقة الموضوعيّة الوحيدة التي يمكن استخلاصها هنا هي عدد المصوّتين. حجم العينة كقاعدة عامّة، فإن زيادة حجم العينة تؤدّي إلى معلومات أكثر موثوقيّة، وإن كانت شخصيّة، فقد يكون رأي واحد خاطئًا تمامًا، ولكن إن وافقه مليون من الناس فهذا يعني أنّه تمثيل دقيق لمُعتقدات الجمهور (ولكن قد يكون خاطئًا من وجهة نظر موضوعيّة). نصيحتي: اجمع أكبر قدر من المعلومات لبحثك. هل تعني ضخامة المعلومات الشّخصيّة معلومات أقرب ما تكون للموضوعيّة؟ إن طلبت من أناسٍ كثيرين أن يُخمّنوا الجواب لأمر موضوعيّ (مثلًا عدد حبّات الحلوى في علبة) فإن متوسّط التّخمينات سيكون قريبًا جدًّا من الإجابة الحقيقيّة الموضوعيّة. ولكن "حكمة الجماهير" في أمر موضوعيّ قد تؤدّي إلى الفوضى أحيانًا وأحيانًا أخرى إلى انتخاب جورج بوش! لذا كن حذرًا! كيف تطرح الأسئلة على العينة؟ هناك 3 أنواع أساسيّة للأسئلة: أسئلة مفتوحة: "لو طلبت منك أن تصفني، فكيف ستصفني؟" وهذا النّوع يفتح الباب لنطاق واسعٍ من الإجابات، ويكون مناسبًا عندما تريد أكبر قدر من الآراء والتّعليقات. أسئلة تبدأ بافتراضات: "ما أهي أجمل ملامحي؟" وهذا النّوع يحصر الإجابات ضمن فئة محدودة، فالسؤال ذاته يفترض أنّني جميل (وهذا قد لا يكون صحيحًا!). توخَّ الحذر! فقد يحجب هذا النّوع من الأسئلة إجابات قد ترغب بسماعها! أسئلة مغلقة أو مباشرة: "أيّهما أجمل: مرفقي أم ركبتي؟". هذا النّوع يوفّر خيارًا، نعم أو لا، هذا أو ذاك، ولكن تذكّر: إن كانت الخيارات غبيّة، فستكون النّتائج غبيّة كذلك. بعض الأمثلة على الأبحاث الموضوعية مقابلات: اسأل شخصًا ما مجموعة من الأسئلة المتتالية. المُلاحظة: أسنِد مجموعة من المهمّات أو التّعليمات إلى العيّنة وراقب كيف يستخدمون تصميمك دون مساعدة، بعد ذلك يمكنك طرح أسئلتك. مجموعات التّركيز: اجمع بعض النّاس في غرفة واطلب منهم مناقشة أسئلتك. ملاحظة: عادةً ما يُقنع الأفراد الواثقون من أنفسهم غيرهم ممّن في الغرفة برأيهم، وعلى العكس يكون البعض غير أهلٍ للمناقشة، ولذا أفضّل عادةً أن ألقي بنفسي في النّار على أن أختار هذا الأسلوب. الاستبيانات: نموذجٌ تملأه العّينة على الورق أو على الويب، من ميّزاته عشوائيّة العيّنة، وهذا قد يكون مُفيدًا. ترتيب البطاقات: يحصل كل فرد في العيّنة على مجموعة من الأفكار أو الفئات (مكتوبة على بطاقات) ويُطلب منه ترتيبها في مجموعات ذات معنى مُفيد. تُعطي هذه العمليّة بعد إجراء عدّة أشخاص لها فكرة عن التوزيع المرغوب للعناصر في قوائم الواجهة. (ملاحظة: لا تستخدم زملائك في العمل لهذا الغرض، اجلب عيّنة حقيقيّة). Google: يمكنك العثور على آراء مُفيدة للغاية على الويب، مجّانًا وعند الطّلب. ملاحظات هامة اطرح نفس الأسئلة وبنفس الأسلوب على جميع أفراد العّينة. لا تحاول تأويل الأسئلة أو التّلميح بالإجابات. قد يكذب البعض لتجنّب الإحراج أو ظنًّا منهم أنّك تفضّل إجابة معيّنة. سجّل المقابلة، ودوّن ملاحظاتك. لا تعتمد على ذاكرتك مُطلقًا. سنتعلّم في الدرس القادم كيف يمكن تصنيف شريحة المستخدمين المستهدفة في المشروع. ترجمة بتصرّف للدّرسين What is User Research و How to Ask People Questions من سلسلة Daily UX Crash Course لصاحبها Joel Marsh. حقوق الصورة البارزة: Designed by Freepik.
  2. هل زرت فيسبوك اليوم؟ ماذا عن تويتر؟ Instagram؟ Snapchat؟ إن كان الجواب نعم، فالغالب أنك زرتها من باب العادة. السؤال إذًا كيف تبني منتجات تخلق هذه العادة؟ لحسن حظك، هناك كتاب Hooked: How to Build Habit-Forming Products لكاتبه Nir Eyal يحاول شرح هذا! أنصح جميع أصحاب المشاريع ومدراء المنتجات وكل من يرغب ببقاء مستخدميه بقراءته. قد يكون استبقاء المستخدمين (retention) أكبر التحديات التي تواجه أي مشروع، وهو ليس بالأمر السهل حتى بالنسبة لأكثر الشبكات الاجتماعيّة نجاحًا. ألقِ نظرة على المخطّط التالي الذي يبين الفرق بين عدد المستخدمين الكلي وعدد المستخدمين النشيطين (بحسب Golbal Web Index). يعرض كتاب Nir نموذج "الصّنارة" (Hook Model) المُستوحى من نموذج BJ Fogg السلوكيّ الذي ينصّ على ضرورة التحام 3 مكوّنات في لحظة واحدة حتى ينشأ السلوك المرغوب: الحافر والقدرة والمُثير. فيما يلي صورة توضّح هذا النّموذج: عندما تستخدم فيسبوك فإنك على الأرجح تتبع نموذج الصّنّارة وهذا ما يخلق "الإدمان" على فيسبوك: المُثير (الداخلي) = الملل، الفضول، الوحدة، الضجرالمُثير (الخارجي) = رؤية إشعار من فيسبوك على الهاتفالفعل = النقر على تطبيق فيسبوك لبدء التصفح ببساطةالمُكافأة المُتغيّرة = مشاهدة محتوى جديد ملفت للنظرالتفاعل = إبداء الإعجاب، التعليق، تحديث الحالةيحتاج نموذج الصّنّارة لكي يعمل مثيرات قويّة، وجهدًا بالحدّ الأدنى للقيام بالفعل، وتنوّعًا في المحتوى، والقدرة على المشاركة في المنتج. تمعّن في منتجك واسأل نفسك هذه الأسئلة الخمسة: 1. هل يؤدي المثير الداخلي للمستخدم إلى قيامهم بالفعل مرارا؟نشرت إحدى الزميلات هذه الصورة الغريبة على Instagram خلال احتفالات العام الصينيّ الجديد: سألتها عن سبب التقاط هذه الصورة. الحقيقة أنني سألتها خمس مرّات عن ذلك (بهدف الوصول إلى السبب الأساسي). تبيّن أنّها أرادت مشاركة شيء يجعل الآخرين يتبسّمون، وهذا بدوره يُحسّن صورتها ويرفع من مقامها مقارنةً بالآخرين. هذا ما يُسمّى العملة الاجتماعية وهذا مُثير داخليّ شائع للمشاركة. يمكن لمستخدمي Instagram التفكّر في هذا المُثير عندما يمدّون أيديهم إلى جيوبهم لالتقاط الصورة. 2. هل يظهر المثير الخارجي في الوقت المناسب لمستخدميك؟ما هو مثيرك الخارجيّ؟ فإن كان المثير الداخلي هو الملل مثلًا، فإن المثير الحارجي هو تلك الدائرة الحمراء فوق رمز تطبيق فيسبوك في هاتفك. ربّما تكون أخرجت هاتفك لتبحث في تويتر، ولكن المثير الخارجي الذي يعرضه فيسبوك أدى بك إلى فتحه بدلًا من تويتر. لا تقتصر المُثيرات الخارجيّة على المُنبّهات والإشعارات ورسائل البريد، فلطالما استخدم كوكا كولا آلات الدفع لتحثّ المُشترين على إرواء عطشهم، والذي هو مُثير داخليّ. آلة الدفع هي المثير الخارجيّ. ما هو مثيرك الخارجيّ إذن؟ 3. هل تصميم منتجك بسيط بما يجعل الفعل سهلا؟التطبيقات التي تخلق العادة سهلة البدء ولا تتطلب جهدًا كبيرًا. ألقِ نظرة على تويتر: افتح التطبيق، مرّر بإصبعك. هذا كل ما في الأمر! غايةٌ في السهولة! ماذا عن منتجك أنت؟ كيف تقلّل الجهد المطلوب لأداء الفعل؟ العادات تلقائيّة، لا تتطلب التفكير. هذا هو هدفك. 4. هل ترضي المكافأة مستخدميك وتتركهم في الوقت نفسه يطمعون في المزيد؟أستخدم Flipboard لقراءة الأخبار المهمّة. التطبيقات القائمة على المحتوى تخلق العادات لأنها تقدّم تنوّعًا. يلبّي Flipboard حاجتي للمحتويات الإخباريّة ولكنّه يتركني راغبًا في محتوى جديد يكفي لعودتي. هل في منتجك محتوىً متنوّع؟ ذهبت أيام المحتوى الجامد على الويب بلا رجعة، فما بالك بالتطبيقات؟ امنح مستخدميك سببًا للعودة. 5. هل يتفاعل مستخدموك مع منتجك بحيث يضعون في منتجك شيئا قيما بالنسبة لهم؟لا يتقن أحد هذا كما يتقنه Evernote. باعتباره حافظة لكل شيء يهمّك تجده على الويب، يجعلك Evernote تبني "مستودعًا" من المحتوى. هذا يؤدّي إلى أمرين اثنين: يُحسّن المنتج الذي يُستخدّم،ويجعل المُستخدم يعود ليجد المحتوى الّذي حفظته. الخاتمةالعادات سلاح قويّ جدًّا للمنتجات والخدمات التّي تعتمد في نجاحها على التفاعل العالي. ألقينا نظرةً على بعض الأمثلة، ولكنّني أحثّك على فحص المنتجات الّتي تعتاد استخدامها واكتشاف مُثيراتها وأفعالها، وما تقدّمه من مكافئات وكيف تتفاعل معها. ترجمة -وبتصرف- للمقال Understanding Habit: How to Build a Product That Gets Used Daily لصاحبه Jason Allan. حقوق الصورة البارزة: Designed by Freepik.
  3. تتطلّب إدارة خادوم Red Hat Enterprise Linux، مثل أي خادوم عموما، معرفة كيفيّة إضافة حسابات المستخدمين، تعديلها، تعليقها أو حذفها. ستحتاج أيضا خلال إدارة الخادوم لمعرفة كيف تمنح المستخدمين الصّلاحيات الضروريّة على الملفات، المجلّدات وموارد النّظام الأخرى حتى يتمكنوا من إنجاز مهامهم. إدارة حسابات المستخدمين تحتاج حتى تتمكّن من إدارة المستخدمين أن تكون لديك صلاحيّات المدير الأعلى (الجذر root). لذا سنبدأ بالانتقال إلى المستخدم الجذر بتنفيذ الأمر: $ su - Password: Last login: Wed May 11 12:58:50 GMT 2016 on pts/0 [root@localhost ~]# يُستخدَم الأمر su للتبديل بين حسابات المستخدمين؛ وعند تمرير المعطى - له فسينتقل للحساب الجذر بعد طلب كلمة السّر. ملحوظة تشير العلامة # أمام الأمر إلى أنه يُنفَّذ من الحساب الجذر. إضافة مستخدم جديد يُستخدَم الأمران التاليان لإضافة حساب مستخدِم جديد: # adduser username # useradd username حيثُ username هو اسم الحساب الجديد. ملحوظة 1: إن كانت لديك تجربة سابقة مع توزيعات دبيانيّة (أوبونتو مثلا) فـ adduser هناك مختلف عنه هنا. الأمر adduser في RHEL (والتوزيعات المبنيّة على ردهات عموما) هو مجرّد وصلة رمزيّة للأمر useradd؛ بينما هو سكربت منفصل في دبيان؛ ولكنّه يعتمد على useradd وأوامر أخرى. ملحوظة 2: ستحتاج أولا لتعيين كلمة سرّ للحساب قبل التمكن من البدء في استخدامه (سنرى كيف ذلك بعد قليل). ينفّذ النظام المهامّ التاليّة عند إضافة مستخدم جديد: إنشاء مجلّد شخصي للمستخدِم (مبدئيا على المسار home/username/ ما لم يُطلب منه غير ذلك). تُنسَخ الملفات bash_logout. وbash_profile. وbashrc. (وهي ملفات مخفيّة) إلى المجلّد الشخصي للمستخدِم. تُستعمَل هذه الملفات لضبط الإعدادات الخاصّة بجلسة Session المستخدم. إنشاء مجلّد خاص بمسلَك بريد Mail spool المستخدِم. إنشاء مجموعة مستخدمين بنفس اسم الحساب وإضافته إليها. ملحوظة: مسلك البريد هو ملفّ يخزّن رأسيات البريد (مثل عنوان المُرسِل، تاريخ التسليم، … إلخ) ومحتوياته. يوجد على المسار /var/spool/mail/ مجلّد فرعي لكلّ مستخدم على النّظام. يستخدم بعض عملاء البريد هذا المجلّد بينما لا يستخدمه البعض الآخر. يُخزّن النظام معلومات عامّة عن جميع الحسابات في الملف etc/passwd/. توجد في هذا الملفّ أسطُر يمثّل كل واحد منها سجلّا لحساب مستخدِم. يأخذ كلّ سطر الصّيغة التاليّة: [username]:[x]:[UID]:[GID]:[Comment]:[Home directory]:[Default shell] السّطر مكوّن من حقول تفصل نقطتان : بين كل حقلين. يضمّ الحقل الأول [username] اسمَ الحساب. يشير الحقل الثاني [x] إلى أن الحساب محميّ بكلمة سرّ توجد معمّاةً Encrypted في الملفّ (etc/shadow/). يوجد في الحقليْن الثالث والرابع ([UID] و[GID]) على التوالي معرّف المستخدِم ومعرّف المجموعة الأوليّة Primary group التي ينتمي إليها. الحقل الخامس [Comment] هو تعليق حول الحساب؛ يوضع فيه عادة وصفٌ للحساب وعمله. يعرّف الحقل السادس [Home directory] المسار المُطلق لمجلد المستخدِم الشخصي. يحدّد الحقل السابع الأخير [Default shell] الصّدفة Shell التي تُسنَد للمستخدِم بعد ولوجه إلى النظام. يوجد ملفّ آخر يشبه etc/passwd/ من المهمّ التعوّد عليه وهو etc/group/. يحتفظ النظام في هذا الملفّ بمعلومات مجموعات المستخدِمين، سطر لكلّ مجموعة. صيغة السّطر هي كالتالي: [Group name]:[Group password]:[GID]:[Group members] يحدّد الحقل الأول [Group name] اسم المجموعة. يُخصّص الحقل الثاني [Group password] لكلمة سر المجموعة في حال وجودها. توجد غالبا علامة x في هذا الحقل دلالةً على عدم وجود كلمة سر. الحقل الثالث [GID] مطابق للحقل الرابع [GID] في ملف etc/passwd. يقدّم الحقل الرابع [Group members] لائحة بالمستخدمين المنضوين تحت هذه المجموعة. يفصل بين أسماء الحسابات بفاصلة ,. تعيين كلمة سر للمستخدم يبقى الحساب المنشَأ حديثا بالأمر useradd (أو adduser) معطّلا إلى أن نعيّن له كلمة سرّ؛ نستخدم أمر passwd لهذا الغرض: # passwd username سيُطلب منك إدخال كلمة سر للحساب ثم تكرارها؛ كما في المثال التالي: # useradd academy # passwd academy Changing password for user academy. New password: Retype new password: passwd: all authentication tokens updated successfully. طلب تغيير كلمة السر عند أول دخول يدير الأمر chage معلومات تاريخ الحساب مثل عدد الأيام التي يجب بعدها تغيير كلمة سرّ الحساب وتاريخ آخر تغيير لكلمة السّر. يحدّد الخيّار d-، إذا ذُكر بعده تاريخٌ بالصيغة YYYY-MM-DD، تاريخ آخر مرة غُيِّرت فيها كلمة السّر؛ أما إذا ذكر بعده عدد فيفترض أن آخر تعديل تمّ بعد تاريخ 1 يناير 1970 بهذا العدد من الأيام (chage -d 1 تعني أن التعديل كان يوم 2 يناير 1970، chage -d 2 تعني أن التعديل كان يوم 3 يناير 1970 وهكذا). يفرض تمريرُ القيمة 0 للخيّار d- مع الأمر chage على المستخدِم تغيير كلمة السّر بعد الولوج إلى الحساب. نعدّل في المثال التالي تاريخ التعديل الأخير لكلمة السّر ثم نحاول الدخول إلى الحساب academy بكلمة السّر التي عيّناها في الفقرة السابقة (اخرج من الحساب الجذر إن سبق لك تسجيل الدّخول به؛ واستخدم حسابا عاديًّا بعد تنفيذ الأمر chage): # chage -d 0 academy # exit logout $ su academy Password: You are required to change your password immediately (root enforced) Changing password for academy. (current) UNIX password: New password: Retype new password: $ ننتقل بالأمر su لاستخدام اسم الحساب الممرّر له (academy في حالتنا)؛ ستُطلب منا كلمة السّر التي عيناها سابق ثم بعد الولوج تظهر رسالة تطلب منا تعديل كلمة السّر. ندخل كلمة السر الحالية للاستمرار ثم نختار كلمة سر جديدة ونكرّرها. التعديل على الحساب يمكن بعد إضافة مستخدم تعديل حسابه في أي وقت بالأمر usermod: # usermod options username تحدّد خياراتٌ options سلوك الأمر و username الحساب الذي تُطبَّق عليه. تحديد تاريخ انتهاء صلاحيّة لحساب مستخدِم يتيح خيّار expiredate-- عند استخدامه مع الأمر usermod تحديد تاريخ يُعطَّل بعده الحساب. ننتقل في المثال التالي إلى استخدام الحساب الإداري (الجذر root)، ثم ننشئ حسابا جديدا باسم academy1: $ su - Password: # useradd academy1 يمكننا إظهار معلومات تاريخ الحساب بالأمر التالي: # chage -l academy1 Last password change : May 11, 2016 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 نلاحظ أن قيمة Account expires ( انتهاء صلاحيّة الحساب) هي never أي أنه لا يوجد تاريخ انتهاء صلاحيّة. نستخدم الخيار expiredate-- مع الأمر usermod لتحديد تاريخ انتهاء صلاحية للحساب academy1 ثم نعرض معلومات عمر الحساب من جديد: # usermod --expiredate=2016-06-01 academy1 # chage -l academy1 Last password change : May 11, 2016 Password expires : never Password inactive : never Account expires : Jun 01, 2016 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 لاحظ تغيّر قيمة Account expires. إضافة مستخدم إلى مجموعة ثانية يُستخدم الخياران aG- مع الأمر usermod لإضافة مستخدم موجود إلى مجموعة أخرى غير المجموعة الأوليّة. ننشئ في المثال التالي مجموعة باسم hsoub ثم نضيف إليها المستخدم academy: # groupadd hsoub # usermod -aG hsoub academy لاحظ أن اسمَ المجموعة يسبق اسم الحساب. يمكن التأكد من إضافة الحساب إلى المجموعة بعرض المجموعات التي ينتمي إليها الحساب academy كالتالي: # groups academy academy : academy hsoub أي أن الحساب academy ينتمي إلى المجموعتيْن academy (المجموعة الأوليّة) وhsoub. حذف مستخدم من مجموعة إن أردت حذف مستخدم من جميع المجموعات الثانويّة وإبقاء الأوليّة فقط فيمكن ذلك على النحو التالي: # usermod -G "" academy # groups academy academy : academy إن كان المستخدم عضوا في أكثر من مجموعة ثانويّة فيمكن حذفه من بعضها بذكر تلك التي ينتمي إليها فقط مع الخيّار G-. مثلا ينتمي العضو academy للمجموعات hsoub2، hsoub1 وhsoub3، ونريد حذفه من hsoub2؛ ننفذ الأمر كالتالي: # usermod -G hsoub1,hsoub3 academy تعديل المسار المبدئي لمجلّد المستخدم أو الصّدفة المسندة إليه استخدم الخيار d- متبوعا بمسار تريده مع الأمر usermod إن أردت تغيير مكان المجلّد الشّخصي للمستخدِم. # usermod -d /home/test academy نفس المبدأ مع الصّدفة المبدئية (bash)؛ استخدم الخيار shell-- متبوعا بمسار صدفة أخرى (sh مثلا): # usermod --shell /bin/sh academy قفل كلمة المرور يمكن باستخدام الخيّار L- مع الأمر usermod قفل كلمة سر المستخدم وبالتالي منعه من الدخول إلى الحساب وتعطيله: # usermod -L academy إن جرّبت الآن الدخول إلى الحساب academy (بعد الخروج من الحساب الجذر) فستظهر رسالة بوجود خطأ في عمليّة الاستيثاق: $ su academy Password: su: Authentication failure عد إلى الحساب الجذر واستخدم الخيّار U- لإلغاء قفل كلمة المرور وتفعيل الحساب. # usermod -U academy يمكن الآن الدخول إلى الحساب academy. حذف مجموعة أو مستخدِم استخدِم الأمر groupdel لحذف مجموعة مستخدمين. بالنسبة لحساب مستخدم فالأمر المستخدَم هو userdel (إضافة الخيار r- تحذف أيضا محتوى المجلد الشخصي ومسلك البريد). # groupdel group_name # userdel -r user_name إدارة أذونات Permissions المستخدمين يعدّ أمر ls أحد أكثر الأوامر استخداما أثناء إدارة الخواديم. استخدم الخيّار l- مع ls لسرد قائمة مفصّلة بمحتويات مجلّد. يمكن أيضا تطبيق الأمر على ملفّ واحد لعرض تفاصيله. تظهر عند استخدام الأمر ls -l خاصيّات الملفّ ومن بينها وضعه Mode الذي يوجد في بداية كل مُخرَج؛ وهو مكون من عشرة محارف. يحدّد المحرف الأول نوع الملف ويمكن أن يأخذ إحدى القيم التالية: -: ملفّ عادي. d: مجلّد. l: وصلة رمزيّة. c: جهاز طرفيّ محرفي Character device (يعالج تدفق البيانات محرفا محرفا؛ مثل الطرفيّة). b: جهاز طرفيّ كتليّ Block device (يعالج البيانات على كتل، مثل وسائط التخزين). تحدّد المحارف التسعة التاليّة الأذونات المطبّقة على الملفّ. تُقسّم المحارف التسعة إلى ثلاث مجموعات، تحوي كل مجموعة ثلاثة محارف. تمثّل المحارف الثلاثة أذونات الملف وهي، من اليسار إلى اليمين، القراءة (r)، الكتابة (w) والتنفيذ (x). تشير المجموعات الثلاثة على التوالي (من اليسار إلى اليمين) إلى أذونات المستخدِم صاحب الملفّ (user, u)، مجموعة المستخدمين مالكة الملفّ (Group, g) وبقيّة المستخدمين (Other, o). يظهر الحرف الموافق للإذن إذا كان الإذن معيّنا وإلا تظهر مكانه علامة -. راجع المقالات التاليّة لمزيد من التفاصيل عن أذونات المستخدمين: مبادئ أذونات الملفات (File permissions) على لينكس. مقدمة إلى أذونات لينكس Linux Permissions. يُستخدَم الأمر chmod لتغيير أذونات الملفّ كالتالي: # chmod new_mode file حيث new_mode رمز عددي أو عبارة تحدّد الأذون الجديدة. يُحسَب الرمز العددي بناء على المكافئ العددي لكلّ إذن (4 للقراءة، 2 للكتابة و1 لإذن التنفيذ، و0 عند غياب الإذن) حيثُ تجمع المكافئات بالنسبة لصاحب الملفّ، المجموعة المالكة للملف وبقيّة المستخدمين. توضّح الصورة أعلاه مثالا على حساب الرمز العددي للإذن: توجد ثلاثة مجموعات كلّ واحدة مكوّنة من ثلاثة محارف. تشير المجموعة الأولى ابتداءً من اليسار لأذون مالك الملفّ، الثانيّة لأذون المجموعة والثالثة لأذون بقيّة المستخدمين. تشير المحارف في كلّ مجموعة لإذن معيّن: القراءة (المحرف الأول في كلّ مجموعة من اليسار)، الكتابة (المحرف الثاني) والتنفيذ (المحرف الثالث). إذا كان الإذن موجودا يُشار إليه بالحرف الموافق (w، r أو x) وإلا توضع مكانه علامة -. للحصول على الرمز العددي نجمع المكافئات بالنسبة لكل مجموعة ثم نضعها معا بالترتيب المذكور: المستخدم صاحب الملف في اليسار، المجموعة في الوسط وبقية المستخدمين على اليمين. نستخدم أمر chmod لتعيين الأذون الجديدة. ننشئ في المثال التالي ملفّا باسم myfile ثم نعرض معلوماته، نلاحظ أن الأذون هي: rw-rw-r-- والرمز العددي الموافق لها هو 664. ثم نستخدم أمر chmod لتعيين الأذون الجديدة باستخدام الرمز 744 وفي الأخير نعرض معلومات الملفّ من جديد ونلاحظ التغيّر. $ touch myfile $ ls -l myfile -rw-rw-r--. 1 academy academy 0 May 11 14:55 myfile $ chmod 744 myfile $ ls -l myfile -rwxr--r--. 1 academy academy 0 May 11 14:55 myfile تعيين إذن لجميع المستخدمين يمكنك جعل إذن على ملف متاحا لجميع المستخدمين (صاحب الملف، المجموعة والبقيّة) بالأمر chmod. نفرض مثلا أن لديك سكربت تريد إتاحة إمكانية تنفيذه للجميع؛ استخدم الأمر chmod كالتالي: # chmod a+x script.sh يُقرأ الأمر "امنح الإذن x (التنفيذ) لجميع المستخدمين a". يمكن أيضا استخدام نفس الطريقة مع المستخدم مالك الملف، المجموعة أو بقية المستخدمين: امنح إذن الكتابة w للمستخدم صاحب الملف o: # chmod o+w script.sh امنح إذن القراءة r للمجموعة g: # chmod g+r script.sh امنح أذون القراءة r، الكتابة w والتنفيذ x للمجموعة: # chmod g+rwx script.sh أما إذا أردنا نزع الإذن فنستخدم علامة - بدلا من + كالتالي: # chmod o-r script.sh تغيير ملكية ملف يظهر عند سرد ملفات مجلّد أو تفاصيل ملفّ (بأمر ls -l) المستخدِم صاحب الملف والمجموعة التي ينتمي إليها. مثلا: $ cd $ ls -la total 60 drwx------. 16 academy academy 4096 May 11 20:36 . drwxr-xr-x. 11 root root 4096 May 11 12:59 .. drwxr-xr-x. 2 academy academy 6 Apr 15 00:42 Desktop drwxr-xr-x. 2 academy academy 6 Apr 15 00:42 Documents drwxr-xr-x. 2 academy academy 6 Apr 15 00:42 Downloads drwxrwxr-x. 2 academy academy 6 Apr 27 20:51 folder drwxrwxr-x. 2 academy academy 38 Apr 29 17:08 links_folder drwxr-xr-x. 2 academy academy 6 Apr 15 00:42 Music -rwxr--r--. 1 academy academy 0 May 11 14:55 myfile drwxr-xr-x. 2 academy academy 6 Apr 15 00:42 Pictures drwxr-xr-x. 2 academy academy 6 Apr 15 00:42 Public drwxr-xr-x. 2 academy academy 6 Apr 15 00:42 Templates drwxr-xr-x. 2 academy academy 6 Apr 15 00:42 Videos انتقلنا في المثال أعلاه إلى المجلّد الشخصي للمستخدم الحالي (بتنفيذ أمر cd دون معطيات) ثم سردنا محتويات المجلّد بالأمر ls -la. يطلُب الخيّار a- من الأمر إظهار جميع المحتويات بما فيها الملفات المخفيّة (التي يبدأ اسمها بنقطة .). يظهر اسم المستخدم مالك الملف في العمود الثالث واسم المجموعة في العمود الرابع (جميع الملفات الظاهرة في نتيجة الأمر تعود للمستخدم academy والمجموعة academy ما عدا المجلّد .. الذي يشير إلى المجلّد الأعلى من المجلّد الحالي في البنية الشجرية والذي يملكه المستخدم والمجموعة root). نستخدم الأمر chown لتغيير ملكيّة ملفّ. يمكن تغيير المستخدم المالك والمجموعة في نفس الوقت أو كلّ على حدة. تغيير المستخدم المالك والمجموعة معا (لاحظ وجود النقطتين في الأمر): # chown user:group file تغيير المستخدم المالك دون تغيير المجموعة: # chown user: file تغيير المجموعة المالكة دون تغيير المستخدِم: # chown :group file نسخ أذون ملف وتطبيقها على آخر إن أردت جعل أذون ملف مطابقة تماما لأذون ملفّ آخر فيمكنك استخدام الخيّار reference--مع الأمر chown على النحو التالي: # chown --reference=ref_file file حيث ref_file هو الملف المرجِع وfile الملف الذي تريد نسخ الأذون إليه. يؤدي الأمر أيضا إلى تغييرملكيّة الملف file. إعداد الخيار الخاص بضبط معرف المجموعة setgid صُمِّم خيار setgid لإتاحة إمكانية الوصول إلى ملفّ بصلاحيات مجموعة المستخدمين المالكة للملف بغضّ النظر عن المستخدِم الذي يصل إليه فعلا. يمكن أن يُقرأ الأمر على النحو التالي : “اجعل الوصول إلى هذا الملف متاحا وفق أذونات المجموعة التي تملكه بغضّ النظر عن المستخدم الذي يحاول الوصول إليه”. يُطبّق ضبط معرّف المجموعة على النحو التالي: # chmod g+s file أو بإضافة الرقم 2 أمام الرمز العددي للأذون: # chmod 2750 file نفترض أن الأذون على الملف file هي 760 مما يعني أنه لا يُتاح إذن القراءة إلا للمستخدم مالك الملف أو المجموعة التي ينتمي إليها. إن حاول مستخدم غير المستخدم المالك ولا ينتمي للمجموعة قراءة محتوى الملف فلن يستطيع. إن ضبطنا خيار setgid بإحدى الطريقتين المذكورتين (g+s أو 2760) فسيمكن لأي مستخدم مهما كان قراءة الملف، لأنه أصبح يستفيد من صلاحيات المجموعة حتى ولو لم يكن واحدا منها؛ ولكنه لن يستطيع تنفيذ الملف لأن المجموعة لا تملك هذا الإذن. راجع مقال شرح أذونات الملفات (File permissions) على لينكس ويونكس للمزيد عن معرّف المجموعة (ومعرّف المستخدم). خاتمة تتطلّب إدارة خواديم RHEL معرفة عميقة بأذون الملفات وصلاحيات المستخدمين والمجموعات؛ لذا تأكد من تطبيق المعلومات الواردة في هذا المقال جيّدا حتى تستوعبها. إن وجدت استشكالات فيمكنك التعليق على هذا الدّرس أو استخدام قسم الأسئلة للحصول على المساعدة. ترجمة -وبتصرّف- للمقال RHCSA Series: How to Manage Users and Groups in RHEL 7 – Part 3 لصاحبه Gabriel Cánepa.
  4. لقد شاع استخدام الاقتباس التالي (وأحيانًا بطريقة خاطئة) لهنري فورد، وقد اتضح مؤخّرًا أن هنري فورد لم يقل هذه الكلمات أصلاً، لكنني لحسن الحظ لا أكتب بحثًا أكاديميًا، وإنما أكتب مقالاً، لذا، بغض النظر عن دقة المعلومات التاريخية، أظن أنكم تتفقون معي حيال كون هذا الاقتباس محفزًا للعديد من الأفكار. وإليكم اقتباسًا آخر، هذه المرة من ستيف جوبز: لقد عرف ستيف جوبز بوضوح أن المستخدم ليس على حق دائمًا. لا يعرف المستخدمون ما هو مناسب لهم كما ترى، لقد عرف كل من ستيف جوبز وهنري فورد درسًا بالغ الأهميّة. درسٌ لم يفهمه الكثير من المصمّمين، الباحثين ورجال الأعمال: لا يعرف الزبون والعميل ما هو جيّد له. ولا أتحدث هنا عن أمور ابتكار المنتجات والخدمات الجديدة، أنا أتحدث بصفة عامة. لا يعرف المستخدمون ما هو جيّد بالنسبة لهم ببساطة وحسب، نعم، لقد سمعت ذلك بوضوح. ليس المستخدم على حقٍ دائمًا، في الواقع، غالبًا ما يكون المستخدم مخطئًا بكل بساطة. بالطبع، ليس ذلك خطأ المستخدم. فكيف نتوقع من المستخدمين أن يكونوا على صواب مع ضيق أفقهم ومحدوديته في نظرتهم السطحية للأمور وآرائهم الفردية حيال مشكلة ما في التصميم؟ لنتوقف عن ممازحة أنفسنا. فالمستخدمون ليسوا مصممين، وفي أغلب الوقت لا يكونون خبراءً في المجال، وحتى لو عرفوا مدخلات ومخرجات الموضوع، سيبقون دائمًا ناقصي الخبرة في تحويل المعرفة بالموضوع إلى حلول تصميم جيدة. مع ذلك، أصادف أحيانًا من يتوقعون أننا سنحتاج فقط إلى سؤال المستخدمين كي يعطونا بأعجوبة كل الأجوبة التي نريدها. سنسأل المستخدمين عمّا يحتاجونه، سنسأل المستخدمين عن المزايا الأهم بالنسبة لهم، سنسأل المستخدمين عن كيفية تنظيم الموقع، سنسأل المستخدمين عمّا يجب وضعه في الصفحة الرئيسية. لنسأل المستخدمين تذكّرني هذه الثقافة الخطرة، ثقافة "لنسأل المستخدمين" بحلقة مميزة من "The Simpsons". أحب أن أستخرج أفضل دروس الحياة من هذه المُسلسل، كنصيحة Homer التي تقول، "إذا لم تنجح من المرة الأولى، استسلم". في إحدى الحلقات يكتشف Homer بأن لديه أخًا غير شقيق يدعى Herb، وصادف أن Herb هو رئيس مصنع Powell motors، مصنع أمريكي كبير، ومع انخفاض مبيعات المصنع، يطلب Herb من Homer أن يساعده في تصميم سيارة للمواطن الأمريكي البسيط، سيارة عادية لزيد وعبيد، من المصمم فلان العادي (أو ربما الأقل من العادي بالنسبة لـ Homer)، ويأمر Herb مصممي سياراته بأن يعطوا زمام تصميم السيارة إلى Homer ويستعملوا كل أفكاره، مهما بلغ جنونها. إنها مريعة لأنها سيارة مصممة بواسطة ولأجل Homer، ولأن من صمّمها ليس مصمّمًا، آمل أن لدى مستخدميك ذوقًا أرقى من ذو Homer (رغم أنني لا أضمن لك ذلك)، لكنني عمومًا أظن بأن هنالك درسًا مهمًا وراء هذه القصة: لا يعرف المستخدمون ما هو أفضل لهم، حتى المستخدمين الخياليين. سيارة Homer - إيضاح لما قد يحدث عندما تتبع اقتراحات المستخدمين اتباعًا أعمى. التصميم ليس مهمة الزبون كما ترى، إنها مسؤولية المصممين. ليس على المستخدمين أن يبدعوا حلولاً مذهلة لتحلّ مشاكلهم. ولا أعني بمسؤولية المصممين فقط من عمله هو التصميم، إنني أعني كامل فريق المنتج. يمكن للمطوّر أن يكون مصمّمًا بقدر ما يمكن لمصمم تجربة الاستخدام أن يكون مصممًا عاديًّا، يمكن للمستخدم من ناحية أخرى أن يكون مصمّمًا سيئًا، وتوقع غير هذا هو مجرّد كسلٍ في التصميم. إن مهمة فهم المستخدمين تعود على المصممين وفريق المنتج مهمة تحديد احتياجاتهم، مشاكلهم، آمالهم، أمنياتهم وأحلامهم، مهمة صنع حلول تصميمٍ أنيقة، مفيدة وسهلة الاستعمال لتلبّي احتياجاتهم تعود تمامًا عليهم، حتى لو لم يدرك المستخدمون حاجتهم لتلك الحلول، كما هو عليه الحال مع سيارة model T وجهاز الـ iPad. التصميم للأطفال كأبٍ لطفلين صغيرين، أرى أن العلاقة بين المصممين والمستخدمين تبدو مشابهة بعض الشيء للعلاقة بين أب وأطفاله (أو طفله). يجب عليك كأب أن تضع أبناءك في المركز. أبناؤك يأتون دومًا في المقام الأول، بدءًا من اتخاذ قرار حيال ما يجب عليك أن تفعله في يوم ماطر ووصولًا إلى التفكير في الطعام الذي يجب عليك أن تشتريه لهذا الأسبوع، كل ما تفعله مرتكز على احتياجات أطفالك. لكن ما يجب عليك ألّا تفعله هو ترك الأطفال ليُخبروك بما يجب عليك فعله لأنهم سيحاولون فعل ذلك، صدّقني سيحاولون! أنت الرئيس بالتأكيد بلا شك، لذلك، أنت العاقل هنا وأنت الأعلم بالأمور (أو على الأقل، هذه هي الصورة التي تحاول إظهارها). وهذه هي الطريقة التي يجب أن تعامل بها المستخدمين. لا أعني بهذا أن الواجب عليك هو معاملة المستخدمين كأطفال (إلا إن كانوا أطفالًا بالفعل)، لكن الواجب عليك هو إمضاء وقتك في محاولة فهمهم، إيجاد ما هو أفضل لهم، أخذهم لأيامٍ من المرح بجانب البحر، وأن لا تتبع إراداتهم اتباعًا أعمى. بالتأكيد، يجب عليك أن تُشرك المستخدمين في عملية التصميم، أن تأخذ آرائهم، تجرّب أفكارهم وتصوّراتهم، اقتراحاتهم وإضافاتهم، دون أن تنسى بأنك خبير التصميم وليسوا هم. أنت من تقود عملية التصميم، وليسوا هم. أود أن أترككم مع هذا الاقتباس الأخير، هذه المرة من Alan Cooper خبير تجربة المُستخدم وأب الـ Visual Basic، وقد أُخذت هذا الاقتباس من محادثة في مؤتمر لـ Microsoft يتحدث فيه Alan عن السبب الذي يجعل من المستخدمين مصدرًا سيّئًا لأخذ لتكوين فكرة عن برنامج ما. إليكم ما قاله Alan Cooper: أظن بأن Alan كان يمزح قليلًا حين قال بأن المستخدمين لا علاقة لهم به، لكنني أرجو أن فكرة Alan قد وصلت إليكم. وبالنسبة لي، لا أخالفه الرأي أبدًا. ترجمة -وبتصرف- للمقال Why the user is not always right لصاحبه Neil Turner.
  5. لمصمّمي تجربة المُستخدم شريحة مُستهدفة من المستخدمين ذات مواصفات مُحدّدة، تمامًا كخبراء التسويق، تُبنى هذه المواصفات على الأبحاث كذلك، إلّا أن التّشابه بين الأمرين ينتهي هنا. فهرس سلسلة مدخل إلى تجربة المستخدم: مدخل إلى تجربة المستخدم User Experience فهم ودراسة المستخدمين في مجال تجربة المستخدم دراسة الشريحة المستهدفة في مجال تجربة المستخدم (هذا الدرس) كيفية التصميم للأجهزة المختلفة هندسة المعلومات في تجربة المستخدم تعرف على أنماط التصميم في مجال تجربة المستخدم أشياء لا يمكن اعتبارها رسوما تخطيطية (Wireframes) في مجال تجربة المستخدم تعرف على الرسوم التخطيطية (Wireframes) في مجال تجربة المستخدم مفهوم الثقل المرئي (Visual Weight) والألوان في مجال تجربة المستخدم التكرار ومخالفة الأنماط في مجال تجربة المستخدم المحاذاة والقرب في مجال تجربة المستخدم تعرف على أساليب مسح الواجهة والتراتب المرئي في مجال تجربة المستخدم أساليب الإطلاع في مجال تجربة المستخدم: التصفح، البحث والاكتشاف تصميم هيكل صفحة الويب والعناصر الأساسية في مجال تجربة المستخدم الأزرار، النماذج والدعوات إلى الإجراء في مجال تجربة المستخدم استخدام علم النفس في مجال تجربة المستخدم لتكييف المستخدم وإقناعه كيف تغير الخبرة من تجربة المستخدم؟ تصميم تجربة المستخدم من خلال بيانات وإحصائيات المستخدمين تعرف على أنواع المخططات الإحصائية في مجال تجربة المستخدم اختبارات أ/ب (A/B Test) في مجال تجربة المستخدم تحديد الشريحة المستهدفة لكي نفهم الشّخصيّة المُستهدفة (نُسمّيها Persona أو User Profile)، يجب أن نُدرك أنّها لا تعني أيًّا ممّا يلي: أنماط الشّخصيّة الصفات الديموغرافية الشخصيات الظاهرة في "قصّة علامتك التّجاريّة" الآراء المُسبقة المبنيّة على خبرتك الشّخصيّة المفاهيم التّنبّؤات إذًا ما المقصود بالشّخصيّة المُستهدفة؟ المقصود هو أهداف المُستخدمين الحقيقيّة، وتوقّعاتهم، ودوافعهم، وسلوكهم: لماذا يزورون موقعك؟ ما الذي يبحثون عنه؟ ما الّذي يُزعجهم فيه؟ وهلمّ جرًّا... يُفترض أن تكون كلّ المعلومات الّتي تحتاجها مُستقاة من الأبحاث والبيانات الّتي جمعتها، فإنّ لم يكن لمعلومات ما يدعمها من البيانات والأبحاث، فإنّ استنتاجاتك مُختلقَة، وعليك أن تتوقّف! مواصفات شخصية غير مفيدة الشّخصيّة أ تُمثَّل أنثى بين 35-45 من العمر، متوسّطة الدخل والتّعليم، لديها طفل واحد على الأقل ولديها سيّارة جديدة واحدة على الأقل، تحبّ الاختلاط بالنّاس والعمل، وتميل إلى تغليب النّصف الأيمن من دماغها. لماذا لا تُعتبر هذه المواصفات مفيدة؟ قد تكون مفيدة إن كنت تبيع الإعلانات، ولكنّها غير مُجدية لنا كمصمّمي تجربة المُستخدمين، لأنّها لا تسمح لنا باستبعاد أيّة أفكار أو ميّزات في المشروع، إذ أنّنا لا نعلم ما الميّزات الّتي تحتاجها أنثى عمرها 35-45! فقد تكون أيّ شيء! مواصفات شخصية مفيدة الشّخصيّة أ تُمثّل مُديرًا ذا خبرة، مهتمًّا في الغالب في مجال أو اثنين، يزور الموقع بصورة متكرّرة، ولكنّ وقته ضيّق، لذا يحاول جمع المحتوى الّذي يرغب في قراءته في أيّام العطلات، ويميل إلى مشاركة أكثر ما يقرأه على الشّبكات الاجتماعيّة (غالبًا تويتر وLinkedIn)، ويعتبر نفسه من قادة الفكر، ويعتني بصورته أمام المجتمع بالغ العناية. لما تُعتبر هذه المواصفات مُفيدةً؟ لأنّ لدينا الآن معلومات كثيرة يمكن استخدامها، فنحن نعلم أن المحتوى السّخيف لن يكون شائعًا، وأن تجميع المحتوى سيكون مُهمًّا، ونحتاج لآليّة لتنصيف المحتوى في فئات، كما أنّه من الضّروريّ أن تكون عمليّة المشاركة على الشبكات الاجتماعيّة سهلة وسريعة. يمكن أيضًا تجنّب عمل حملات دعائيّة على فيسبوك، لأنّ معظم المستخدمين لا يزورونه، وسيكون إرسال رسائل بالبريد الإلكتروني تتضمّن مُختارات من المحتوى أفضل من إرسال إشعارات مُتكرّرة لأنّ المُستخدمين غير متفرّغين. فكر في المستخدمين "المثاليين" عندما تفكّر في ميّزات المشروع، احرص على وضع صورة المُستخدم المثاليّ نُصب عينيك، فمهمّتك ليست تكريس السّلوك الحاليّ للمستخدم، بل دفعهم نحو هذه الصّورة المثاليّة. تذكّر أن النّاس يختلفون، وسيكون لديك مجموعات ذات سلوكيّات مختلفة، فاحرص على تمثيل كلّ مجموعة بشخصيّة مُناسبة. ترجمة بتصرّف للدرس Creating User Profiles من سلسلة Daily UX Crash Course لصاحبها Joel Marsh.
  6. يجب أن تضع الحماية نصب عينيّك عند تثبيت ونشر واستخدام أي نوع من أنظمة تشغيل الحاسوب؛ وعلى الرغم من أن تثبيتًا حديثًا لأوبنتو هو آمن نسبيًا للاستخدام الفوري على الإنترنت، لكن من المهم أن يكون لديك فهم متوازن لحالة حماية أنظمتك بناءً على طريقة استخدامها بعد «نشرها» (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.
  7. تعرفنا في المقالين السابقين على كيفية تثبيت وضبط خادوم 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.
  8. في مايو أيّار 2011 كنتُ أتحدّث على الهاتف مع أحد كبار رجال الأعمال المشهورين جمعني معه طريق صديق مشترك، كنتُ أحدّثه حينها عن نيّتي في أطلاق مشروعي الجديد Groove برنامج الدّعم الفنّي: كان كلامه صحيحًا، بالفعل كان أمامنا درب طويل حتى نرقى إلى حيّز المنافسة، ويلزمنا الكثير لنصل إلى مستوى الشّركات المحترفة في هذا المجال. لكنّني أخبرته موضّحًا أنّ ما ذكره هو بالضّبط السّبب الذي يدفعني إلى بناء برمجيّة دعم فنيّ. إذ لم تعد الشّركات تعتمد على البريد الإلكترونيّ في الدّعم الفنّي، ونجاح شركات عديدة في هذا المجال مثل Desk.com دليل على أنّ هناك سوق لحلول مشابهة. بالإضافة إلى أنّني طالما كنت أعشق المجالات المفعمة بالمنافسة، أشعر أنّ المنافسة الشّديدة دليل على أنّ هناك حاجة ماسّة لحلّ مبتكر. المشكلة التي كنتُ أجدها في سوق برمجيّات الدّعم الفنّي وخدمة الزّبائن، أنّ هناك الكثير من الحلول المقدّمة من شركات مختلفة لكن ولا واحد منها وجدته مناسبًا لي. لا أقصد أنّه ليس هناك أيّ منتج جيّد يمكن الاعتماد عليه، ما أعنيه أنّني لم أجد واحدًا يحلّ لي جميع مشاكلي ويناسبني بشكل كامل، ولا شكّ أنّ هناك مستخدمون آخرون يعانون من نفس الأمر. في شركتي السّابقة BantamLive، قمنا بتجريب الكثير من برمجيّات الدّعم الفنّي حتى اخترنا في النّهاية Zendesk وهو منتج يحبّه الجميع، لكن ما إن استخدمته –وأنا شخص ليست لديّ أيّة خبرة مسبقة في مجال الدّعم الفنّي- وجدته صعبًا قليلًا عليّ ومتوجّه بشكل كامل نحو العمل المؤسّساتيّ. أنا أرى أنّ البرمجيّات الموجّهة للشّركات لا يجب أن تبدو كذلك، لماذا لا يمكنني أن أحصل على أداة سهلة وبسيطة أعتمدُ عليها في مؤسّستي؟ إذا كنتَ تقرأ هذا المقال فعلى الأغلب لديك تجربة مماثلة، وتعلم معنى أنّ منتجًا ما لا يناسب احتياجك، بالنّسبة لي عندما وجدتُ أنّه ليس هنالك أيّ حلّ سيساعدني، قرّرت أن أقوم ببنائه بنفسي. في أقرب وقت، قمتُ بإيداع مبلغ 250 ألف دولار في حسابٍ جارٍ في البنك، ثم قمتُ بجمع فريق من المطوّرين والمصمّمين، وبدأ العمل. كانت ولادة شركة Groove. فائدة: لا تدع المنافسة تثنيك. المنافسة تعني أنّ هناك حاجة في السّوق. وجود حلّ هنا وحلّ هناك لا يعني أنّ جميع هذه الحلول تناسب جميع الفئات في السّوق. بإمكانك أن تنشئ عملًا ربحيًّا يستهدف شريحة ضيّقة في خضمّ هذه المنافسة، وبإمكانك أن تنجح فيه. النجاحات الخمسة التي ساعدتنا على الاستمرارخلال الأشهر الأولى من تطوير المنتج حصلت معنا بعض النّجاحات وبعض الإخفاقات، منها ما كان بفعل أيدينا ومنها ما كان خارج إرادتنا. لم يمض وقت طويل حتّى وصلنا إلى النّسخة التّجريبيّة الأولى لمنتجنا، ووجدنا أنّ بين أيدينا مجموعة صغيرة من المستخدمين الذين سيبدؤون بتجريب هذه النّسخة مجانًا. بعض الأمور ساعدتنا في ذلك: استراتيجية العلاقات العامة لدينا كنا محظوظين لاختيار موقع (The Next Web (TNW لنا في مرحلة مبكّرة، هذا وحده جلب لنا الكثير من المستخدمين المهتمّين بنسختنا التجريبيّة، قاموا بالانضمام إلى القائمة البريديّة لدينا. إذًا فكيف تمّ اختيارُنا من قبل مدونة تقنيّة رائدة مثل TNW؟ لقد قمنا –في وقت سابق- بوضع خطة للعلاقات العامّة وتمكّنّا في النّهاية من مراسلة حوالي 40 جهة خارجيّة. يمكنكم الاطّلاع على كامل هذه القائمة واستخدامها كلّما أردتم أن تصلوا إلى انتشار واسع. الغريب في الأمر أنّ خطط العلاقات العامّة سريعًا ما تتلاشى بمجرّد أن تنقلها إلى حيّز التطبيق، فبعد مراسلة أكثر من أربعين جهة جاءنا ردّ من جهة واحدة فقط وهي مدوّنة TNW، وقد كانوا أوّل من توجّهنا إليهم وكنّا متحمّسين جدًّا لتتم تغطيتنا من قبلهم. أودّ أن أشير إلى أنّ مدوّنة شهيرة مثل TechCrunch لم تلقِ لنا بالًا، رغم أنّنا كنّا في ذلك الوقت نعدّها دليل نجاح أو فشل نموذج العلاقات العامّة الذي نتّبعه. فائدة: هناك الكثير الذي يمكنك فعله في مجال العلاقات العامّة أكثر من مجرّد استهداف مدوّنات ذائعة الصّيت مثل TechCrunch. الكثيرون من روّاد الشّركات النّاشئة، يعتبرون هذه المدوّنة معيار نجاحهم لكن هناك الكثير من المواقع الأخرى التي يمكنها أن تخدمك في هذا الجانب، نشارككم حوالي 40 منها. الانتشار الواسع على تويتربعد نشر الخبر على مدوّنة TNW، انفجر تويتر بالتّغريدات التي تتحدّث عن حلّنا الجديد، ولم نكن بعد نعطي التّسويق على تويتر كشبكة اجتماعيّة أيّ اهتمام. كان النّاس ينشرون في تغريداتهم روابط إلى الخبر من موقع TNW وإلى موقع شركتنا. ومع الوقت كان النّاس يتوافدون إلينا عبر تويتر ليجرّبوا النّسخة الأوّليّة، ومن ثمّ يقومون بالتّغريد متحدّثين عن تجربتهم ليتوافد إلينا المزيد من الأشخاص وهكذا. لم نقم بمراقبة أثر تويتر الفعليّ على موقعنا لكنّني متأكّد من أنّ أولئك الذين سمعوا بنا عبر تويتر كانوا الأكثر تفاعلًا على شبكات التّواصل الاجتماعيّ وبالتّالي كانوا أكثر قدرة على نشر الفكرة. فائدة: لم يعد استخدام تويتر وشبكات التواصل الاجتماعيّ أمرًا اختياريًّا إن شئت فعلته وإن شئت تركته. أعترف بأنّني شخصيًّا لا أحبّ تويتر. لكن في عالم الأعمال عليك أن تذهب إلى حيث يتواجد زبائنك، فعندما أثار مقال TNW تلك الضّجة على تويتر أدركنا كمّ أنّ هذه المنصّة مهمة لجلب الزّبائن إلينا، وعلينا أن نضيفها كعنصر هامّ في استراتيجيّة عملنا. استمارات تسجيل سهلة الانتشار بين الناسبعد تجربة عدد من الأساليب قمنا أخيرًا باعتماد أسلوبًا يجلب لنا تدفّقًا مستمرًّا من المشتركين عن طريق أن نطلب من المستخدمين أن يقوموا بدعوة ثلاثة من أصدقائهم حتّى يتمكّنوا من تجربة النّسخة التّجريبيّة من البرنامج. صحيحٌ أنّ العدد الأوّليّ من المستخدمين (غير المدعوّين) قد انخفض بشكل ملحوظ بعد اتّباع هذه الطّريقة، إلا أنّنا حصلنا على زيادة في المشتركين يوميًّا بنسبة 30% بعد أن يستجيب المدعوّون لمنشورات أصدقائهم على فيسبوك وتويتر. فائدة: وصول الزّبائن إليك يمكن أن يكون بأكثر من زبون واحد في كلّ مرة، فكّر كيف يمكنك زيادة عدد المشتركين بمجرّد دخول مستخدم واحد إلى موقعك، قد تتمكّن من زيادة التأثير إلى ضعفين أو ثلاثة. التدوينلا أقول أنّنا في ذلك الوقت بالذّات بدأنا بالتّدوين بشكل فعّال، لكنّنا قمنا بنشر بعض التّدوينات الّتي كان لها صدىً واسعًا وجلبت لنا عددًا جيّدًا من المستخدمين الجدد. الطّريف في الأمر أنّ المقال الّذي جلب لنا أكبر عدد من المستخدمين كنّا نتحدّث فيه عن كيفيّة تمكّننا من الحصول على عدد جيّد من المستخدمين لبرنامجنا، حصل هذا المقال على أكثر نسبة مشاهدة على موقع Hacker News الشّهير لمدّة نصف يوم! تستطيع أن تتخيّل كم كنتُ متحمّسًا في ذلك الوقت. قمنا بوضع استراتيجيّة التّدوين الخاصّة بنا بعد الاطّلاع على عدد من المدوّنات التي كنا نتابعها ونتعلّم منها، ووصلنا في النّهاية إلى قائمة مهام مكوّنة من 44 عنصرًا نتوقّع أنّها من أسباب نجاح المقالات. في ذلك الوقت كانت مفيدة لنا وبشكل كبير، لكنّها لم تكن تشكّل مرجعًا كافيًّا يبقيك في المقدّمة بشكل دائم، فكانت بحاجة إلى تعديلاتٍ من وقت ﻵخر. فائدة: ابدأ التّدوين في أقرب وقت. فكّر ما هو المحتوى الذي من الممكن أن يجذب زبائنك ويجدونه قيّمًا، قم بنشر الكثير منه، وبالمجّان. بالنّسبة لشركتك النّاشئة في مراحلها الأولى، فإنّ التّدوين يعدّ من أنجح الوسائل قليلة التّكلفة لترسيخ اسمك وسمعتك وبناء جمهورك الذي سيتحوّل فيما بعد إلى زبائن. التصميم ثم التصميم ثم التصميملطالما كنّا نركّز وبشدّة على جانب التّصميم في منتجنا، لقد كان هو الجانب الأهمّ الذي دفعنا إلى العمل على المنتج منذ البداية، وكان الفارق الأساسيّ الذي يميّزنا عن المنافسين الآخرين. كما يقول Tom Tunguz: هذا كان ومازال هدفنا الأسمى. تقريبًا كلّ الملاحظات الإيجابيّة التي كانت تصلنا في بدايات إطلاق النّسخة التّجريبيّة كانت متعلّقة بالتّصميم، إذ كان النّاس مستعدّون للتغاضي عن الأخطاء البرمجيّة والمشاكل في المنتج فقط ﻷنّه كان جميل ومميّز. الواجهة كانت سهلة الاستخدام وممتعة، وهذا وحده كان كفيلًا بإبقائنا على قيد الحياة أشهرًا عدة. فائدة: لا تقبل المساومة على عناصر القوّة لديك التي تميّزك عن البقيّة. بالنّسبة لنا كان أهمّ شيء هو التّصميم. بالنّسبة لك قد يكون السّعر، سرعة الأداء، الخدمات، أو أيّ شيء آخر. احرص على هذا الجانب من عملك ولا تتخلّى عنه مقابل أيّ شيء. ﻷنّه وحده كفيل بأن يعينك على البقاء والاستمرار حتى عندما يتراجع أداؤك في الجوانب الأخرى. مترجم -وبتصرّف- عن مقال 5 Early Wins That Got Our SaaS Startup 1,000 Beta Users لصاحبه Alex Turnbull. حقوق الصورة البارزة: Designed by Freepik.
  9. من الأمور الأساسيّة عند كتابتك لأيّ رسالة موجّهة إلى عميل أو مُستخدم لمُنتجك هو أن تعرف بالضّبط ما الذي تريد تحقيقه من خلالها قبل إرسالها. وهذا الأمر مهمّ ليس في صياغة الرّسالة المناسبة فحسب، وإنّما للحصول على الإجابة التي تبحث عنها. تتطلّب الرّسائل المختلفة مستويات مختلفة من التّفاعل والالتزام من قبل المستخدمين. يجب أن تكون واضحًا حول هدف الرّسالة منذ البداية سواءً كنت تنشر استبيانًا أو تطلق منتجًا جديدًا. لأنّ الهدف الواضح يعطي فكرة عن موضع الاهتمام في الرّسالة. بإمكانك استخدام أداة Intercom’s Message Goals التي تتيح لك معرفة تأثير الرّسالة على منتجك. ولمواجهة الأمر، كيف بإمكانك معرفة فيما إذا كانت الرّسالة ناجحة أم لا بدون هدف واضح؟ فببساطة لا يمكنك التّواصل بدون هدف محدّد. لا بُدّ لنا أن نسأل، في عصر تتشاحن فيه المقاييس ويتسارع فيه النمو بلا قيود، ما الذي يشكّل الهدف الحقيقي في أي رسالة؟ الهدف لا يقتصر على معدّلات الفتح open rates ومعدّلات النّقرة click-through rates مع أنّها من الخطوات الوسيطة الفعّالة، ألا أنّها ليست الهدف النهائي مطلقًا. كما أنّه من غير المفيد التقيّد بالإحصائيّات التي توضّح تفاعل المستخدمين مع رسالتك. إنّ الأهداف الحقيقيّة يجب أن تتمحور حول التغيير الذي تحاول أن تجريه على المستخدمين. هل تريد منهم استخدام منتجك بشكل متكرر؟ هل تريد منهم تحديث تفاصيل الفوترة الخاصّة بهم؟ هل تريد منهم تجربة ميزة جديدة؟ لنلقِ نظرة على بعض السياقات المختلفة لإرسال الرّسائل للمستخدمين والأهداف التي يمكن أن تتضمّنها تلك الرّسائل. تفاعل المستخدمين engagement وتهيئتهم onboardingإنّ الهدف من هذه الرّسائل هو جعل المستخدمين يجرّبون الحصول على قيمة من منتجك، أو جزء معيّن منه. تتمحور كثير من هذه الحالات حول المستخدمين الذين يجرّبون المُنتج مجّانًا، ولكنّك تأمل في تحويلهم إلى زبائن يقومون بالدفع بعد أسبوعين، شهر، أو عدّة أشهر. في عالم البرمجيّات كخدمة (SaaS)، يمكن تكون الرّسائل التي ترسلها أثناء الفترة التّجريبيّة هي المحتوى الوحيد الذي يربط بينك وبين العملاء، لذلك من الضّروري جعل تلك الرّسائل إيجابيّة وفعّالة، ويتوقّف فعل ذلك بصورة صحيحة على استراتيجيّة كثيرًا ما يُغفل عنها: سؤال المستخدمين عن الشيء الذي يريدون تحقيقه من استخدام منتجك.صياغة الرّسائل لتتناسب مع الأهداف المتنوّعة للمستخدمين.تطوير جديد للمنتجقد يبدو الهدف من هذا النوع من الرّسائل مشابهًا جدًّا لتهيئة المستخدمين أو إنعاش تفاعلهم، ولكن هنالك فرق مهم جدًّا الذي سيوضّح الفكرة من رسالتك. في هذه الحالة أنت تحاول جعل المستخدمين يجرّبون شيئًا جديدًا لم يألفوه من قبل. يجب أن توضّح في هذه الرّسالة الفوائد التي سيحصل عليها المستخدم عند استعمال الميزة الجديدة وليس الجهود التي بذلتها عند بنائها. هنالك هدفان شائعان لهذا النوع من سياق الرّسائل: زيادة معدّل تبنّي المنتج adoption rate؛ أي زيادة عدد مستخدميه.زيادة تكرار استخدام المنتج؛ أي الحصول على مستخدمين يستخدمون المنتج في أحيان كثيرة.إنّ معظم عملك في التّواصل مع العملاء سيصب على: "حمل الأشخاص على استخدام الميزة الجديدة"، "الحصول على عدد أكبر من الأشخاص الذين يستخدمون الميزة الجديدة"، أو "حمل الأشخاص على زيادة استخدام الميزة الجديدة"، وبطبيعة الحال، ستبقى تكافح لإصابة الهدف ما لم تعرف الشيء الذي تصوّب نحوه. الإعلان announcementنستخدم مصطلح "الإعلان" في هذا السياق ليشمل أمور مثل تغييرات الحساب، تحديثات الفوترة، أو تغييرات في الشروط والأحكام الخاصّة بك. يمكن أن تكون هذه الرّسائل ركيكة في اللهجة ولكّنها مهمّة جدًّا للمستخدمين. يجب أن تتأكّد من أنّ المستخدمين قد استلموا الرّسالة وفهموا المضامين التي تشملهم. كما إنّه من الضّروري أن يعرف المستخدمون الإجراء المطلوب منهم (إن وجد) وكيف يحصلون على المساعدة إن احتاجوا إليها. في هذه السياقات من الأفضل أن تكون لغة الرّسالة واضحة بدلًا من أن تكون حذِقة. الرسائل الإخبارية، الاستعراض أو التحديثقد يكون هذا هو السيّاق الأكثر إثارة للنقاش. جميعنا يتفق على أنّ هنالك العديد من الفوائد من التواصل المنتظم مع المستخدمين المحتملين والحاليين، الزبائن، العملاء المحتملين، المستخدمين السّابقين، أو مع أولئك الذين يهتمون بعملك أو المحتوى الذي تنتجه. لكن من الصّعب أن يتّفق الجميع على ماهيّة أهداف هذه الرّسائل. هنالك ثلاثة أهداف مختلفة التي من المحتمل أن تشتمل عليها الرّسائل الإخباريّة: أن تبقى أول ما يخطر بالبال top of mind بالنسبة للعملاء (على أمل دفهم لتسجيل الدّخول مرة أخرى).مجازاة ولاء العملاء الذين يقومون بالدفع مقابل المنتج بإعطائهم إمكانيّة استخدام ميزة أو محتوى حصري.استرجاع بعض المستخدمين الذين توقّفوا عن استخدام المنتج وإتاحة اطلاعهم عليه وعرض الإضافات الرائعة التي قمت بإضافتها منذ آخر وقت استخدموا فيه المنتج.استطلاع، اختبار، بحث، أو سؤالقد تظنّ أنّ الهدف من إخبار الأشخاص عن الاستطلاع أو الاختبار الذي تُجريه هو دفعهم إلى الإجابة. بالطبع سيكون من الرائع إذا استطعت دفعهم إلى ذلك، لكن من جديد، يُعتبر هذا هدفًا وسطيًّا فحسب. إنّ الهدف الحقيقي هو جمع بيانات تعطيك فكرة أو تدفعك إلى إجراء تغييرات مُعتبرة في منتجك أو عملك. إنّ الأمر لا يقتصر على الحصول على المزيد من الردود، كما لا يقتصر على زيادة معدّلات فتح open rates وهميّة باستخدام عناوين ملفّقة. جرّب وأضف عبارة "اربح ساعة Apple" إلى سطر عنوان الرّسالة وسترى عدد الردود التي ستحصل عليها، لكن ما مدى فعّالية النتائج التي ستحصل عليها؟ يجب عليك أن تتأكّد من جودة البيانات قبل أن تجري على أساسها تغيير معيّن في عملك أو منتجك. إن وقت ومكان استلام الرّسالة له تأثير كبير على نوعيّة وكميّة الردود التي تحصل عليها. كما يجب أن تُعطي الرّسالة انطباعًا عن قدر الأهميّة التي توليها أنت للردود. الزُبدة هي أنّ الهدف من هذا السياق من الرّسائل هو النوعيّة مقابل الكميّة، بالإضافة إلى القيمة الكامنة في البيانات، وما الذي يمكنك تحقيقه من خلالها فيما بعد. ما الذي تريد تحقيقه؟إنّ معرفة الشيء الذي تريد تحقيقه قبل التواصل مع عملائك هو أمر جوهري لصياغة الرّسائل والحصول على النتائج التي تسعى إليها. حدّد هدفًا مناسبًا منذ البداية وستعود عليك الردود بمكاسبها. ترجمة -وبتصرّف- للمقال Effective Messages Have Real Goals لصاحبه: John Collins.
  10. هل تريد أن تسبق منافسيك وتصبح الأول في قطاعك التجاري؟ ركّز إذن على تجربة المُستخدم. عادةً ما تندفع الشركات نحو النجاح بأحد هذه العاملين: الخوف والفرص. تحمل الفرص الجديدة دوافع قويّة بالنسبة للشركات الصغيرة والتواقة للنجاح، فرص مثل انتزاع حصّتها السوقيّة، إخلال توازنات السوق في قطاعها التجاري، أو إحراز قفزات نوعيّة في مضمار المنافسة مع اللاعبين الكبار، وتسمح لك التقنية القيام بذلك. أما الشركات الأكبر والأكثر رسوخًا واستقرارًا فإن الخوف هو ما يحدّد سلوكها ودوافعها؛ الخوف من تخلخل القطاع التجاري عن طريق منافس ما، أو حدوث تغييرات ما في هذا القطاع. وإذا كان هذا هو حال شركتك فعليك الاحتراس لأن هذا هو ما تفعله التقنيات الحديثة بالضبط. سأطلعكم في هذا المقال على الفرص المذهلة والمخاطر المقلقة التي تجلبها التقنية لعالم الأعمال، وذلك من خلال دراسة أربع حالات متجنّبا القصص الكلاسيكية مثل iTunes وتجارة الموسيقى أو التنافس بين Blockbusters و Netflix، عوضًا عن ذلك سأركّز على أمثلة استطاعت إخلال توازن السوق في مجالاتها. أتمنى أن تكون هذه القصص مُلهمة لأولئك المتعطشين إلى الفرص الجديدة وتساعدهم على اقتحام مجالهم بقوّة، أما بالنسبة لأولئك الباحثين عن طرق يحافظون فيها على أسواقهم الخاصة فهذا المقال يجب أن يدفعهم للتغيير. Uber وسائقي سيارات الأجرة في لندناخترقت Uber عالم سيارات الأجرة وأخلّت توازناته مُستخدمة التقنية بهدف تحسين تجربة المستخدم، فأدخلوا تغييرات كبيرة في هذا المجال الساكن، ليس فقط بالنسبة لسائقي سيارات الأجرة في لندن، بل بالنسبة لخدمة سيارات الأجرة حول العالم. المشكلة أن طلب سيارة الأجرة في لندن من الممكن أن يصبح كابوسًا في ساعات معينة من النهار، لا يتعلق الأمر بتكلفتها الباهظة فحسب بل يتعدى ليشكّل تجربة شاقّة؛ حيث معظم السائقين لا يتعاملون مع البطاقات المصرفية، لذا عليك أولًا أن تسحب نقودًا من الصرّاف الآلي ATM، وأن تعتمد على ذاكرة السائق وخبرته في الأماكن لعدم وجود خدمة تحديد الموقع GPS لديه، أخيرًا وعندما تصل إلى وجهتك ستحتاج إلى انتظار بعض الوقت قبل المغادرة لدفع المبلغ المستحق واسترداد الباقي مع وصل الاستلام. جعلت Uber هذه التجربة أسهل بأسلوب رائع. فكل ما عليك فعله هو طلب سائق عبر تطبيق الهاتف المحمول، والذي سيرسل موقعك لأقرب سيارة أجرة. يعرض التطبيق موعد وصول السائق المتوقع والتكلفة التقريبيّة. في السيارة وأثناء رحلتك مع السائق إلى الوجهة التي تقصدها يمكنك متابعة الطريق عبر البرنامج نفسه للتأكد من عدم اختيار السائق لطريق أطول. عندما تصل إلى وجهتك ما عليك سوى الخروج من السيارة فورًا، فالرسوم تُخصم تلقائيًا من بطاقة الائتمان الخاصة بك لتستلم إيصال الدفع عبر البريد الإلكتروني. ليس غريبًا بعد ذلك أن ينطلق Uber بقوّة كبيرة في السوق، فقد استخدموا التقنية ليحسّنوا تجربة المستخدم بشكل ملحوظ وهو ما لا يملكه سائقو لندن التقليديين، ولا يحبونه أيضًا. وأمام هذا كلّه قام السائقون التقليديون بإضراب احتجاجًا على Uber مدّعين بأنها تتجاوز القانون، لكنهم في الحقيقة لم يحبّوا تغيّر المشهد بهذا الشكل، فالتقنية مكّنت الآخرين من المنافسة، ومعرفتهم لشوارع لندن قد عفا عليها الزمن أمام نظام تحديد المواقع GPS وخرائطه الدقيقة، كانوا يصيحون بأن هذا غير عادل عوضًا عن التكيّف مع التغيير، وفي النهاية فإنّ تجربة المستخدم وحدها من حدّد الرابح، سواء وصفنا ذلك بأنّه مُنصف أم لا. FreeAgentيُعتبر FreeAgent مثالًا آخر على اقتحام القطاعات التجارية بقوّة، وعلى العكس من uber ركّز FreeAgent على تقديم خدمة ذاتية للعميل بهدف توفير المال. باختصار فإن FreeAgent هو تطبيق لإدارة الحسابات، يسمح للشركات الصغيرة بإدارة ضرائبها، فواتيرها، أعمالها وعملائها في مكان واحد. فبدلًا من تعيين موظّف خاص لإدارة حساباتك هذه بإمكانك اليوم أن تفعل هذا بنفسك. يحوّل FreeAgent الأعمال الحسابية المُعقدة إلى خطوات بسيطة ممّا يمكّنك من إجرائها بنفسك لاغيًا الحاجة إلى توظيف محاسب. إنّه يُسهّل إدارة الأعمال التجارية، ويسمح لأرباب العمل بالتركيز على العمل الحقيقيّ بأنفسهم بعيدًا عن التعامل مع الورق. يضيق أصحاب الأعمال التجارية ذرعًا بالتعامل مع المحاسبين ومحصّلي الضرائب، من هنا قدّم مشروع FreeAgent نفسه لتبسيط هذه المهمة. ومرةً أخرى تبدو التقنية كشرّ لابدّ منه، إذ يمكنكم تخيّل التغيرات المتوقعة ضمن عالم المحاسبة في السنوات القليلة القادمة. DPDاعتماد التقنية ليس حكرًا على أصحاب الأعمال الجديدة واللاعبين الجدد الهادفين إلى الاستيلاء على حصصهم الخاصّة في السوق، فالتقنية متاحة للجميع بما فيهم الشركات التقليدية أيضًا. شركة DPD هي إحدى الشّركات التي حقّقت هذا الاستثناء. تعمل DPD على تسليم الطرود منذ عام 1970 وحتى اليوم، إلا أنّ إدخالها التقنية إلى العمل أتاح لهم تحقيق قفزات واسعة لتجاوز منافسيهم. حازت DPD على حب المستخدمين وثقتهم، ما جعلها تتعاقد مع جهات كبيرة مثل Amazon. فما السر وراء حب العملاء لـDPD؟ الجواب ببساطة:استخدامها التقنية لتقديم أرقى الخدمات للعملاء. كثيرًا ما يعطّلك انتظار طرد ما، فمعظم الشركات تحدّد لك يوم تسليم الطرد فحسب، الأمر الذي يلزمك البقاء في المنزل وعدم مغادرته في هذا اليوم حتى لو احتجت لزيارة متجر قريب بسرعة مخافة أن يفوتك الطرد. أدركت DPD هذه المشكلة واستثمرت في حلها لتعزيز تجربة عملائها، فعبر استخدام نظام تحديد المواقع GPS تتيح DPD لعملائها تتّبع طرودهم في الوقت الحقيقي. بداية ستتلقى رسالة نصيّة أو بريدا إلكترونيًا في اليوم السابق للتسليم مع تقدير موعد ساعة الاستلام، يُحسب هذا باستخدام نظام مُعقّد يعتمد على قاعدة بيانات عمليات التسليم السابقة. تاليًا في يوم استلام الطرد يمكنك أن تدخل لموقع DPD الإلكتروني لتتبّع حركة طردك في الوقت الحقيقي، وذلك بالنظر إلى إحداثيات موقع السائق على الخريطة؛ ما يمنحك إمكانية القرار فيما إذا كنت تملك الوقت للذهاب إلى المتجر أم لا، حتى أنّ البرنامج يخبرك بعدد الشحنات التي سيتم تسليمها قبل طردك. هكذا ومن خلال الاستثمار في التقنية المتاحة مثل نظام تحديد المواقع GPS، استطاع DPD تقديم خدمةٍ مختلفة تميّزه عن منافسيه. Go Henryتساعدنا التقنية على إنشاء بصمة خاصة ومساحة استثنائية حتى في أكثر القطاعات تقليديةً ومحافظةً على الثبات. لنأخذ Go Henry على سبيل المثال، والذين وفّروا إمكانية إنشاء حساب مصرفي للأطفال. لو كنتَ أبًا فستعلم المشكلة التي تشكّلها النقود للأطفال. يرغب الطفل أحيانًا بشراء مواد عبر الإنترنت بواسطة حساب مصرفي، أو يصدف أن يزور الطفل متجرًا دون نقود مما يضطرّك للدفع عبر بطاقتك الائتمانية، ناهيك عن أهمية مساعدة الصغار على تعلّم أساليب الإدارة الماليّة. حالما يبلغ ابنك العاشرة يمكنك اصطحابه للمصرف لإنشاء حساب خاص به، إلا أن معظم المصارف لا تتيح للأطفال استخدام التطبيقات المصرفية، وهكذا لن يعرف الطفل كم من المال في حسابه، وبالتالي يفقد السيطرة على ما ينفقه من المال. رأى مشروع Go Henry هذه الحاجة واستطاع إيجاد طريقة للحلّ باستخدام التقنية، مستثمرين جزءًا مُهملًا من قطاع العمل المصرفي لخلق مساحة تجارية مزدهرة بواسطة التقنية. يمكنك مع Go Henry إعطاء طفلك بطاقة للسحب الآلي، بعد تعيين كل أنواع الحدود التي تريدها، يمكنك بالإضافة إلى ذلك إعداد الحساب لسحب المزيد من المال أو تزويده بمصروف شهري بشكل منتظم وتلقائيّ دون حاجتك لتذكّر ذلك. الأهم من كل هذا تجربة الطفل ذاتها، والذي سيمكنه معرفة رصيده الحاليّ، أو إعداد جدول أهداف للادخار. تحسين تجربة المستخدم بواسطة التقنيةما هو العامل المشترك بين هذه القصص الأربع؟ هل هو تأثير التقنية في اختراق القطاعات التجارية؟ حسنًا، ما تشترك فيه القصص الأربعة هو أن التقنية حسّنت من تجربة المستخدم، الأمر الذي انعكس على تميّز هذه الشركات في قطاعاتها وبين منافسيها. انظر لعملك التجاري، قيّم تجربة العميل لديك ثم انظر إلى لطرق التي يمكن أن تُدخِل التقنية فيها لتقديم تجربة أرقى للعميل، عندها فقط سيكون بإمكانك الحصول على فرص جديدة، أو تجنّب المخاطر القادمة من هيمنة التقنية. ترجمة -وبتصرف- للمقال Disrupt your sector through a better user experience لصاحبه Paul Boag. حقوق الصورة البارزة: Designed by Freepik.
  11. بالرّغم من كثرة الحديث حول ملاءمة المنتج الذي ترغب في إطلاقه للسوق Product market fit إلّا أنّه لا يتوفر الكثير من الأدوات التي تساعد على قياس ملاءمة المنتج للسوق التي تحتاجها لمشروعك. والسبب في ذلك، أنه وبشكل جزئي هناك سؤال ينبغي ألّا تسأله: ويمكنك أن تعي لِم قال إيريك ذلك. لأننا في بعض الأحيان نغفل عن حاجة الزبائن ونركّز بدلا من ذلك على مُصطلحات، مثلاً "ملاءمة المنتج للسوق"، لأنه لو كنّا قريبين من المُستخدم فإننا سنعرف بشكل آلي ما إذا كنّا نملك ملاءمة المُنتج للسّوق أم لا. استطلاع مدى ملاءمة المنتج للسوق واستخدامه بالشكل الصحيحما هي الأسئلة التي ينبغي أن اسألها لزبائني؟أفضل طريقة وجدناها لقياس ملاءمة المنتج للسوق هي باستخدام أداة طوّرها شون إليس (Sean Elli) والتي تتطلّب الإجابة على عدد من الأسئلة، ومن أهمها "كم سيخيب أملك إذا لم تعد قادرًا على استخدام هذا المنتج؟" حتى أنه قام ببناء أداة لهذا الغرض أسماها survey.io والتي يمكنك أن تستخدمها بسهولة لإجراء استطلاع لقياس ملاءمة المنتج للسوق بالاستناد لقاعدة زبائنك. وتقوم هذه الأداة على طرح عدة أسئلة، أهمها سؤال "كيف سيكون شعورك؟". كم شخص أحتاج لاستطلاع رأيه للحصول على نتائج حاسمة؟قام هيتن شاه (Hiten Shah) بمدّ يد المساعدة لنعرف ذلك، وأفضل ما نصح به: "أننا لا نحتاج أكثر من 40-50 إجابة للوصول لنتيجة مُرضية." بالتأكيد، كلما كانت العينة أكبر كانت النتائج أفضل، ولكن عينة مكونة من 40-50 ستكون كافية. من الذي ينبغي أن يُستطلع رأيه لتجنب الحصول على نتائج مضلِّلة؟نعكف حاليًا على بناء خاصيّة جديدة تُدعى "Power Scheduler" كنا قد اختبرناها في مرحلة تجريبية لبضعة أشهر من الآن، وعموما كان مدى استخدام هذه الخاصيّة جيّدا مقارنة مع أرقامنا الحالية، لكن لا يمكننا أن نقول حقا إلى أي مدى هي خاصيّة مُفيدة. لذلك اخترت أكثر 200 شخص استخدامًا للخاصّيّة حاليًا. وكانت النتيجة كالتالي: الآن، بالتأكيد إجراء استطلاع لزبائن مخلصين يعطي نتائج مضللة بشكل كبير، وتساءل القليل من الأشخاص في فريقنا ما إذا كان ذلك هو النهج الصائب، وبمساعدة شون إليس، الرجل نفسه الذي بنى أيضا أداة مفيدة جدًا للاستطلاع تسمى "Qualaroo" التي نستخدمها كثيرا، وقمنا بالبحث عمّن ينبغي أن نجري معه الاستطلاع. اقتَرح لنا التالي: أوصي عمومًا بإجراء استطلاع للفئات التالية: الناس الذين جرّبوا منتجك وعاينوا خصائصه الأساسية.الناس الذين استخدموا منتجك على الأقل مرتين.الناس الذين استخدموا منتجك في الأسبوعين الماضيين.عندما أجرينا الاستطلاع مرة أخرى بصحبة شون إليس وهيتن شاه حصلنا على نتيجة واعدة للغاية، على الرغم من كونها أقل جاذبية من النّتائج السّابقة: كيف يمكن استعمال تلك الأدوات مع الميزات بدلا من المنتجات؟أنصح بشدّة استخدام هذه الأدوات لاختبار الميزات الجديدة التي يتم بناؤها خاصّة عندما يكون منتجك الأساسي قد حقّق بالفعل ملاءمة المنتج للسوق. الطريقة التي وجدتها لفعل ذلك بشكل واضح هي بتضمين صورة للميزة التي تتحدث عنها في عملية الاستطلاع، كما في هذا المثال: لماذا يمكن لهذا الاستطلاع أن يكون أكثر أهمية مع نمو منتجك؟من بين المشاكل المُثيرة للانتباه التي واجهتنا في Buffer هي كالتّالي: أيّا كانت الخاصية التي سنُطلقها فستكتب عنها الصّحافة ويكثر الحديث عنها مما يُعطينا إحساسًا خاطئًا بالنّجاح، وهو أمر ليس صحيحًا دائمًا خاصّة إذا لم تكن تتبّع إحصائياتك الأساسية عن كثب. هذا ما حدث معنا مع إطلاق "Daily app launch" على سبيل المثال. حيث حصلنا على تغطية إعلامية قوّية لها مما جعلنا نغفل عن تتبّع أحد أهم الإحصائيات في هذه الحالة، والمُتمثّلة في مدى رجوع المُستخدمين لاستخدام الخاصيّة من جديد (للأسف لم يرجعوا لاستخدامها بعد الاطّلاع عليها أوّل مرّة)، وعليه انخدعنا لفترة وظننّا بأنّ الخّاصية تسجّل نجاحًا، ولم نفهم حقيقة ما يحدث إلّا لاحقًا. لذلك ركّز جيّدًا وتأكد أنّ ما تقوم ببنائه من خصائص مفيد بالفعل لزبائنك (بعد أن تضمن ملاءمة المنتج الرّئيسي للسوق) هذا أمر مهم للغاية. ولهذا نسعى جاهدين للفصل ما بين التسويق وإطلاق المنتج، حيث نختبر المنتج أو الميزة الجديدة لأطول فترة تجريبية ممكنة حتى نضمن أنه يضيف قيمة ويحتاجه زبائننا بالفعل. وهنا أين يجب عليك الاستعانة بالاستطلاعات آنفة الذّكر لمعرفة مدى ملاءمة المنتج للسوق. لقد بدأنا في استخدام هذه الأداة مع خصائص مُختلفة لنتأكّد من صحّة فرضياتنا قبل أن تعلم الصّحافة بهذه الخصائص. الحفاظ على التّركيز والانضباط وعدم السّقوط في فخ المبالغة والمفاخرة (وهو ما وقعت فريسة له لمرات عديدة) لما ينمو مشروعك هو المفتاح للحفاظ على بناء أشياء رائعة ترضي زبائنك. ترجمة -وبتصرّف- للمقال A Simple Guide to Measuring the Product-Market Fit of Your Product or Feature لصاحبه Leo Widrich. حقوق الصورة البارزة: Designed by Freepik.
  12. يفترض هذا الدرس أنّك قد قمتَ بالفعل بإنشاء خادوم افتراضي خاصّ (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.
  13. ربما بناء المنتج الرقمي ليس بالمعضلة، فأنت أيا كنت مصممًا أو مبرمجًا أو أيأ كان مجال عملك تعرف ما تفعله ومحترف به، لكن المشكلة في بناء جمهورًا لتلك المنتجات، يشتريها ويقيمها، ويتطلع لكل جديد تضيفه، وهي مشكلة لأنك ربما ليس ذلك المسوق المحترف أو رجل المبيعات الذي يهتم بتفاصيل التسويق والبيع. هذا ليس عيبًا ولكن يكفي أن تقضي بعض الوقت لتتعرف كيف تفعل ذلك. بناء جمهورًا لمنتج رقمي هو أمر ليس بالسهل، فمن الخطوة الأولى التي تفكر فيها بالدخول إلى ذلك السوق المليء بالمنافسين يجب أن تضع خطتك لبناء جمهور مخلص لمنتجاتك والأهم، أن تبني ثقتك ومصداقيتك لديهم. فكيف تبني جمهورًا مخلصًا لك يشتري منتجاتك الرقمية؟ 1. قم ببناء موقعك أولاإذا لم تكن تمتلك موقعك الخاص بعد فهذه أول خطوة لتقوم بها، فبناء موقع خاص شيء ضروري للعمل بالمنتجات الرقمية. موقعك هو منزلك: تخيل أي شخص يريد أن يرى أعمالك أو يتعرف عليك أو يعرف ما الذي تجيده فأين يذهب، الموقع الخاص خطوة تسويقية ضرورية لأي عمل على الويب، قد يختلف البعض في بناء هوية تسويقية باسم مختلف أو باسماءهم الخاصة لكن في كلا الحالتين أنت من تقوم بها. قم بالتخطيط جيدًا لبناء موقع يعكس حرفيتك واهتمامك بما تقدمه، التصميم وسرعة أداء الموقع هي من الأولويات للاهتمام بها، الخطوة التالية هي إضافة محتوى مفيد وثري لأي زائر أو قارئ، فالمحتوى هو الملك كما يقولون، مقالاتك عن أشياء خاصة بمجالات عملك ستعطيك مصداقية وتضع قدمك بسوق المنافسة. طريقة للتواصل: بجانب حساباتك بالشبكات الاجتماعية ومواقع معارض الأعمال احرص دائمًا على إظهار صفحة التواصل بشكل جيد، فقد يضيع منك عدد لا بأس منه من الزبائن بسبب تصميم سيء أو خطأ بكتابة البريد بشكل صحيح. صفحة التواصل يجب أن تتضمن حساباتك الأخرى ليختار منها العميل الأنسب إليه، وبشكل أساسي أضف بريد العمل الذي تستقبل عليه عروض العمل أو تراسل به الزبائن، ويفضل أن يكون مختلف عن بريدك الشخصي الذي تسجل به بالمواقع. منصة تسويقية: يجب أن ينصّب جهدك لجذب أكبر قدر من المهتمين للموقع، حتى تضمن زيادة المبيعات وأهم القنوات المستخدمة لذلك هي القوائم البريدية كما سنعرف بعد قليل، المهم أنه بعد إنشاء موقع خاص فكل ما عليك هو أن تجعله المنصة المقصودة لأي عميل أو زائر. معرض أعمالك: عند التخطيط لبناء الموقع فأهم ما تقوم به هو معرض الأعمال، فأياً كانت مهنتك فإن معرض الأعمال هو ما يثبت قدرتك على عمل أشياء مفيدة للعميل، تخيل أنك مصمم فبجوار معرض أعمالك على مواقع كبيهانس من الضروري إضافة هذا القسم بموقعك لأنك لا تضمن إغلاق المواقع الأخرى، أو حتى ظهور مواقع أخرى أكثر حرفية، فالأضمن دائمًا هو عمل معرض الأعمال بموقعك الخاص وعمل نسخ احتياطي للموقع بين الحين والآخر. 2- القائمة البريديةتعتبر القوائم البريدية من أنجح القنوات التسويقية والتي من خلالها ستستطيع بناء جمهورًا يتطلع لأعمالك الجديدة؛ فقط إذا أحسنت استخدامها، ضع ببالك عند كتابة أي رسالة تستهدف بها زبائنك أن هذه الرسالة تصل بين عشرات الرسائل الأخرى لذا يجب أن تتضمن عنوانًا لافتًا وقيمة حقيقية لألا يندم المستقبِل على فتحها. كيف تقوم ببناء قائمة بريدية تحقق ربحًا؟ قدم قيمة بالمقابل: بناء قائمة بريدية ليس صعبًا، كل ما عليك هو توفير عينة أو منتج مجاني به قيمة عالية في مقابل تسجيل البريد والاسم، ويفضل ألا تزيد من خانات التسجيل كالبلد والعمر ورقم الهاتف، اختر فقط الخانات المهمة والسهل على الزبون ملئها. اهتم بها: الخطوة التالية بعد حصولك على عناوين البريد هو اهتمامك بها والعمل على كسب ثقتهم وإثبات مصداقيتك لديهم، قدم دائمًا قيمة أعلى من المتوقعة وستزيد مبيعاتك بشكل جيد، استهدف قائمتك من حين لآخر بمحتوى جديد أو بمنتج فريد أو بعينات لمنتجاتك لتشجيعهم على الشراء، لكن لا تكن مزعجًا!. 3. سعّر منتجات رقمية ملائمة للجميعفي بداية العمل ببيع المنتجات الرقمية خاصة، فإن أهم شيء هو إثبات أنك تقدم قيمة عالية تستحق الشراء، ولفعل ذلك يمكنك في البداية تقديم عينات أو منتجات رقمية مجانية تسوق بها عن نفسك وتثبّت قدميك بسوق المنافسة، إلا أن أكثر ما يقع به الكثير هو مسألة التسعير، فالبعض يضع سعرًا غاليًا ظنًا منه أني سيجني الكثير من الأرباح، والبعض الأخر يبخس حقه بأسعار رخيصة ربما لا تستحق وقته وجهده المبذول. الحل هو أن تجعل توزيع منتجاتك متاح للجميع، والجميع تعني هنا من يستطيع الشراء بسعر أغلى ومن يستطيع الشراء بسعر أقل، وحتى أولئك من لا يستطيعون الشراء فيمكنك عن طريقهم نشر اسمك وسمعة منتجاتك بطريقة غير مباشرة. كيف تسعّر إذن للجميع؟ في البداية فإن المحتوى والإرشادات التي تقدمها بموقعك تعتبر هي الاستفادة التي سيحصل عليها من لا يستطيع الشراء، وبتوفيرك لبعض العينات فإنهم بذلك يجربون منتجاتك وإن كانت جودتها عالية فيومًا ما ربما يصبحوا من المشترين. أما تسعيرك للزبائن سيكون على ثلاثة مراحل، المرحلة الأولى وهو المنتج الأساسي دون أية إضافات، والمرحلة الثانية هي إضافة دليل استخدام أو بعض الكتيبات المهمة للمنتج، المرحلة الثالثة ربما يتضمن فيديوهات تعليمية وبعض الحيل لاستخدام المنتج بأفضل طريقة. بذلك تزيد من القيمة وتوفر منتجك للجميع وبأسعار جيدة مربحة. 4. بع خبراتكمن أفضل ما يستطيع بيعه أحد هو خبراته، فتخيل أنك أخذت سنوات طوال في احتراف البرمجة أو التصميم أو التسويق، واختصرت على غيرك الطريق من خلال كتاب إلكتروني أو دورة تعليمية، فالفوائد هنا لا تعد ولا تحصى لكن منها: أنك ستصنع شيء تعرفه حق المعرفة، فالقيمة هنا موجودة ولا تحتاج إلا لتخطيط الدورة أو الكتيب لتبدأ بعمله بعد ذلك والتسويق له.ستبني اسمك بمجالك عن طريق الكثير من الأشخاص الذين سينصحون بدوراتك التعليمية وكتيباتك، ما سيفتح عليك الكثير من فرص العمل وخدمات الاستشارات.ستصبح الرائد وستكون لديك قبيلتك الخاصة التي تستشهد بالتعلم من مصادرك ودوراتك التعليمية.ويكفيك حديث النبي صلى الله عليه وسلم “… أو علم ينتفع به …”.من خلال بناء موقع جذاب مليء بالمحتوى المفيد ستجذب انتباه الكثير من المهتمين بمجال منتجاتك الرقمية، ومن خلال القائمة البريدية ستستطيع كسب ثقتهم وإعادة استهدافهم بكل منتج أو محتوى جديد تقدمه، أما التسعير الثلاثي فسيضمن توسع أعمالك ووصولها لأكبر قدر ممكن منهم، وأخيرًا لا يوجد أيسر وأفضل من عمل المنتجات الرقمية النابعة من تجاربك وخبرتك المهنية. أخبرنا الآن هل تتبع هذه النقاط أم أن لديك طريقتك الخاصة لبناء جمهورًا لمنتجاتك الرقمية؟
  14. إنشاء منتج ذي قيمة يتطلب الحصول على تغذية راجعة ذات قيمة. يحدّد من تتحدّث معه منذ البداية الكثير من الأمور. حيث بدأت أنا وشريكي المُؤسّس قبل بضعة أسابيع في اختبار المنتج الثاني لشركتنا في المرحلة التجريبية بيتا (beta) داخليًّا. إنّ منتجنا الأول Exist في طور بيتا العلنيّ (أي في الطور التجريبيّ الذي يمكن لمن هم خارج فريق العمل الوصول إليه) منذ عام تقريبًا. لقد وقعنا في الكثير من الأخطاء التي تعلمنا منها الكثير. نحن نعلم ما علينا فعله بطريقة مختلفة هذه المرّة، وهو ما سيسمح لنا بارتكاب أخطاء أخرى. فيما يلي بعض الدروس التي أرغب بمشاركتها. انتقِ مستخدميك بعنايةكان خطأنا الأكبر في اختبار النسخة التجريبية بيتا اختيارُ المستخدمين الخطأ. حاولنا حماية ثقتنا الهشّة بأنفسنا ودعَونا فقط الناس الذين كنا نعرفهم. كنّا نأمل بالحصول على تغذية راجعة صريحة (ولكن مؤدبة) لمساعدتنا في تحسين المنتَج دون أنّ نجد أنفسنا غارقين في بحر من الإحباط قبل أن نُطلق مُنتَجنا حتّى. لقد صدمتنا الحقيقة أكثر: لم نتلقَّ أيّة تغذية راجعة مُطلقًا. لم نحصل على التغذية الراجعة التي كنّا بحاجة إليها لأننا لم نكن نتحدّث إلى مستخدمين مهتمين. لقد كان "المستخدمون" لدينا مجرد أشخاص لديهم خمس دقائق ليساعدونا فيها وليس لديهم أيّ اهتمام حقيقيّ بإخبارنا بما أرادوا عمله بمنتجنا. لماذا؟ لأنّهم لم يكونوا بحاجة إلى منتجنا. لم نكن نحلّ أيّة مشاكل تواجههم. لم يعرفوا قيمة المنتَج ولم يتواجدوا لمدّة طويلة. أغلبهم اختفوا بعد أوّل ولوج لهم، والبعض رجعوا مرّة في الشهر في أفضل الحالات. لا تضيّع الوقت مع مستخدمين لا تخدمهم. لن تحصل على التغذية الراجعة التي تحتاجها من أناسٍ ليسوا بحاجة إليك. القيام بالأمر بالطريقة الصحيحة: اختر مستخدمين من السوق الذي تستهدفه.من أجل منتَج جديد، عليك البحث عن مستخدمين يعانون من المشكلة التي تُحاول حلّها، ولديهم حاجة، وراغبون في أن يستثمروا للحصول على قيمة. وبينما تبني أعمالك مع الوقت، يصير هذا أسهل بكثير. نركّز في منتجنا الثاني على نفس الزبائن الذين بنينا لهم مُنتجنا الأوّل، ولهذا فلدينا بالفعل مجموعة مستهدفة يمكننا الحصول على مختبرين لنسخة بيتا منها. عندما تبني علاقة مع أناس يستخدمون منتَجك، فهم أقرب لأن يكونوا مهتمين بمشاريع أخرى تعمل عليها. يمكنك أن ترى هذا في مشاريع أخرى أيضًا. عندما كانت Basecamp ما زالت تُعرف باسم 37aSignals، كانت لديها منتجات تستهدف نفس قاعدة المستخدمين. من الأسهل بكثير إيجاد مختبري بيتا –وفيما بعد مستخدمين يدفعون لقاء الخدمة– من كمّ المستخدمين الذين يعرفونك ويثقون بك بالفعل. إذا كنت في بداية مشروعك الأول، فلن تكون لديك ميزة قاعدة المستخدمين الموجودة بالفعل، ولكن يمكنك بناء جمهور بطرق أخرى. قبل أن نُطلق Exist للعموم بستة أشهر، بدأت في مدونتنا سلسلة مقالات دوريّة تُركِّز على الأخبار والمنتجات الجديدة في المجال الذي يختصّ فيه المُنتج. وبينما كنت أكمل هذه السلسلة كلّ أسبوع، أنشأنا أرشيفًا للمحتوى المتعلق بالسوق الذي نستهدفه وطورنا جمهورًا من الناس المهتمين بهذه المواضيع. لقد أنشأنا قائمة بريديّة لمن ينتظرون Exist لإبقاء الزبائن المحتملين على اطلاع على تقدمنا، ولقد استطعنا باستخدام رسائل البريد الإلكتروني المتعلقة المتعلقة بالتحديثات وبإنشاء محتوى يهتمون به أن نُنشئ علاقات مع الكثير من الزبائن حتى قبل أن يستخدموا منتجنا. وفي في المراحل اللاحقة من اختبار بيتا، استطلعنا قائمة المنتظرين لدينا لنجد الناس المهتمين بمنتجنا والذين يقدّرون قيمته. وبتأمل الأمر، كان يجب أن نأخذ هذه الخطوة قبل هذا بكثير. طلب التغذية الراجعة كلما حصلت على تغذية راجعة مبكرًا كلما كان هذا أفضل. تحصل الأفكار الجيدة على فرصتها، وتُصمَت الأفكار الضعيفة. عدم فهم المستخدمين جيدًا أمر خطير. من دون الفهم الجيد لن تعلم الاتجاه الأفضل لمنتجك ولا تعلم لمَ يُغادر الزبائن (أو لماذا يبقون). التغذية الراجعة هي الحلّ. من السهل أن تشعر أنك تزعج الناس، وخاصة في المراحل المُبكّرة من المُنتج. ولكن كأيّ شيء آخر في هذه الحياة، لن تعلم حتّى تسأل، والناس عادة يكونون مستعدين للمساعدة أكثر مما تتصور. أن تتوقّع من الزبائن أن يعطوك تغذية راجعة دون طلب منك توقُّعٌ مبالغٌ فيه. أنت مسؤول عن بدء الحوار. القيام بهذا الأمر بالطريقة الصحيحة: اسأل كثيرًا، وبطرق مختلفةالتحدّث مع زبائنك في الوقت الحقيقيّ (إمّا وجهًا لوجه أو عبر سكايب) من أفضل الطرق التي وجدتها تكشف عن تغذية راجعة مفيدة. عندما تتحدث إلى مستخدم وجهًا لوجه بهذه الطريقة، فيمكنك أن تتعمّق أكثر في الصغائر التي يقولها وأن تدعه ينطلق بالحديث عن هذه الخفايا. هذه هي الطريقة الأمثل في الحصول على صورة متكاملة عن كينونة هذا المستخدم، وكيف يناسب مُنتَجُك حياتَه. لكن أحيانًا لا تكون هذهِ التغذيةَ الراجعةَ التي تحتاجها. عندما رغبنا أن نعلم ما هي الأجزاء الأكثر شعبية في منتجنا، أرسلنا استبيانًا لكل المستخدمين عبر البريد الإلكترونيّ. لم يكن هذا مباشرًا بقدر المكالمات الحيّة، ولكننا استطعنا جمع معلومات من مستخدمين كُثُر في وقت قصير، وتمكنّا من السؤال عن الأمور التي نرغب بمعرفتها بالضبط. أحيانًا ترغب فقط بتقييم عام وواضح عن منتجك أو خدمتك. يمكنك في هذه الحالات أن تستخدم سؤالًا بسيطًا مثل: "هل تنصح صديقًا باستخدام منتجنا؟"، أو بسؤال مستخدميك كيف يقيمون خدمة الزبائن بعد أن تحل مشكلتهم. يجب أن تعتمد طريقة طلبك للتغذية الراجعة على طبيعة التغذية الراجعة التي تريدها. التزم بتوجّه واحد رئيسيّ للتغذية الراجعة في الأيام الأولى لمشروعك. تقليل الاستجابات وانزعاج المستخدمين يمكن أن يحدثا إذا شعروا أنك تُرسل إليهم طلبات كثيرة. لا ترسل استمارات تُزعِج فيها المستخدمين في نفس الشهر الذي تقوم فيه بجهد لعمل مقابلات تطوير. التغذية الراجعة المركزة المستمرة هي ما يُنشئ انطباعًا ذا معنى. الاستماع إلى الأقليات الصاخبة؟عندما تبذل جهدًا كبيرًا للحصول على تغذية راجعة، فإن أيّ قدر قليل منها يبدو كذهب خالص. قد يوقعك هذا بسهولة كبيرة في فخ الأقليّة الصاخبة (vocal minority، وهي الأقليّة التي تعبّر عن آرائها باستمرار). تجد بأن عددًا من المستخدمين يطلبون ميزة معينة فكرت ببنائها، وفجأة تبدأ بالظنّ بأنّ كلّ المستخدمين يريدونها بالتأكيد وتحدّثك نفسك بأنه من الواضح أنهم لم يتمكنوا من إخبارنا بذلك وحسب، ولهذا تُقرّر بناءها وإضافتها. والأسوأ من هذا أن هناك ميزة معينة لم تفكر ببنائها، فيأتيك ستة أوسبعة مستخدمين ويسألون عنها في نفس اليوم. وتكتشف لاحقًا أنك بدأت تبني ميزة جديدة دون اطلاع كافٍ على الوضع العام. من السهل أن تنقضّ على شيء وتبدأ بالعمل عليه شاعرًا أنه عاجل أو مطلوب، مع أنه ليس كذلك. يبدو هذا سخيفًا، لكننا جميعًا معرضون لذلك. لعمل شيء يريده الناس، أثبت أولًا أنهم يريدونه بحقّ. تأكّد من صحّة الفرضيات التي تعتمد عليها قبل أن تشرع في البناء. التغذية الراجعة هي أفضل وسيلة لبناء فرضيات حول ما قد ترغب به غالبية المستخدمين. يمكنك بعدها أن تقوم بالمزيد من التطويرات المتعلقة بالزبائن لترى إن كانت تلك الفرضية ستصمد. إذا صمدت الفرضيًة، وكانت غالبية المستخدمين لديهم نفس الشعور، فيمكنك عندئذ أن تبدأ بالبحث في أعماق الأمر، لتجد السبب الذي يدفعهم للرغبة بهذه الميزة تحديدًا، وكيف يمكنك حلّ تلك المشكلة بالنسبة لهم (الأمر يتعلق بالاحتكاك وليس بالميزة). لدى بناء مُنتجنا الجديد، نستخدم كلا من Help Scout والوسوم (tags) للتغذية الراجعة لنبقى على اطّلاع دائم بعدد الطّلبات التي تصلنا حول كل خاصّيّة. من السهل والسريع إضافة وَسم (tag) عندما ترد على زبون، ورؤية عدد الطلبات على كل وسم تسهل اختيار ما سيتم عمله لاحقًت دون أن تغرق في طلبات الأقليّة الصاخبة تلك. إنّ التغذية الراجعة جزء متعدد الأوجه من أجزاء بناء شركة. سواءٌ كنت تحصل على تغذية راجعة أكثر من اللازم، أو كانت لديك تغذية راجعة مربكة أو متضاربة، أو لم تكن تحصل على تغذية راجعة على الإطلاق، فلستَ وحدك. اختر زبائنك بحرص، واطلب تغذية راجعة باستمرار، ودائمًا تأكد من الفرضيًة قبل تطبيق ما تتلقاه من الزبائن. القول أسهل من الفعل، ولكن التحسينات التي أقوم بها في التعامل مع التغذية الراجعة للزبائن جعلتي أفضل في بناء أفضل منتج للمستخدمين. ترجمة -وبتصرف- للمقال: Talking to Your Very First Customers.
  15. يشكّل ضبط إعدادات المستخدمين والمجموعات في لينكس واحدًا من المهارات الأساسية لإدارة نظام التشغيل، ويتضمن ذلك مراقبة تسجيلات الدخول الممكنة لكافة مكونات النظام. نستعرض في هذا الدرس المعلومات الأساسية عن إدارة المستخدمين وتسجيلات الدخول، سنطبق أمثلتنا على توزيعة 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.
  16. رغم مُضيّ ما يزيد عن مئة وثلاثين عامًا على هذه المقولة لصاحبتها آنّا ايزابيل ريتشي، فإنّنا لا زلنا نستخدمها، وتشير هذه الحكمة التقليديّة إلى أنه من الأفضل دومًا تعليم الناس كيف يصطادون. في الحقيقة فكّرنا بهذا الأمر مرارًا في فريق الدعم لمشروع Buffer. لا سيما مع ملاحظتنا أن الإتجاه السائد في السوق يميل لتجاهل هذه الحكمة كليًا. قد تكون هذه الفكرة صالحة بشكل أوسع للعاملين في الدعم الفنّي، فنحن في النهاية نُجتذب لهذا الاتجاه ﻷننا نحب أن نعلّم الآخرين، ونشعر بالألم عندما لا يحبّ الناس التقنية التي نحبّ، الأمر الذي يعطي عملنا قوّته وتفرّده. رغم ذلك، فلدى جميع البشر ميل فطريّ للتعلّم بشكل ذاتي، وفضول لنضغط على كلّ مفتاح مستكشفين وظيفته، نحبّ أن نتعلم كيف ولماذا تجري كل عمليّة، لهذا يبدأ الناس بطلب المساعدة منّا في مراحل باكرة، هكذا تعلّمنا حبّ المساعدة، وانتهى بنا المطاف لنكتب هذه القواعد. أحيانًا أضطرُّ لخرق هذه العادة لتحسين مهاراتي في خدمة الزبائن لدرجة أفضل. هناك العديد من المرات التي حاولتُ فيها تعليم الزبون بينما كان يُفترض بي أن أقدّم له الحل المُنجَز بشكل جاهز. ورغم أننا في Buffer نُشتَهر بالرسائل الالكترونية الشخصية المفصّلة، إلا أنني تعلّمت إمكانية إسعاد الزبون برسالة إلكترونية تقول "كل شيء جاهز" فحسب. علّمتني تجربتي أنه ثمّة حالات يجدر بفريق خدمة الزبائن أن يكون أقل تعليمًا وشرحًا للعميل فيها، إليكم بعض السيناريوهات للتأمل: 1- عندما لا يحتاج الزبون لتكرار هذه الخطوة ثانيةًغالبًا ما أضبطُ نفسي أثناء محاولتي تعليم الناس أمورًا لن يحتاجوا فعلها مرّة ثانية، على سبيل المثال؛ هناك عدّة خطوات عليك فعلها لتدمج عدّة حسابات تتبع لجهة واحدة فيBuffer. يمكن أن يقوم العميل بهذا مع بعض المشقّة، أو يمكنني تولّي هذه المهمة بنفسي. رغم ذلك، كثيرًا ما أراسل الزبائن بالخطوات المفصّلة؛ ﻷنني أريدهم أن يفهموا آليّة عمل التطبيق ولمَ واجهتهم هذه المشكلة. يحتاج الأمر تدريبًا لتكتسب القدرة على التمييز وتقرّر متى عليك أن تشرح لهم، ومتى عليك أن تقدّم لهم سمكة جاهزة. 2- عندما يكون أداؤك أسرع، ويكون لديك العديد من العملاء ينتظرون مساعدتكهذه الأمر جدليّ بالفعل، لكنّي سأشرح سبب تفكيري بهذه الطريقة: إذا كان بإمكاني فعل شيء ما بسرعة أكبر بكثير من إملائي الخطوات على العميل، عليّ القيام بذلك. وفقًا لخبرتي فإن هذا لا يضرّ عادة بمستخدمي Buffer، إذ غالبًا ما يشكرني الناس عقب أداء الخدمة. قد تأتيني رسائل من قبيل "هلّا شرحت لي كيف يمكنني القيام بهذا في المرات القادمة؟" لكنّ نادرًا ما يحصل هذا. هناك سيناريوهات تعلّمك الكثير حقًّا، وما ذكرته آنفًا دليلٌ واضحٌ على منتج مهمّ ومطلوب. أحد الأمور التي يجب على مدراء الإنتاج سؤال فريق خدمة العميل عنها؛ هي ما إذا كانوا يلجؤون لتقديم الحلول الجاهزة للعملاء على الدوام عوضًا عن تعليمهم تنفيذ الخطوات بأنفسهم، أيّ تطوير في المنتج سيجنيه المدراء من هذا؟ اسألوا فريق خدمة العملاء عن الخطوات التي تحيّر الزبائن ويستوضحونها منهم باستمرار، ثم اجعلوا هذه الخطوات أوضح، يمكنكم فعل ما هو أفضل من هذا بتطوير العملية بحدّ ذاتها وتبسيط خطواتها. 3-عندما يحاول العميل مرارًا دون نتيجةذكرتُ هذا السيناريو رغم أنّه جليّ، فالقائمة لن تكتمل من دونه. أحيانًا نواجه مهامًا على الزبون تعلّم أدائها بنفسه، لكنّها لا تعمل لسبب أو لآخر، في هذه الحالة، قدّم للعميل "السمكة" الأفضل بحوزتك، واخدمه بنفسك، اشكره على وقته الثمين، وقدّم له دعوة بإعادة تعليمه الخطوات لاحقًا. الاستثناءات:الحالة الوحيدة التي لا أسلك فيها هذه السيناريوهات هي تلك المتعلّقة بالأمان، حتى لو كان عليّ أن أراسل شخصًا ما بعدة خطوات ليستطيع تغيير كلمة السرّ الخاصة بحسابه، إجراء تعديل ما في الفواتير، إدارة حساب موظف سابق عنده؛ لا أتوانى عن ذلك. وأرى أن هذا يندرج ضمن سياق شعور العميل بالأمان، فإذا كنتَ تقوم بهذه الخطوات معه، فإنك ستقوم بها مع سواه ممن يحاول الولوج إلى حسابه. حسب تجربتي غالبًا ما يفهم العملاء الخطوات الخاصة بالأمان، بل ويرغبون في اجتياز عدد من الخطوات ﻷن هذا يعني أن من يحاول اختراق حسابهم عليه اجتياز ذات العقبات. هل سبق أن خَبِرتَ أيًا من هذه التجارب؟ كيف عالجتها؟ سيكون من دواعي سروري قراءة تعليقاتكم، تجاربكم، التحديات التي واجهتكم في هذا المضمار. تُرجم بتصرّف من مقال customer support teach or fish لكاتبه Carolyn Kopprasch.