المقدمة
الـ Linux Administration بيختص بإدارة وتشغيل نظام التشغيل Linux. النظام ده يعتبر من أكتر الأنظمة قوة ومرونة وكمان مفتوح المصدر، يعني أي حد يقدر يطوره ويعدل فيه.
في شغل الـ Linux Admin، بتكون مسئول عن تشغيل السيرفرات وحمايتها، إدارة المستخدمين والصلاحيات بتاعتهم، وكمان متابعة الأداء بتاع النظام وتحديثه بانتظام. بتتعامل مع حاجات زي إعداد الشبكات، إدارة قواعد البيانات، تشغيل التطبيقات، وأتمتة العمليات باستخدام السكربتات.
وفي السلسلة دي هشارك معاكوا بعض الملحوظات والـ Notes المرتبطة بالـ Linux Administration.
Security Enhanced Linux
عندنا نوعين وهم الـ DAC والـ MAC:
الـ DAC : Discretionary Access Control ودي بيكون فيها ال Basic وال Special Permission وال ACL
الـ MAC : Mandatory Access Control ودي بيكون تحتها ال selinux
Object | subject |
---|---|
Files | Users |
Directory | Process |
Network | Services |
Label | Label |
فلما يجي user يعمل access ع ال fileents مثلا فلازم ال label ال في ال subject يساوي ال label ال في ال object
Selinux Components
1- الـ label او context
لو عاوز اعرض ال label بتاع كل ال file و dir
[root@mostafa ~] ls -lz
bashلو عاوز اشوف ال label بتاع ال user او id -Z
[root@mostafa ~] id
bashلو عاوز اعرض ال contest او ال label بتاع ال process
[root@mostafa ~] ps -z
bash2- تاني حاجه من ال Components هي ال modes وفي 3 mode
enforcing | permissive | Disable |
---|---|---|
دي حاله ال Enable | دا بيكون Disable بي بيبعتلك logs مثلا مين كان بيحاول يعمل أي | هنا Disable بس مش هيبعتلك logs |
ازاي اعمل Switch بينهم ؟
لو هحول من ال enforcing ل permissive مش لازم تعمل reboot لان ال context او label موجوده زي ما هي
لكن لو هتحول من enforcing ل Disable لازم تعمل reboot لان انت محتاج توقف عمل ال label من علي كل ال subject وال object الموجودة علي ال system
[root@mostafa ~] getenforce
bashبيعرض ال mode ال انا شغال بيه حاليا
[root@mostafa ~] sestatus
bashبعرض معلومات اكتر عن ال mode
[root@mostafa ~] setenforce 0
bashبحول من ال enforce الي ال permissive
بس لو عملت reboot هيرجع لل enforce تاني لانه هيرجع لل mode الموجود في ال config file
فلو عاوز تحول بينهم بشكل دائم هيكون من ال config file ال موجود ف المسار دا
[root@mostafa ~] vim /etc/selinux/config
bash3- تالت حاجه من ال Components هي ال Boolean
[root@mostafa ~] semanage boolean -l
bashهعمل list بكل ال Boolean والحالة بتاعتها
[root@mostafa ~] setsebool zabbix_run_sudo on
bashهنا بعمل on لل Zabbix لكن لو عملت reboot هترجع off لازم اضع قبلها ال -P زي الامر ال تحت كدا
[root@mostafa ~] setsebool -P zabbix_run_sudo on
bashكدا هعمله on بشكل دائم
[root@mostafa ~] getsebool -a
bashهيعرضلي كل ال Boolean ال موجودة
[root@mostafa ~] semanage fcontext -l
bashبيعرضلي كل ال label بتاع system كله
لو عاوز اغير ال label او contest ودا سببها اني بيكون مثلا في fiels ف أماكن عاوز حاجات تاني تقدر تعمل access هنا بنغير ال type
[root@mostafa ~] semanage fcontext -a -t httpd_sys_context_t ‘/var/www/html(/.*)?’
bashالامر دا بيغيرلي ال type بتاع المسار /var/www/html بكل ال تحته لل type ال اسمه httpd_sys_content_t
[root@mostafa ~] ls -lz /var/www/html/
bashاو عن طرق الامر دا
[root@mostafa ~] cat /var/log/audit/audit.log | grep avc
bashدا مسار ال log بتاع ال selinux
[root@mostafa ~] cat /var/log/messages | grep sealert
bashودي اده اسمها sealert بيكون فيها logs برضو
Manage Basic Storage
MBR : Master Boot Record | GPT : Guid Partition Table |
---|---|
بيديني 4 primary partition باخد اول 3 pri والأخر بيكزن logical اقسمه لحد 15 | بيديني لحد 128 primary partition |
اقصي حجم لل partition بيكون 2T | اقصي حجم بيكون 8 اكسابايت |
بيشتغل مع ال 32bit | مع ال 32bit-64bit |
No backup partioton table | يوجد backup لل partition table |
Support BIOS | Support BIOS-UEFI |
الـ Mbr
الـ GPT
أنواع ال disks في ال Linux
nvme | ssd | hdd |
---|---|---|
nvme | sda | had |
كل ال devices دي موجودة تحت ال /dev/
[root@mostafa ~] lsblk
bashبعمل list بال disks وال partition الموجودة عندي
لو عندي disk جديد وعاوز ابدا استخدمه (هنا بعمله عن طريق ال gdisk)
دي كل ال options الموجودة في ال gdisk
الـ n بعمل create ل partitions جديد
لو عاوز احوله ل swap بضغط t ثم 82
بضغط w عشان احفظ ال عملته
[root@mostafa ~] mkfs.
bashبكتب mkfs. واضغط tap عشان اعرض كل ال file system ال عندي
[root@mostafa ~] mkfs.xfs /dev/nvme0n2p2
bashكدا عملت format لل partition ال اسمه /nvme0n2p2 بال xfs وبقا جاهز لل mount
[root@mostafa ~] mount /dev/nvme0n2p2 /disk1
bashبعمل mount لل par ال اسمه nvme0n2p2 تحت ال dir ال اسمه /disk1
بس كدا ال mount بشكل temp هيطير لو عملت reboot لازم اعمله في ال config file
Super Block | Journal Block | Data Block |
---|---|---|
دي ال متخزن عليه معلومات ال File system | دي بيتخزن فيها ال log بتاع ال disk | دي ال بيتخزن فيها الداتا ال انت بتكتبها |
[root@mostafa ~] df -h
bashبيعرض list بال partition ال معمولها mount واقدر استخدمها ومكان ال mount بتاعها
لو عاوز اعمل mount بشكل permanent بشكل أساسي عشان لو حصل reboot لازم تعمل reboot يبقي لازم عن طريق ال config file الموجود في المسار دا
[root@mostafa ~] vim /etc/fstab
bash[root@mostafa ~] mount -a
bashالـ mount -a الامر داب يعمل mount لل configfile من الأول عشان لو فيه أي تعديل يعملها

دا ال fstab ال config file
بعمل partition عن طريق parted
بعمل new partition
لو عاوز اعمل resize بال parted
[root@mostafa ~] free -h
bashبيجبلي list بال RAM-Swap
[root@mostafa ~] mkswap /dev/nvme0n2p1
bashبعمل format لل partition دا بال swap
[root@mostafa ~] swapon /dev/nvme0n2p1
[root@mostafa ~] swapon -s
bashكدا بعملon لل partition يعني اقدر اشتغل عليه ومساحته تظهر معايا في ال swap
بس دا بشكل موقت لو عملت reboot هيطير لازم نعدل في ال config file ال هو ال fstab
[root@mostafa ~] vim /etc/fstab
bash[root@mostafa ~] mount -a
bash[root@mostafa ~] systemctl daemon-reload
bashبعد أي تعديل في ال fstab لازم تعمل ال mount -a او ال systemctl daemon-reload عشان يرجع ال system يعمل mount لل file من الأول فلو فيه أي تعديل هيظهر
[root@mostafa ~] top
bashاقدر اشوف ال swap عن طريق امر top
[root@mostafa ~] partprobe /dev/nvme0n2
bashهنا بقوله في تعديل حصل ع ال partition دا فبيبعت signal لل kernel فيعرف التعديل فاول م تعمل امر lsblk بيجبلك التعديلات ال تمت
[root@mostafa ~] udevadm settle
bashدا الامر الجديد البديل للامر partprobe
Discussion