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

الفصل 3.5 - أذونات الملفات

أهداف التعلم​

في نهاية هذا الفصل، ستكون قادرًا على:

  • فهم نظام الأذونات في لينكس
  • قراءة وتفسير الأذونات
  • تعديل الأذونات باستخدام chmod
  • تغيير المالك والمجموعة باستخدام chown

ما هي الأذونات؟​

تتحكم الأذونات في لينكس في من يمكنه قراءة أو كتابة أو تنفيذ ملف. إنه نظام أمان أساسي.

ثلاثة مستويات:

  • Owner (المالك): منشئ الملف
  • Group (المجموعة): المجموعة المالكة
  • Other (الآخرون): جميع المستخدمين الآخرين

أنواع الأذونات​

r (Read - قراءة)​

للملفات:

  • قراءة المحتوى
  • العرض باستخدام cat, less, إلخ.

للدلائل:

  • سرد المحتوى (ls)

w (Write - كتابة)​

للملفات:

  • تعديل المحتوى
  • الكتابة فوق الملف

للدلائل:

  • إنشاء ملفات
  • حذف ملفات

x (Execute - تنفيذ)​

للملفات:

  • تنفيذ كبرنامج
  • سكربتات، ثنائيات

للدلائل:

  • الوصول إلى الدليل (cd)
  • ضروري للتنقل

قراءة الأذونات​

التنسيق الطويل (ls -l)​

$ ls -l fichier.txt
-rwxr-xr-- 1 user group 1024 Jan 1 12:00 fichier.txt

التفصيل:

- rwx r-x r-- 1 user group 1024 Jan 1 12:00 fichier.txt
│ ││ ││ ││ │ │ │ │ │
│ ││ ││ ││ │ │ │ │ └─ الاسم
│ ││ ││ ││ │ │ │ └────── الحجم
│ ││ ││ ││ │ │ └──────────── المجموعة
│ ││ ││ ││ │ └───────────────── المالك
│ ││ ││ ││ └─────────────────── الروابط
│ ││ ││ │└────────────────────── الآخرون: r--
│ ││ ││ └─────────────────────── المجموعة: r-x
│ ││ │└────────────────────────── المالك: rwx
│ ││ └─────────────────────────── النوع: - (ملف)
│ └─────────────────────────────── النوع: d (دليل), l (رابط)

التنسيق الثماني​

# rwx = 111 (ثنائي) = 7 (عشري)
# r-x = 101 (ثنائي) = 5 (عشري)
# r-- = 100 (ثنائي) = 4 (عشري)

# مثال: rwxr-xr-- = 754

المطابقة:

  • r = 4
  • w = 2
  • x = 1
  • - = 0

أمثلة:

  • rwx = 4+2+1 = 7
  • r-x = 4+0+1 = 5
  • r-- = 4+0+0 = 4
  • --- = 0+0+0 = 0

تعديل الأذونات (chmod)​

الطريقة الرمزية​

# إضافة أذونات
chmod u+x fichier.txt # المالك: +x
chmod g+w fichier.txt # المجموعة: +w
chmod o+r fichier.txt # الآخرون: +r
chmod a+x fichier.txt # الجميع: +x

# إزالة أذونات
chmod u-x fichier.txt # المالك: -x
chmod g-w fichier.txt # المجموعة: -w

# تعيين أذونات
chmod u=rwx fichier.txt # المالك: rwx
chmod g=rx fichier.txt # المجموعة: r-x
chmod o=r fichier.txt # الآخرون: r--

# تركيبات
chmod u+x,g+w fichier.txt
chmod u=rwx,g=rx,o=r fichier.txt

الرموز:

  • u: المستخدم (المالك)
  • g: المجموعة
  • o: الآخرون
  • a: الجميع

المشغلون:

  • +: إضافة
  • -: إزالة
  • =: تعيين

الطريقة الثمانية​

# التنسيق: chmod ABC fichier
# A = المالك، B = المجموعة، C = الآخرون

chmod 755 fichier.txt # rwxr-xr-x
chmod 644 fichier.txt # rw-r--r--
chmod 600 fichier.txt # rw------- (خاص)
chmod 777 fichier.txt # rwxrwxrwx (جميع الحقوق)

# بشكل متكرر
chmod -R 755 repertoire/

الأذونات الشائعة:

  • 755: قابل للتنفيذ (سكربتات، برامج)
  • 644: ملفات عادية (قراءة/كتابة)
  • 600: ملفات خاصة (المالك فقط)
  • 700: دليل خاص

تغيير المالك والمجموعة (chown)​

chown​

# تغيير المالك
chown user fichier.txt

# تغيير المالك والمجموعة
chown user:group fichier.txt

# تغيير المجموعة فقط
chown :group fichier.txt
chgrp group fichier.txt

# بشكل متكرر
chown -R user:group repertoire/

أمثلة:

# إعطاء لـ user1
chown user1 fichier.txt

# إعطاء لـ user1، مجموعة users
chown user1:users fichier.txt

# بشكل متكرر على دليل
chown -R www-data:www-data /var/www/

الأذونات الخاصة​

SUID (Set User ID)​

التنفيذ بأذونات المالك:

chmod u+s fichier
# مثال: /usr/bin/passwd (s بدلاً من x)

SGID (Set Group ID)​

التنفيذ بأذونات المجموعة:

chmod g+s fichier

Sticky Bit​

يمنع الحذف من قبل الآخرين:

chmod +t repertoire/
# مثال: /tmp (t بدلاً من x)

القناع الافتراضي (umask)​

يحدد umask الأذونات الافتراضية للملفات الجديدة:

# عرض umask الحالي
umask

# تعيين umask
umask 022 # ملفات: 644، دلائل: 755
umask 002 # ملفات: 664، دلائل: 775

الحساب:

  • ملفات: 666 - umask
  • دلائل: 777 - umask

أمثلة عملية​

ملف خاص​

chmod 600 fichier.txt
# فقط المالك يمكنه القراءة/الكتابة

سكربت قابل للتنفيذ​

chmod 755 script.sh
# الجميع يمكنهم التنفيذ، المالك يمكنه التعديل

دليل مشترك​

mkdir shared
chmod 775 shared
chgrp developers shared
# مجموعة developers يمكنها القراءة/الكتابة

ملفات ويب​

chown -R www-data:www-data /var/www/html
chmod -R 755 /var/www/html
find /var/www/html -type f -exec chmod 644 {} \;
find /var/www/html -type d -exec chmod 755 {} \;

ملخص​

في هذا الفصل، تعلمت:

الأذونات: r (قراءة)، w (كتابة)، x (تنفيذ)
المستويات: المالك، المجموعة، الآخرون
القراءة: ls -l، التنسيق الرمزي والثماني
chmod: تعديل الأذونات (رمزي أو ثماني)
chown: تغيير المالك والمجموعة
الخاصة: SUID، SGID، Sticky Bit
umask: الأذونات الافتراضية


الخطوات التالية​

الفصل 3.6: البحث عن الملفات
الفصل 3.7: الروابط الرمزية والصلبة


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