انتقل إلى المحتوى الرئيسي

تمرين 1 – إدارة الأذونات وتخصيص بيئة لينكس

عناصر التصحيح

تتوفر عناصر التصحيح لهذا التمرين في مستودع التمارين: 👉 module-13 – Corrections

الهدف العام​

فهم وتطبيق واختبار أذونات يونكس (chmod, chown, su) في بيئة متعددة المستخدمين.
تعلم كيفية تخصيص بيئة المستخدم باستخدام .bashrc.


المدة​

أسبوع واحد

التسليم​

  • تقرير PDF أو Word مع لقطات شاشة، تفسيرات وتأملات
  • السكربتات أو الأوامر المستخدمة (في التقرير وفي ملف .sh إذا كان ذلك مناسبًا)

السياق​

أنت مدير خادم لينكس يستخدمه 4 زملاء: Albert, Bernard, Claude و Danielle.
يجب عليك:

  • إنشاء المستخدمين: Albert, Bernard, Claude و Danielle
  • إعداد مساحة عمل مشتركة
  • تخصيص أذونات محددة
  • اختبار الإجراءات المتوقعة
  • إضافة لمسة شخصية إلى بيئتهم برسائل ترحيب متحركة

الجزء 1 – منح حقوق المدير للمستخدم eleve​

السياق​

في هذا التمرين، تعمل بشكل رئيسي مع المستخدم eleve. من الممكن أن يكون هذا المستخدم قد تم إنشاؤه بالفعل أثناء تثبيت Ubuntu 24.04. إذا لم يكن الأمر كذلك، يجب عليك إنشاؤه يدويًا.

المهمة​

إنشاء المستخدم eleve بكلمة المرور eleve
(إذا لم يتم ذلك بالفعل أثناء تثبيت Ubuntu 24.04).
ثم، أضف هذا المستخدم إلى مجموعة sudo حتى يتمكن من تنفيذ الأوامر الإدارية.

الأوامر لإكمالها​

Commande 1.1 : ___________________________________________   # إنشاء المستخدم eleve بكلمة المرور eleve (إذا لزم الأمر)
Commande 1.2 : ___________________________________________ # إضافة المستخدم eleve إلى مجموعة sudo
Commande 1.3 : ___________________________________________ # فتح ملف sudoers باستخدام الأداة الآمنة
Commande 1.4 : ___________________________________________ # التحقق أو إضافة السطر الذي يسمح لـ eleve باستخدام sudo
Commande 1.5 : ___________________________________________ # اختبار أمر باستخدام sudo (مثال: sudo ls /root)

النتيجة المتوقعة​

  • المستخدم eleve موجود ويمكنه تسجيل الدخول باستخدام كلمة المرور الخاصة به
  • يمكنه تنفيذ الأوامر باستخدام sudo (مطلوب كلمة المرور)
  • لا توجد رسالة خطأ عند تنفيذ أمر sudo

لقطات الشاشة المطلوبة​

  1. إنشاء المستخدم eleve (إذا لزم الأمر)
  2. الإضافة إلى مجموعة sudo
  3. محتوى ملف sudoers المعدل أو الذي تم التحقق منه
  4. اختبار ناجح لأمر باستخدام sudo

الجزء 2 – إنشاء المستخدمين وتعديل كلمات المرور الخاصة بهم​

السياق​

أنت الآن متصل كمستخدم eleve أو root، اللذان يمتلكان حقوق sudo. يجب عليك:

  • إنشاء أربعة مستخدمين: albert, bernard, claude, danielle
  • تعيين كلمة مرور ابتدائية عند الإنشاء (قم بتدوينها)
  • التحقق من أن الدلائل الشخصية الخاصة بهم قد تم إنشاؤها
  • اختبار الاتصال باستخدام su -
  • تعديل كلمات المرور الخاصة بهم من حسابك eleve

الأوامر لإكمالها​

Commande 2.1 : ___________________________________________   # إنشاء المستخدم albert (حدد كلمة المرور المستخدمة)
Commande 2.2 : ___________________________________________ # إنشاء المستخدم bernard (كلمة المرور لتدوينها)
Commande 2.3 : ___________________________________________ # إنشاء المستخدم claude (كلمة المرور لتدوينها)
Commande 2.4 : ___________________________________________ # إنشاء المستخدم danielle (كلمة المرور لتدوينها)
Commande 2.5 : ___________________________________________ # عرض الدلائل في /home للتحقق من الإنشاءات
Commande 2.6 : ___________________________________________ # الاتصال باستخدام su - albert، ثم العودة إلى eleve
Commande 2.7 : ___________________________________________ # تعديل كلمة مرور المستخدم albert من eleve
Commande 2.8 : ___________________________________________ # تعديل كلمة مرور المستخدم bernard من eleve
Commande 2.9 : ___________________________________________ # تعديل كلمة مرور المستخدم claude من eleve
Commande 2.10 : __________________________________________ # تعديل كلمة مرور المستخدم danielle من eleve

النتيجة المتوقعة​

  • تظهر دلائل المستخدمين في /home
  • su - albert يسمح بالاتصال بجلسة عمله
  • تم تعديل جميع كلمات المرور بنجاح من eleve

لقطات الشاشة المطلوبة​

  1. مخرجات الأمر ls /home
  2. اتصال ناجح بجلسة albert ثم العودة
  3. تعديلات كلمات المرور للمستخدمين الأربعة

الجزء 3 – إضافة Danielle و Claude إلى sudoers​

السياق​

أنت متصل بالمستخدم eleve (أو root) الذي يمتلك حقوق sudo.
يجب عليك الآن منح حقوق المدير لـ Danielle و Claude، عن طريق إضافتهما إلى ملف sudoers.

سيمكنهم ذلك من تنفيذ الأوامر الحرجة باستخدام sudo، مثل تحديثات النظام، تعديلات حسابات المستخدمين، أو إدارة ملفات النظام.

الأهداف​

  • إضافة claude و danielle إلى ملف sudoers
  • التحقق من أنهما يمكنهما تنفيذ الأوامر باستخدام sudo

الأوامر لإكمالها​

Commande 3.1 : ___________________________________________   # فتح ملف sudoers باستخدام visudo
Commande 3.2 : ___________________________________________ # إضافة سطر يسمح لـ claude بتنفيذ أوامر sudo
Commande 3.3 : ___________________________________________ # إضافة سطر يسمح لـ danielle بتنفيذ أوامر sudo
Commande 3.4 : ___________________________________________ # التحقق من أن claude ينتمي إلى مجموعة sudo أو مدرج في /etc/sudoers
Commande 3.5 : ___________________________________________ # التحقق من أن danielle تنتمي إلى مجموعة sudo أو مدرجة في /etc/sudoers
Commande 3.6 : ___________________________________________ # الاتصال بالمستخدم claude
Commande 3.7 : ___________________________________________ # تنفيذ أمر باستخدام sudo (مثال: sudo whoami) للاختبار
Commande 3.8 : ___________________________________________ # الاتصال بالمستخدم danielle
Commande 3.9 : ___________________________________________ # تنفيذ أمر باستخدام sudo للاختبار

النتيجة المتوقعة​

  • يظهر Claude و Danielle في ملف /etc/sudoers، أو يكونان جزءًا من مجموعة (مثل sudo) تمنحهما حقوق الإدارة
  • عند اختبار أمر باستخدام sudo، يتم مطالبتهم بإدخال كلمة المرور الخاصة بهم، ثم يتم تنفيذ الأمر بشكل صحيح
  • لا يجب أن يظهر أي رسالة خطأ تتعلق بأذونات غير كافية

لقطات الشاشة المطلوبة​

  1. عرض السطور المضافة في ملف sudoers
  2. تنفيذ ناجح لأمر باستخدام sudo لـ Claude
  3. تنفيذ ناجح لأمر باستخدام sudo لـ Danielle

الجزء 4 – إعداد دليل مشترك​

السياق​

يجب عليك إنشاء دليل مشترك يقع في /home/shared_data/، مع هيكل محدد للملفات والمجلدات الفرعية.
يجب أيضًا إنشاء سكربتين .sh مع رسالة تظهر عند التنفيذ.

المستخدم المتوقع لهذه الجزء​

يجب تنفيذ هذا الجزء كمستخدم root أو كمستخدم eleve مع حقوق sudo.

لذا استخدم الأمر sudo قبل كل أمر إذا كنت متصلًا بـ eleve.

الأهداف​

  • إنشاء الهيكل الكامل في /home/shared_data
  • كتابة محتوى سكربتين بسيطين
  • التحقق من الإنشاء الصحيح للملفات والمجلدات

الهيكل المتوقع​

/home/shared_data/
├── file1.txt
├── file2.txt
└── dossier1/
├── script1.sh
└── script2.sh

المحتوى المتوقع لـ script1.sh​

#!/bin/bash
echo "Bonjour depuis le script 1!"

المحتوى المتوقع لـ script2.sh​

#!/bin/bash
echo "Bonjour depuis le script 2!"

الأوامر لإكمالها​

Commande 4.1 : ___________________________________________   # إنشاء المجلد /home/shared_data
Commande 4.2 : ___________________________________________ # إنشاء الملف file1.txt
Commande 4.3 : ___________________________________________ # إنشاء الملف file2.txt
Commande 4.4 : ___________________________________________ # إنشاء المجلد الفرعي dossier1
Commande 4.5 : ___________________________________________ # إنشاء الملف script1.sh في dossier1
Commande 4.6 : ___________________________________________ # إنشاء الملف script2.sh في dossier1
Commande 4.7 : ___________________________________________ # كتابة المحتوى في script1.sh
Commande 4.8 : ___________________________________________ # كتابة المحتوى في script2.sh
Commande 4.9 : ___________________________________________ # التحقق من الهيكل الكامل باستخدام ls -R أو tree

النتيجة المتوقعة​

  • يحتوي الدليل /home/shared_data/ على ملفين نصيين ومجلد فرعي dossier1/
  • يحتوي المجلد الفرعي على سكربتين .sh بمحتوى صحيح
  • تعكس الأمر ls -R (أو tree) الهيكل المتوقع تمامًا

لقطات الشاشة المطلوبة​

  1. مخرجات الأمر ls -R /home/shared_data أو tree /home/shared_data
  2. عرض محتوى script1.sh و script2.sh باستخدام cat

الجزء 5 – تخصيص الأذونات​

السياق​

لقد قمت بإنشاء هيكل ملفات مشترك في /home/shared_data.
يجب عليك الآن تخصيص المالكين والأذونات المحددة لكل عنصر لضمان الوصول المتحكم فيه.

المستخدم المتوقع​

يجب تنفيذ هذا الجزء كمستخدم root أو كمستخدم eleve الذي يمتلك حقوق sudo.
لذا يجب تنفيذ جميع الأوامر في هذا القسم باستخدام الامتيازات اللازمة.

الأهداف​

تخصيص المالكين و الأذونات التالية:

ملف / مجلدالمالكالأذونات المتوقعة
/home/shared_data/file1.txtalbertقراءة/كتابة له فقط
/home/shared_data/file2.txtbernardقراءة/كتابة له فقط
/home/shared_data/dossier1/script1.shbernardقابل للتنفيذ فقط من قبل Bernard
/home/shared_data/dossier1/script2.shclaudeقابل للتعديل (قراءة/كتابة) ولكن غير قابل للتنفيذ
/home/shared_data/danielleتحكم كامل على كل المجلد (وصول كامل)

الأوامر لإكمالها​

Commande 5.1 : ___________________________________________   # تغيير مالك file1.txt إلى albert
Commande 5.2 : ___________________________________________ # تطبيق الأذونات قراءة/كتابة لـ albert فقط
Commande 5.3 : ___________________________________________ # تغيير مالك file2.txt إلى bernard
Commande 5.4 : ___________________________________________ # تطبيق الأذونات قراءة/كتابة لـ bernard فقط
Commande 5.5 : ___________________________________________ # تغيير مالك script1.sh إلى bernard
Commande 5.6 : ___________________________________________ # تطبيق الأذونات تنفيذ فقط للمالك
Commande 5.7 : ___________________________________________ # تغيير مالك script2.sh إلى claude
Commande 5.8 : ___________________________________________ # تطبيق الأذونات قراءة/كتابة بدون تنفيذ
Commande 5.9 : ___________________________________________ # تغيير مالك المجلد shared_data إلى danielle بشكل متكرر
Commande 5.10 : __________________________________________ # منح danielle جميع الحقوق على جميع الملفات في المجلد
Commande 5.11 : __________________________________________ # التحقق من الأذونات باستخدام ls -l /home/shared_data والمجلدات الفرعية

النتيجة المتوقعة​

  • كل ملف لديه المالك المعين بشكل صحيح
  • الأذونات (r, w, x) مطبقة بالضبط كما هو مطلوب
  • يجب أن يظهر الأمر ls -l على كل ملف هذه الحقوق

لقطات الشاشة المطلوبة​

  1. مخرجات الأمر ls -l /home/shared_data/
  2. مخرجات الأمر ls -l /home/shared_data/dossier1/
  3. أي دليل آخر مفيد تعتبره مناسبًا

الجزء 6 – جدول اختبارات الوصول لكل مستخدم​

السياق​

تم تخصيص الأذونات. حان الوقت الآن لاختبار الوصول لكل مستخدم على الملفات والسكربتات في الدليل /home/shared_data.

لكل اختبار، يجب عليك الاتصال مؤقتًا بمستخدم عبر الأمر:

su -c 'commande à exécuter' nom_utilisateur

الأهداف​

  • التحقق من أن حقوق الوصول تعمل كما هو متوقع
  • توثيق النتائج الملاحظة لكل اختبار
  • تحديد النجاحات أو أخطاء الأذونات

الأوامر لإكمالها​

لذا لكل مستخدم، اختبر الإجراءات التالية مع su nom_utilisateur -c 'commande':

Commande 6.1 : ___________________________________________   # Albert يحاول قراءة file1.txt
Commande 6.2 : ___________________________________________ # Albert يحاول الكتابة في file1.txt
Commande 6.3 : ___________________________________________ # Albert يحاول الكتابة في file2.txt
Commande 6.4 : ___________________________________________ # Bernard يكتب في file2.txt
Commande 6.5 : ___________________________________________ # Bernard ينفذ script1.sh
Commande 6.6 : ___________________________________________ # Claude يعدل script2.sh (مثال: يضيف سطرًا)
Commande 6.7 : ___________________________________________ # Claude يحاول تنفيذ script1.sh
Commande 6.8 : ___________________________________________ # Danielle تعدل file1.txt
Commande 6.9 : ___________________________________________ # Danielle تعدل script2.sh

النتيجة المتوقعة لكل أمر​

اختبارالنتيجة المتوقعة
Albert يقرأ file1.txtنجاح
Albert يكتب في file1.txtنجاح
Albert يكتب في file2.txtفشل (إذن مرفوض)
Bernard يكتب في file2.txtنجاح
Bernard ينفذ script1.shنجاح
Claude يعدل script2.shنجاح
Claude ينفذ script1.shفشل (إذن مرفوض)
Danielle تعدل file1.txtنجاح
Danielle تعدل script2.shنجاح

لقطات الشاشة المطلوبة​

  • تنفيذ كل اختبار باستخدام su -c
  • رسائل النجاح أو الخطأ التي يعرضها النظام
  • (على سبيل المثال: Permission denied أو عرض المحتوى الناتج)

الجزء 7 – تخصيص بيئة .bashrc​

السياق​

يجب أن يكون لكل مستخدم في نظامك رسالة مخصصة أو تأثير بصري يظهر عند فتح جلسة (الاتصال باستخدام su - nom_utilisateur).
يتم ذلك عن طريق تعديل ملف .bashrc الموجود في الدليل الشخصي لكل مستخدم.

ستقوم بتعديل هذا الملف لكل من المستخدمين الأربعة الذين تم إنشاؤهم.

الأهداف​

  • إضافة محتوى مخصص في .bashrc لكل مستخدم
  • استخدام على الأقل واحدة من الأوامر التالية:
    • figlet (عرض ASCII مزخرف)
    • cowsay (رسالة في فقاعة مع بقرة)
    • fortune (اقتباس عشوائي)
    • echo (رسالة بسيطة)
  • التحقق من أن ذلك يعمل عند الاتصال بالجلسة

الأوامر لإكمالها​

Commande 7.1 : ___________________________________________   # إضافة رسالة مخصصة في .bashrc لـ albert
Commande 7.2 : ___________________________________________ # إضافة رسالة مخصصة في .bashrc لـ bernard
Commande 7.3 : ___________________________________________ # إضافة رسالة مخصصة في .bashrc لـ claude
Commande 7.4 : ___________________________________________ # إضافة رسالة مخصصة في .bashrc لـ danielle
Commande 7.5 : ___________________________________________ # اختبار عرض الرسالة لـ albert
Commande 7.6 : ___________________________________________ # اختبار عرض الرسالة لـ bernard
Commande 7.7 : ___________________________________________ # اختبار عرض الرسالة لـ claude
Commande 7.8 : ___________________________________________ # اختبار عرض الرسالة لـ danielle

النتيجة المتوقعة​

  • عندما يتصل مستخدم بـ su - nom، تظهر رسالة تلقائيًا (ASCII، اقتباس، رسالة، أو تأثير بصري)
  • الرسائل مختلفة من مستخدم لآخر
  • التأثيرات مرئية مباشرة في الطرفية بعد الاتصال

لقطات الشاشة المطلوبة​

  1. عرض الرسالة .bashrc عند الاتصال لكل مستخدم
  2. محتوى كل ملف .bashrc معدل (cat /home/nom/.bashrc أو nano)

مثال مسموح به (لـ Albert فقط)​

echo 'figlet "Bienvenue Albert!"' >> /home/albert/.bashrc

بالنسبة للآخرين، يجب عليك ابتكار شيء فريد.


الجزء 8 – أسئلة التأمل النهائية​

السياق​

لقد قمت الآن بـ:

  • إنشاء وتكوين عدة مستخدمين
  • إدارة ملفات وأذونات محددة
  • تعديل بيئات المستخدم عبر .bashrc
  • التحقق من الوصول وتنفيذ السكربتات وفقًا للحقوق

حان الوقت لأخذ خطوة إلى الوراء والتفكير في التأثيرات، المخاطر والممارسات الجيدة المتعلقة بما قمت بتطبيقه.

التعليمات​

أجب بجدية على الأسئلة التالية. يجب عليك تقديم حجج لردودك. النسخ واللصق للأوامر لا يكفي. استخدم أمثلة عندما يكون ذلك مناسبًا.

يمكن كتابة إجابتك مباشرة تحت كل سؤال في التقرير الذي سيتم تسليمه.

الأسئلة لإكمالها​

1. ما أهمية تكوين الأذونات بشكل صحيح على نظام لينكس متعدد المستخدمين؟
(اشرح ما يمكن أن يحدث إذا كانت جميع الملفات تحتوي على أذونات 777.)

Réponse :
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................

2. ما الفرق بين أذونات التنفيذ (x) وأذونات القراءة (r)؟ أعط مثالًا ملموسًا.

Réponse :
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................

3. ما الأمر الذي يسمح بتغيير الأذونات؟ ما الأمر الذي يسمح بتغيير المالك؟ أعط مثالًا ملموسًا لاستخدام صحيح لكل منهما.

Réponse :
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................

4. ما الفرق بين الانتماء إلى مجموعة (sudo) وبين أن تكون مدرجًا صراحة في ملف /etc/sudoers؟

Réponse :
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................

5. لماذا لا ينصح بإعطاء حقوق sudo لجميع مستخدمي النظام؟ ما هي المخاطر؟

Réponse :
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................

6. ماذا سيحدث إذا كان بإمكان مستخدم تعديل سكربت يتم تنفيذه بواسطة مدير؟ أعط مثالًا على ثغرة.

Réponse :
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................

7. ما فائدة تخصيص .bashrc؟ هل يمكن جعله أداة للهندسة الاجتماعية أو الأمان؟

Réponse :
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................


الجزء 9 – متغيرات البيئة​

السياق​

ستقوم بإجراء سلسلة من الاختبارات لفهم:

  • كيفية عمل المتغيرات المحلية والمصدرة
  • ما هي رؤيتها بين المستخدمين
  • كيفية جعل متغير مستدامًا لمستخدم معين
  • كيفية مشاركة متغير (أو لا) بين عدة مستخدمين

القواعد التي يجب اتباعها​

  • اعمل في كل مرة مع مستخدم مختلف (Albert, Bernard, Claude, Danielle)
  • لا تعدل إلا بيئتهم الخاصة
  • لا تغش بنسخ .bashrc من مستخدم إلى آخر — يجب معالجة كل مستخدم بشكل مستقل

الأهداف​

  • تحديد المتغيرات لكل مستخدم
  • اختبار رؤيتها في شل فرعي
  • التحقق من أن مستخدمًا آخر لا يمكنه رؤية المتغير
  • إضافة متغير دائم عبر .bashrc لكل مستخدم

السيناريو 1 – المتغيرات المحلية والمصدرة​

الخطوات التي يجب اتباعها لكل مستخدم​

(ابدأ بـ Albert)

Commande B1.1 : ___________________________________________   # الاتصال باستخدام su - albert
Commande B1.2 : ___________________________________________ # إنشاء متغير محلي nom="Albert"
Commande B1.3 : ___________________________________________ # عرض المتغير
Commande B1.4 : ___________________________________________ # تشغيل شل فرعي باستخدام bash
Commande B1.5 : ___________________________________________ # التحقق مما إذا كان المتغير لا يزال مرئيًا
Commande B1.6 : ___________________________________________ # تصدير المتغير nom
Commande B1.7 : ___________________________________________ # تشغيل شل جديد
Commande B1.8 : ___________________________________________ # التحقق من أن المتغير مرئي في هذا الشل الفرعي
Commande B1.9 : ___________________________________________ # الخروج والعودة إلى eleve

كرر هذه الخطوات لـ Bernard (nom="Bernard"), Claude (nom="Claude") و Danielle (nom="Danielle").

النتيجة المتوقعة​

  • المتغيرات غير المصدرة تختفي في شل فرعي
  • المتغيرات المصدرة تستمر في شل فرعي
  • كل مستخدم لا يمكنه الوصول إلا إلى متغيراته الخاصة

السيناريو 2 – المتغيرات الدائمة عبر .bashrc​

الخطوات التي يجب اتباعها (مثال مع Claude)​

Commande B2.1 : ___________________________________________   # الاتصال باستخدام su - claude
Commande B2.2 : ___________________________________________ # فتح الملف ~/.bashrc
Commande B2.3 : ___________________________________________ # إضافة export PROJET_CLAUDE="Projet Système"
Commande B2.4 : ___________________________________________ # إعادة تحميل ~/.bashrc باستخدام source
Commande B2.5 : ___________________________________________ # التحقق من أن المتغير محدد بشكل صحيح
Commande B2.6 : ___________________________________________ # إغلاق الجلسة وإعادة الاتصال لاختبار الاستدامة
Commande B2.7 : ___________________________________________ # إعادة تنفيذ echo $PROJET_CLAUDE

كرر نفس العملية مع:

  • PROJET_ALBERT="TP Sécurité" لـ Albert
  • PROJET_BERNARD="TP Scripts" لـ Bernard
  • PROJET_DANIELLE="TP Admin" لـ Danielle

النتيجة المتوقعة​

  • كل مستخدم يمتلك متغيرًا دائمًا مرئيًا عند الاتصال
  • هذه المتغيرات مرئية فقط لمستخدمها
  • الأمر echo $PROJET_X يعيد القيمة الصحيحة بعد إعادة التشغيل

أسئلة التأمل لكتابتها في تقريرك​

1. ما الفرق الذي تلاحظه بين متغير مصدر في الطرفية ومتغير مضاف في .bashrc؟
...............................................................................................................................

2. هل يمكن لـ Bernard الوصول إلى متغير محدد بواسطة Albert؟ لماذا؟
...............................................................................................................................

3. ما الطريقة التي ستستخدمها إذا كنت تريد مشاركة متغير واحد بين جميع المستخدمين؟ (تلميح: /etc/profile)
...............................................................................................................................

4. هل يمكن حذف متغير مصدر؟ كيف؟
...............................................................................................................................

5. ما الذي يجب الانتباه إليه عند تعديل .bashrc؟ أعط مثالًا على خطأ محتمل.
...............................................................................................................................


الجزء 10 – نطاق المتغيرات بين المستخدمين​

السياق​

ستقوم باختبار ما إذا كان المتغير المحدد (محلي أو مصدر) بواسطة Albert يمكن الوصول إليه من قبل المستخدمين الآخرين (Bernard, Claude, Danielle).
سيمكنك ذلك من فهم حدود نطاق المتغيرات في نظام لينكس متعدد المستخدمين.

الأهداف​

  • تحديد متغير مصدر مع مستخدم
  • الاتصال بمستخدم آخر
  • اختبار نطاق المتغير
  • فهم لماذا هو غير مرئي
  • العثور على الطريقة الصحيحة لجعله مرئيًا للجميع

الخطوات التي يجب اتباعها​

Commande B1.1 : ___________________________________________   # الاتصال باستخدام su - albert
Commande B1.2 : ___________________________________________ # إنشاء متغير ville=Montreal
Commande B1.3 : ___________________________________________ # تصدير المتغير ville
Commande B1.4 : ___________________________________________ # التحقق من أنه مصدر بشكل صحيح (echo $ville)
Commande B1.5 : ___________________________________________ # الخروج من جلسة albert (exit)
Commande B1.6 : ___________________________________________ # الاتصال باستخدام su - bernard
Commande B1.7 : ___________________________________________ # محاولة عرض المتغير $ville

النتيجة المتوقعة​

  • المتغير ville موجود فقط لـ Albert، حتى لو تم تصديره
  • بالنسبة لـ Bernard (أو أي مستخدم آخر)، المتغير غير مرئي

سؤال لكتابته في تقريرك​

1. لماذا المتغير المصدر بواسطة Albert غير مرئي لـ Bernard؟
...............................................................................................................................

2. كيف يمكن جعل المتغير متاحًا لجميع المستخدمين تلقائيًا؟
(تلميح: أين يجب كتابة export ville=Montreal ليتم تحميله لجميع المستخدمين؟)
...............................................................................................................................

امتداد اختياري (مكافأة متقدمة – نقطتان إضافيتان)​

ابحث عن طريقة لتحديد متغير مشترك بين جميع المستخدمين، دون الحاجة إلى إعادة تعريفه لكل منهم.
حدد الملف النظامي الذي يجب تعديله وقم بإجراء عرض توضيحي مع Albert, Bernard أو Danielle.

جدول ملخص – نطاق المتغيرات في نظام لينكس​

الموقع / الطريقةمرئي للمستخدم الحالي؟مرئي في شل فرعي؟مرئي للمستخدمين الآخرين؟يستمر بعد إغلاق الجلسة؟
ville=Montreal✅❌❌❌
export ville=Montreal✅✅❌❌
إضافة في ~/.bashrc✅✅❌✅ (لهذا المستخدم فقط)
إضافة في /etc/profile أو /etc/environment✅ للجميع✅ للجميع✅✅

الخاتمة لإدراجها في التقرير​

  • المتغير المحدد في الطرفية هو محلي للشل الحالي. صح أم خطأ؟
  • المتغير المصدر هو قابل للتوريث من قبل الشل الفرعية، ولكن أبدًا من قبل المستخدمين الآخرين. صح أم خطأ؟
  • لجعل المتغير دائمًا، يجب وضعه في ملف مثل .bashrc. صح أم خطأ؟
  • لجعله متاحًا لجميع المستخدمين، يجب تسجيله في ملف نظام مشترك مثل /etc/profile، بحذر (تتطلب حقوق root). صح أم خطأ؟

الجزء الإضافي – أسئلة التأمل الإضافية​

1. ما الفرق بين chmod a+x و chmod 755؟
...............................................................................................................................

2. لماذا تقيد حقوق التنفيذ لبعض المستخدمين؟
...............................................................................................................................

3. ماذا يحدث إذا كان الملف يحتوي على حقوق 777 في بيئة حساسة؟
...............................................................................................................................

4. ما فائدة sticky bit في دليل مثل /tmp؟
...............................................................................................................................

5. كيف يمكن تجنب أن يصبح المستخدم مالكًا لملف حرج عن طريق الخطأ؟
...............................................................................................................................


تم إنشاء التمرين في: ديسمبر 2024