/Permissions & ACL – II

Permissions & ACL – II

الحمد لله و كفى و صلاة و سلاما على عباده الذين اصطفى لا سيما عبده المصطفى وعلى آله المستكملين الشرفاء
نكمل مع بعضنا ما بدأنا به المقال السابق Permissions هذه المرة سنغوص بتعمق قليلا من ناحية الأوامر أكثر منه نظرى

chmod u=rw /home/dos/file1.txt
chmod g=rx /home/dos/file1.tx
chmod o=r /home/dos/file1.txt

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

الأولى

chmod u=rw,g=rx,o=r /home/dos/file1.txt

كما هو واضح أن اجعلهم فى نفس السطر و أفصل بينهم بـ “،

1

الثانية

فلنفترض أن owner لديه بالفعل صلاحية rw و كل ما أريده أن أضيف له صلاحية x و لا أريد أن أصيغ كل الصلاحيات من  جديد و أيضا أريد أن أنزع صلاحية r من group بدون أن أعيد الصياغة و فى خطوة واحدة

chmod u x,g-r /home/dos/file1.txt

2

الثالثة

فى حالة إضافة أو نزع نفس الصلاحيات للثلاثة u,g,o فى نفس الخطوة

chmod a x /home/dos/file1.txt

وللحذف

chmod a-x /home/dos/file1.txt

3

الرابعة

و هى التى تحتاج إلى تركيز أكثر

نظرية الاحتمالات : ما هو احتمال أن يكون owner له صلاحية r على ملف ؟
بالظبط نصف، فإما أن متلكها أو لا يمتكلها إذن كيف نمثل هذه المعادلة ؟!
إذا امتلك الصلاحية نشير إليها بالرقم 1 و إذا لم يمتلكها نشير بالرقم 0 و يكأنه مصباح كهربى نوقده و نطفئه

بتكرار هذه الفكرة مع الجميع يصير لدينا هذا الجدول البسيط

r       w       x       

u    1/0    1/0    1/0

g    1/0    1/0    1/0

o    1/0    1/0    1/0

لذا إن كان owner لديه صلاحية r-x فيمكن تمثيل هذا بشكل 101 و إذا افترضنا ان group لديه -rw فيمكن تمثيلها 110 و ليكن other لديهم فسيكون التمثيل 000

كتابة الأرقام على هيئة أصفار و وحايد تسمى binary numbers و كتابة الأرقام بشكل عادى – الطبيعيى – يسمى decimal numbers

و توجد طريقة معروفة للتحويل بينهم تتبع هذه القاعدة

حيث يتم تمثيل كل خانة من الأرقام binary بالعدد 2 بأس يعبر عن best online casino ترتيبه فى التسلسل مثال :

0^2    1^2    2^2    3^2   …

وليكن لدينا رقم binary نريد تحويل للشكل الطبيعى و نفترض أن الرقم هو 1011

2^3    2^2    2^1    2^0
 1        0       1        1

 11   = 8 0 2 1 = (3^2 * 1) (2^2 * 0) (1^2 * 1) (0^2 * 1)

so the decimal number 11 is equivalent to the binary number 1011

فلنطبق هذه القاعدة على كلام قلنا أن

u = r-x = 101
g = rw- = 110
o = — = 000
for 101
2^2    2^1   2^0
 1        0       1
(2^2 * 1) (2^1 * 0) (2^0 * 1) = 4 0 1 = 5
so 101 will be 5
and go on
so 110 will be 6
so 000 will be 0
we can write it as
u = 5
g = 6
o = 0

أي أن الرقم النهائى عند الترتيب فى سطر واحد سيكون 560 و نكتب الأمر بهذا الشكل

chmod 560 /home/dos/file1.txt

4

و للتحويل المباشر و السريع بدون حسابات ممكن من خلال هذا الرابط
http://www.binaryhexconverter.com/binary-to-decimal-converter

هذه من أشهر الطرق لصياغة الصلاحيات عن طريق الأوامر

يتبقى لنا معرفة الطرق الأخرى لصياغة ownership

تعلمنا فى الماضى
chown ahmad:admins /home/dos/file1.txt
هذا لتغير user&group ownership فى خطوة واحدة… ولكن ماذا إذا أردت أن أغير واحد منهما فقط ؟!
يكفى أن أجعل مكان الذى لا أريده فارغا فمثلا إذا أردت تغيير user ownership و الإبقاء على group ownership كماهى
chown ahmad /home/dos/file1.txt
و العكس بالعكس لتغيير group ownership فقط

chown :admins /home/dos/file1.txt

او بإستخدام أمر آخر و هو

chgrp admins /home/dos/file1.txt

5

آخر نقطة فى هذه الجزئية …ماذا لو أن اليوزر و الجروب واحد ؟! بمعنى كما أسلفنا الذكر أنه بمجرد أن تنشئ يوزر جديد يتم إنشاء بشكل تلقائى جروب جديدة بنفس الاسم،و أنا أريد أن أغير الملكية لهما فى نفس الوقت

توجد طريقتين :
– القديمة

chown ahmad:ahmad /home/dos/file1.txt

– والأخرى

chown ahmad: /home/dos/file1.txt

6

و يتبقى لنا فى هذه الجولة 😀 ما يسمى special permissions & ACL و بعض التطبيقات العملية لما ناقشناه فى هذا المقال و السابق نبدأ بهم فى المرة القادمة بحول الله و قوته ^_^