linux admin i ii

251
ﺍﻻﻭﻟﻰ ﺍﻟﺒﺪﺍﻳﺔﻟﻴﻨﻜﺲ/ ﺟﻨﻮ

Upload: unclesam

Post on 26-Dec-2015

170 views

Category:

Documents


29 download

DESCRIPTION

Linux

TRANSCRIPT

Page 1: Linux Admin I II

البداية االولى جنو/لينكس

Page 2: Linux Admin I II

RHCSA/RHCE Egypt ®

المقدمة 1

صبحي طيبه دد. محم

المقدمة

إن الحمد هلل نحمده ونستعينه ونستغفره ونستهديه ونعوذ باهلل من شرور أنفسنا ومن سيئات اعمالنا من يهديه هللا فال

عبده ورسوله.ن محمدا أشهد أاال إله اال هللا وحده ال شريك له ومضل له ومن يضلل فال هادى له وأشهد

لقد وفقني هللا لهذا العمل وما كله الى ابتغاء مرضات هللا وتسهيال على طالب العلم في مجال المعلومات وهذا أما بعد:قط وأتمنى من الجميع الكتاب ما اال تجميعه لمجموعه من المعارف والكتب وما ابتغى من هذا الكتاب اال الدعاء ف

االستفادة منه. هذا الكتاب تم انشائه من التالي:

المهندس مصطفى حمودة تفيديوها Linuxcbtفيديوهات خاص بشركة ريد هات red hat administrator 1كتاب بشركة ريد هات خاص red hat administrator 2 كتاب كتاب اإلدارة المتقدمة لجنو/لينكس John_Wiley_Redhat_Linux_Networking_and_System_Administrationكتاب RHCSA_Hands-on.Guide.to.the.Red.Hat.Examsكتاب

.البدايةوبعض المراجع األخرى التي ال اذكرها والتي كنت استخدمها في

للجميع استفادةفي هذا العمل وأتمنى ان ينال رضا الجميع وان يكون مصدر ساعدنيواشكر كل من وجزاكم هللا خيرا

الكاتب محمد صبحى طيبه [email protected]

https://www.facebook.com/?q=#/tibea2004

Page 3: Linux Admin I II

RHCSA/RHCE Egypt ®

الفهرس 2

صبحي طيبه دد. محم

الفهرس

---------------------------------------------------------------------------------------------------------------(History)التاريخ

(6-----4) تاريخ لينكس (7-----6) أنظمة جنو/لينكس (9-----8) توزيعات جنو/لينكس -------------------------------------------------------------------------------------------------- (starting with login) البداية

(13---10) البداية األولى (13---16) (help)كيفية الحصول على المساعدة

---------------------------------------------------------------------------------------------------- (File System)نظام الملفات FHS (24---17) وكل ما يخصه من أوامر (25---29) (examine the file)التعامل مع محتوى الملف

------------------------------------------------------------------------------- (user & permission)المستخدمين والصالحيات (---30---) مقدمه /etc/passwd (34---31) و أدوات اعداد المستخدم (35---38) (group)الجروب (38---40) (permission)الصالحيات Umask (---41---) Special permission (42---43) Network user modules (Ldap – Nis) (43---47)

------------------------------------------------------------------------------------------- (linux management)إدارة الملفات Inode (48---49) Links (50---51) Search (51---53) Archiving and compression (53---55) (56---66) (string process manage)ادوات معالجة النصوص (66---74) (process management)إدارة العمليات Job schedule (crond – atd) (74---77) DF – DU (---78---)

------------------------------------------------------------------------------------------- (working with shell script)الشل Shell (79---82) Shell script (82---83) Return value (83---84) Shell variable (84---96) Standard I/O (96--100) (100-103) (scripting)الجمل الشرطية

--------------------------------------------------------------------------------------------- (storage drive)الوسائط التخزينية (106-104) مقدمه Partitioning (106-112) File system (112-114) Mount (114-116) Secure erase (116-118) Swap (118-120) Logical volume management (120-126) RAID (126-130) QUOTA (130-132) ACL (132-134) F.S management (134-135) Autofs (135-137)

Page 4: Linux Admin I II

RHCSA/RHCE Egypt ®

الفهرس 3

صبحي طيبه دد. محم

------------------------------------------------------------------------------------ (red hat installation)تركيب نظام التشغيل (141-138) مقدمه Basic install (141-146) Network install (kickstart) (146-152) Hardware device and (proc – sys) (152-164)

-------------------------------------------------------------------------------------- (package installation)تثبيت التطبيقات (166-165) مقدمه RPM (166-174) YUM + REPO (174-179)

------------------------------------------------------------------------------ (BOOT SEQUANCE)كيفية عمل نظام التشغيل (---180--) مقدمه Grub (181-186) Init (187-191) Service (192-198) Kernel (update – install) (198-204)

System admin tool (أدوات مدير النظام)-------------------------------------------------------------------------------------- (205-213) (cups)الطابعه Rsyslog (213-218) (218-226) (Luks – attr)التشفير --------------------------------------------------------------------------------------------------------------networksالشبكات network management (227-238)اعداد الشبكة network utilities (239-242)أدوات الشبكة NFS (243-245) SSH-NTP (--246---) Selinux (--247---)

------------------------------------------------------------Exams sample----------------------------------------------------

Page 5: Linux Admin I II

RHCSA/RHCE Egypt ®

تاريخ لينكس 4

صبحي طيبه دد. محم

ستاريخ لينك

وكان ذلك في مختبرات بيل في الواليات المتحدة –مما يجعله ذو تاريخ يتعدى األربعين عاما – 1969عام بدأ يونكس في

(Bell telephone labs) التابعة لشركة AT&T .نحدرت أنظمة يونكس من مشروع سمي ااألمريكية MULTICS ، كان قد تم تصميمه BLT حاسوبا كبيرا يدعم آالف المستخدمين في نفس الوقت، وكان يعمل على المشروع حينها مختبراتنظام تشغيل يمكن أن يجعل إلنشاء

كن المشروع فشل ألن طموحه كان أل .MIT وجامعة ماساشوستس General Electricsوشركة في ذلك الوقت. تكبر من اإلمكانيا

كين تومسون، دينيس ريتشي،، وهما MULTICS على مشروعكانا يعمالن BTL المشروع، وجد مهندسان منعندما تم إهمال ) loading program( وبرنامج إقالع بسيط (compiler) تخدمه، ولم يكن عليه سوى مجمع لم يكن أحد يس DEC PDP7 نوعحاسوبا من

والنواة األولية لنظام التشغيل. (للغة اآللة)، البا في أوقات فراغهما)، ومجمع من يونكس كاختبار (غا أجزاءريتشي وطور تومسون

و مجلدات أ أدلة مة في نظامبطريقة منظ تخزنهيقة تسمح للملفات أن هذه النواة، بطرفي نفس العام، فكر تومسون بعمل نظام ملفات لنضمام التقدم في تصميم النظام وا ام فقط. معلشهرين، تم تنفيذ النظام خالل بضعة أي التي امتدت متفرعة. بعد العديد من المناظرات النظرية

واحد جديد (كان يكلف حينها حوالي مئة روا بطلبع، صار الجهاز األصلي صغيرا جدا على النظام، وفك المزيد من المهندسين إلى المشرونهم إي وقت الفراغ)، فقالوا كان يتم تطوير نظام يونكس ف . كان عليهم اختالق عذر (حيثضخما) ألف دوالر أمريكية، مما يجعله استثمارا

.PDP11 ولهذا أعطوا موافقة لشراء جهاز أرباحا في ذلك الوقت)، إنشاء محرر نصوص جديد (وهو من البرامج التي كانت تدرة يريدون

فصمم عندما وصل الجهاز، أعطوا فقط المعالج والذاكرة، ولم يعطوا القرص أو نظام التشغيل. لم يقدر تومسون على االنتظار،تصميمه. عندما وصل واستخدم نصف الذاكرة كقرص والنصف اآلخر لنظام التشغيل الذي كان يعمل على، RAM قرصا في الذاكرة

نجح برنامج معالجة النصوص وا العمل على نظام يونكس وعلى برنامج معالجة النصوص الموعود (الذي استخدموه كعذر).القرص، أكملالنسخة األولية استخدام BTLمختبرات ). بدأتman-page استخدمت الحقا إلنشاء دليل استخدام يونكس المسمىلغة محررة ،Troff (وكان

يونكس. لنظاماألول المستخدم BTL من يونكس مع محرر النصوص الجديد، مما جعل

في ذلك الوقت، بدأت طالئع فلسفة يونكس بالبزوغ: به كما يجب. كتابة برامج تفعل شيئا واحدا، وتقوم ا.كتابة برامج لتعمل سوي .برامج للتعامل مع السالسل النصية كتابة

والذي تعديلوالذي تم فيه وبسبب وجود مستخدمين من خارج المعمل، دعت الحاجة لوجود دليل مبرمجي ،1971في نوفمبر رقم إصدار دليل االستخدام ليتوافق مع (والذي تم فيه تعديل 2Vبم والمعروف )1972. في اإلصدار الثاني (يونيو ريتشي وتومسون صممه

V5الرقم باالرتفاع إلى أن وصل خمسين تثبيتا في اإلصدار رقم إصدار يونكس) قيل بأن عدد مرات تثبيت يونكس وصلت إلى عشرة، واستمر

تكنولوجيا المعلومات عرض النتائج في مؤتمر عن أنظمة التشغيل. وكنتيجة لذلك، طلب عدد من مراكز تقرر ،1973في نهاية عام مستخدمي يونكس ومشاركة دلى وجوب توح ى إأو دعما ومتابعة ليونكس، مما أد صيانة AT&T. لم توفر والجامعات نسخا من يونكس

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

س. ترخيص يونك الجامعات التي حصلت على من –وهي المكان الذي درس فيه تومسون –لقد كانت جامعة كاليفورنيا في بيركلي

وهما تشاك هيلي حديثا التخرج س وأحضر معه أحدث إصدار يونكس. انضم إليه طالبانعاد تومسون إلى بيركلي كمدر ،1975وفي عام .وعملوا معا على تنفيذ يونكس)، sun Microsystem (والذي كان نائب رئيس شركة وبيل جوي

، Viالى ان تم تحويله الى Exجوي بإنشاء محرر نصوص جيدة أطلق عليه اسم منها؛ قامكانت المحررات من األمور التي استاؤوا جيد على هذا اإلصدار من ا للغة جافا أضافاه إلى يونكس. كان هناك طلبمصنف االثنان ر نصوص مرئي ملء الشاشة. وقد طوروهو محر

الفصل

التاريخLinux

History

Page 6: Linux Admin I II

RHCSA/RHCE Egypt ®

تاريخ لينكس 5

صبحي طيبه دد. محم

. BSDبرمجيات بيركلي يعهكتوزكس، وبدأ جوي يصدره يون

لمستخدمون ا يع في ذلك الوقت. لهذا أصبحنه يتناسب مع تكلفة النسخ والتوزثمنه: قيل بأ ترخيص معينة مقابلحينها BSDكان ل .BSDاإلصدار الجديد من تعديالت إلىة معينة كانت تضاف هذه ال، ويبيعون نسخهم المعدلة، وبعد مد ويضيفون مزايايعملون تعديالتهم،

وفي ذلك فقط PDPكان من الممكن تشغيله على أجهزة ،1977يات مختلفة. حتى عام التالية تطويعه للعمل على معماركانت الخطوة

أول إصدار 1979عام V7كان اصدار يونكس Interdataو IBM ك ة في ذلك الوقتل على األجهزة المتوفر يع البرنامج للعمالعام تم تطو 400لقد حوى دليل االستخدام في ذلك الوقت awk, lint, make, uucp مة، فقد حوىاإلصدار عددا من المزايا المتقد وفر هذا محمول.

دة والذي أنشئ إلعا BTLكيرنيغان وريتشي في معامل صممهالذي cلغة فصفحة. لقد حوى أيضا مصر 400 صفحة، مع ملحقين كلة منهمااء المعتمدة فقط على المعمارية مكتوبة بقاء األجز مع Cثم نقله إلى لغة من لغة المجمع كتابة معظم أجزاء يونكس. لقد تم بناؤه في البداية

.cpio، find، expr وأوامر مثل (BOURNE SHELL) نةمحس ع. لقد تم أيضا إضافة صدفةبالمجم –مايكروسوفت المشترك بين Xenix إصدارات وأنواع مختلفة من يونكس تظهر: كنظاملقد بدأت صناعة يونكس بالنمو، وبدأت

BSD جديدة من وإصدارات Intel 8086ها ألجهزةوالذي كان موج SCO وشركة – والتي عملت في أيامها األولى على إصدارات يونكسدريسه في متاحا برخصة تمنع ت V7م، فأضحى اإلصدارة قي أن يونكس نظام تجاري AT&T رغم هذا، فقد ظهرت مشكلة جديدة عندما أدركت

تستخدم المصدر البرمجي لنظام يونكس العديد من الجامعات حتى ذلك الوقت ت. كانالتجارية المؤسسات التعليمية وذلك لحماية أسراره سون الجانب النظري فقط.مكنهم توقفوا عن ذلك وصاروا يدر لتدريس أنظمة التشغيل، ل

كاتب مرموق وهو –أندرو تانيبوم قرر –عاصمة هولندا –أمستردام هذه المشكلة. ففي تمكن البعض من إيجاد طريقة لحل لكن وسمى AT&T اكوادبرمجي من أن يكتب نظام تشغيل جديدا متوافقا مع يونكس دون استخدام أية سطر –ية عن أنظمة التشغيل لكتب نظر

فنلندية إلنشاء إصدار خاص به من يونكس أسماه لينكس. ، طالب 1991النظام في ما بعد، وتحديدا عام وقد استخدم هذا Minixذلك

أن ينتقل - ) 4.1في بيركلي (والذي كان قد وصل إلى اإلصدار BSD ر نظامالذي ما برح يطو –قرر بيل جوي وفي ذلك الوقت، فيما بعد إلنشاء نظام يونكس الخاص الذي عدل, BSD 4.2فيها العمل على والتي أنهى SUN Microsystems إلى شركة جديدة اسمها

فقد طورت :بهاالحين بتطوير نظام يونكس الخاص ذلك. بدأت كلة شركة منذ 1983وذلك قرابة عام SunOS والذي سمي ، SUNبشركةIBM نظامAIX وشركة DEC طورت Ultrix وHP، طورت HPUX، وكل من مايكروسوفت وSECO طورتا Xenix إلخ. منذ عاموالذي "UNIX System V " إصدارا أخيرا أسمته "نظام يونكس الخامس AT&T أطلقت يةالذي بدأ فيه يونكس كمغامرة تجارو ،1980

نتيجة هذه اإلصدارات األخيرة أنه قد تم كانت BSD 4.x كلة أنظمة يونكس الحديثة إما عليه أو علىوقد بنيت SV3 يشار إليه اختصارام فيما بعد وضع معايير ألنظمة يونكس لجعلها متناغمة مع بعضها، من ث .تقريباتعديل أنظمة يونكس المختلفة لتصير متوافقة مع بعضها

وغيرها. FHSو UNIX97و IEEE POSIX ضمنها معايير رنيا. معظم أنظمة كاليفو جامعة من BSDو AT&Tمن System V ان أهمهانظام يونكس إلى فروع عديدة مع الوقت، ك لقد تفرع

على أحدهما أو مزيج من االثنين. يونكس الحالية مبنية

لم تكن إن –الرائدة تتعلق باحتكار الهاتف (حيث كانت شبكة الهاتف الوقت تحت طائلة قضايا قانونية في ذلك AT&T كن كانتل أدى بحقوق يونكس بالترنح بين المتحدة األمريكية)، مما أجبرها على االنقسام إلى عدد من الشركات األصغر، ممافي الواليات –الوحيدة

جامعة بيركلي على نسخ والتي قاضت USL سميت الحقا التي UIو OSF كانت الحقوق مشتركة مناصفة بين 1990ك: ففي عام المال BSD .ركة يونكس. بعد ذلك بيعت حقوق يونكس لش كية متعلقة بأكوادن الرخصة األصلية أية حقوق ملحيث لم تتضم التي لديها لكنها خسرت

بحقوق SCOو OSFو األجزاء، حيث طالبت كل من نوفل واآلن ال يبدو واضحا من يملك هذه SCO نوفل التي تنازلت عن جزء منها إلى كيتها في عدد من المواجهات.مل

Page 7: Linux Admin I II

RHCSA/RHCE Egypt ®

أنظمة جنو/لينكس 6

صبحي طيبه دد. محم

نرى كيف تتطور هذه القضية، وكذلك كيف تتطور قضية ملكية يونكس معها.علينا أن

) 1999و 1995حيث صار هذا النظام (بين عامي ،1991يو الحالي ليونكس تغير كثيرا منذ ظهور لينكس عام السينار مة ألنظ بديال حقيقياستمر مه. يوالشركات التي تساهم في تقد القوي للمجتمع العالميكثرة منصات العتاد التي يدعمها، والدعم يونكس المملوكة، وذلك نتيجة ل

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

أنظمة جنو/لينكس

يسيطر Microsoft DOS لم يكن لدى مستخدمي الحواسيب الشخصية األولى قبل عشرين عاما خيارات عديدة ألنظمة التشغيل. لقد كان نظام

الخيارات. وقد كان باهظا مقارنة ببقية . بينما كان نظام ماك من شركة أبل من الخيارات، لمكن ثمنه كانالحواسيب الشخصية على سوق لألجهزة الضخمة والمكلفة. خيارات األخرى التي كانت متوفرةيونكس من ال

، حيث أراد أن تعليمية والذي طوره أندرو تانيبوم من الصفر الستخدامه ألغراض – 1984 عام-ظهورا الخياراتأول من Minixكان

يقة تصميم وتنفيذ أنظمة التشغيل.يستخدمه لتعليم طراألساس الوقت، حيث كانت التي كانت منتشرة بكثرة في ذلك Intel 8086هو العمل على أجهزة Minix كان التصور الذي بني عليه نظام لقد

عشر ألف سطر برمجية اثناكان متاحا للجميع ( لهذا النظام برزت من مصدره البرمجي الذي الميزة األساسية . IBM من للحواسيب الشخصية مما أكثر مما كان نظاما كفؤا مص لكنه كان أداة تعليمية التشغيل, المختصة بأنظمة توفرة في كتب تانيبوم التعليمية وم) Cبلغة التجميع ولغة

.واألنشطة العملية لألداء

على إنتاج برمجيات العديد من المبرمجين للتشجيع –التابع لها GNUعبر مشروع FSF ، شجعت مؤسسة البرمجيات الحرة وفي التسعيناتوالتي كانت HURD تشغيل تدعى . وبجانب العمل على برمجة األدوات، فقد كان المشروع يعمل على برمجة نواة نظامجيدة وتوزيعها بحرية

سنوات لتصير جاهزة. بحاجة لعدة

اة نظام تشغيل كتبه بنفسه، نو من 0.0.1اإلصدارلندي اسمه لينوس تورفالدز عرض طالب فن ،1991وفي ذلك الوقت، وتحديدا في أكتوبر عام GPL مجتمعات المبرمجين ومجتمع اإلنترنت تحت رخصة وقدمه لينوس إلى Intel 386 ما ألجهزةوسماه لينكس. كان لينكس مصم

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

Page 8: Linux Admin I II

RHCSA/RHCE Egypt ®

أنظمة جنو/لينكس 7

صبحي طيبه دد. محم

زالت موجودة حتى من المزايا التي تميز بها لينكس عن أنظمة التشغيل األخرى في ذلك الوقت، والتي ورث بعضها من يونكس، والتي ما آلن:ا

جديدة يمكن إلى مصادره البرمجية، وتعديلها، وعمل إصدارات يمكن ألي كان الوصول نظام تشغيل مفتوح المصدر: لينكس-1 ا بالفعل. مما يجعله نظاما حر GPL نشرها تحت رخص

ك، نظام نتيجة لذل معين،ية جهاز صمم كي ال يعتمد كثيرا على معمارلينكس (كنظام يونكس األصلية) م (قابلية النقل): المحمولية -2هناك أجزاء ممكنا. GNUمن GCC مثل C فمصر لها ه، مما يجعل نقله إلى أية معمارية لينكس مستقل عن الجهاز الهدف الذي سيعمل عليجديدة. عمارية ألية ملى جهاز معينة، والتي يتوجب إعادة كتابتها عند النقل األجهزة التي تعتمد ع بسيطة بلغة التجميع، ومعرفات لعدد بسيط من

من x86-64و x86 -من انتل IA86و x86 يات:تي تعمل على أكبر عدد من المعمارنظام جنو/لينكس من أنظمة التشغيل ال بفضل هذا،AMD – سبارك منsun – MIPS منSilicon - PowerPC الذي استخدمته أبل - IBM S390 - ألفا من كومباك - m68k - من

......... موتوروالفي مهامها اة في قطعة واحدة، ولكنها مجزأة تصوري التصميم األساسية للنواة يجمع كلة ما هو أساسي :Monolithic أحادية نواة-3

الخدمات والتي تعمل فيها مثل ماك. Microkernel رةى في أنظمة التشغيل، مدرسة األنوية المجزأة أو المصغ المختلفة. من المدارس األخر وعلى أداء لر األحادية، ألنه يصعب الحصونواة لينكس على التصو ة). بنيترا بينها عبر نواة بسيطة (مصغ كعمليات منفصلة، تتخاطب فيمر يأنها عندما تكبر تص هي ده). وفي نفس الوقت، مشكلة األنوية األحادية لصعوبة هذا األمر وتعقي رة (وذلكجيد من نموذج األنوية المصغ

لحل هذه المشكلة. modules التحميل المتغيرة لألجزاء صعبا، استخدمتطويرها ويصير ا،ضخمة جد (FS) كأنظمة الملفات –التي يتم تحميلها عند الحاجة: هذا يجعل وجود أجزاء من نظام التشغيل : (modules) الوحدات-4يجعل من هذا. ممكناكأجزاء خارجية يتم تحميلها (أو ربطها) مع النواة أثناء عملها عند الحاجة لذلك أمرا – (udev)األجهزة ومعرفات

الممكن تبسيط النواة وتوفير هذه األجزاء كعناصر يمكن تطويرها بشكل منفصل. وير يخرج تط لم تطور أنظمة تشغيل يوما بهذا التوزع واالمتداد، حيث ال ):يطوره مجتمع تربطه الشبكة العالمية (اإلنترنت نظام-5

التي تتعاون إلنشاء للمؤسسات األكاديمية رها (في حالة األنظمة المملوكة) أو المجموعة الصغيرةة عادة عن نطاق الشركة التي تطو األنظموقت ومعرفة هذا الشخص. والنتيجة هي وجود مئات أو آالف من به نظام معينة. ظاهرة مجتمع لينكس تسمح للجميع بالمشاركة بما يسمح

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

GCC ف لغة سيمصر وبرمجيات أدوات جنو واألهم بينها FSF يقفبعيدا عن النواة، انضم إلى فر بعضايع بعضها أنجحت هذه المشار

ر GNOME و KDE يع أسطح مكتب مثلومشار) X Window ل دار األجهزة الشخصية إص( Xfree يع أخرى مثلمشار وتطوأدت إلى توفير POSTGREE SQLو MYSQLيال، وقواعد بياناتع مثل خادم الوب أباتشي، ومتصفح موزياإلنترنت كنتيجة لمشار

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

.نوا من ربطها للتكامل معا بنجاحالتي تمك ي وسوز وماندريكردهات ويعات جنو/لينكس (تحزيم النواة والتطبيقات) ودعمتها، كأمثال أت شركات جديدة أنشأت بدورها توزساعدت نش

رد الذي نشهده اليوم.شركات المترددة وبدء النمو المط في تقديم جنو/لينكس إلى ال

من التشغيل هذا كنوع ة بإعادة تسمية األنظمة إلى جنو/لينكس. تستخدم كلمة لينكس لإلشارة إلى نظامسنعلق أيضا على المناظرة المتعلق للنظام. رغم ذلك، فمصطلح األدوات األساسية توالتي وفر ومشروع جنو. FSFبه بالعمل الذي قامت يستخفهالتبسيط، لمكن هذا بنظر البعض

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

المصدر على نمط ة من مشروع جنو إنشاء نظام تشغيل مفتوحألساسية لمؤسسة البرمجيات الحرباألساس جنو مع نواة لينكس. كان الهدف ا يونكس وتسميته جنو.

نظام تشغيل بعد. نواة نواةضمة نواة لينكس إلى أدوات جنو حيث لم يكن لدى مؤسسة البرمجيات الحرة 1991قرر لينوس تورفالدز عام

هيرد.لتوزيعات جنو/ وهناك الكثير من العمل عليها اآلن، وهناك إصدارات تجريبية متاحة HURD جنو اسمها هيرد

وبعض األنظمة المملوكة، أيضا تعتمد على أدوات جنو. BSD أنظمة فمثال لوحيدة التي تستخدم برمجيات جنو؛ليست أنظمة جنو/لينكس اعالية تم استخدامها في معظم جودة لقد أنتج مشروع جنو برمجيات ذات أيضاشركة أبل يستخدم برمجيات جنو من MacOS Xكنظام ة المملوكة.األنظمة المبنية على يونكس الحريعات زتو

Page 9: Linux Admin I II

RHCSA/RHCE Egypt ®

:توزيعات جنو/لينكس 8

صبحي طيبه دد. محم

يعات جنو/لينكس:توز

قوم ثالثة عناصر برمجية ي د بشكل واضح. فمن ناحية، هناكجنو/لينكس، رأينا أنه ال يوجد نظام تشغيل وحيد ومحدعندما تحدثنا عن أصول و عليها نظام جنو/لينكس، وهي:

لينكس: كما رأينا، فالنواة هي الجزء المركز ي من النظام فقط. نواة-1 عبر مشروع جنو. FSF لينكس عبر البرمجيات التي أوجدتها أكمل تطويرجنو: تطبيقات-2 اآلخرين: عادة ما تكون مفتوحة المصدر. تطبيقات-3

وجود تطور سريع ة أو مفتوحة المصدر، سواء كانت النواة أو برمجيات جنو أو البرمجيات األخرى، فمن المعتادوألن معظم البرمجيات حر ات سيكون علينا اختيار أي البرمجيف لإلصدارات، سواء بإصالح العلل أو إضافة مزايا جديدة. هذا يعني أنه برغبتنا إنشاء نظام جنو/لينكس،

نرغب بتثبيتها في النظام، وأية إصدارات من تلك البرمجيات.تطلباتهم م عالم جنو/لينكس ليس حكرا على شركة او مجتمع بعينه، مما يعني انه يتيح للجميع إنشاء أنظمتهم الخاصة المهيئة لتلبية

والتي قد (بيتا)، يةرحلة األولية (ألفا) أو االختباروالبعض اآلخر قيد التطوير في الم دائما ما تكون بعض تلك اإلصدارات مستقرة، الخاصة.نظام جنو/لينكس. وهناك مشكلة تحوي أخطاء أو قد تكون غير مستقرة، مما يعني أنه علينا أن نكون حذرين في اختيار اإلصدارات عند إنشاء

بدائل بديل للبرنامج الواحد. علينا االختيار بين ال جنو/لينكس غنية بالبدائل، فهناك أكثر منأخرى إضافية، وهي االختيار بين البدائل، فعالم برامجه. المختلفة، وإتاحتها كلها أو بعضها إذا كنا نرغب بأن نتيح للمستخدم حرية اختيار

اصر مكوناتها الخاصة (العن ة على مكتبة منمنهما هو كونها مبني وكدي. ما يميز كال مجينوان، وهما للينكس بيئتا سطح مكتب أساسيت في كدي مكتبتا الرسوميات الرئيسيتان (QT) وكيوتيفي جينوم، (gtk)+ المختلفة للبيئة، كالنوافذ واألزرار والقوائم وغيرها): جتك

,XFCE: ثلمكتب، وافذ وأسطح المعديد من مدراء النالبيئتين، هناك ال المستخدمتان لبرمجة التطبيقات في هاتين البيئتين. إضافة لهاتينMotif, Enlightenment, BlackIce,FVWM .وغيرها

دليال جيدا www.distrowatch.comالتوزيعات، يوفر موقع إلى الموقع الرسمي لهذهوذلك بالنظر اقرأ عن التوزيعات المختلفةيعات عبر هذا الموقع أو بالوصول التوز لمختلف isoوعلى صورنها. يمكننا الحصول تتضم للتوزيعات وحالتها إضافة إلى البرمجيات التي

ين.للمجتمعات والمصنع المختلفة وإلى المواقع

دبيانق يفي توزيعها والتسو ية غير االستمرارعلى مجتمع ليس له أهداف تجار يعة قائمةدبيان حالة خاصة، حيث أنها توز

.الستخدام البرمجيات الحرة ومفتوحة المصدر س من مستخدميها ومطوريها قائم على االلتزام باستخدام برمجيات حرة.دبيان توزيعة يدعمها مجتمع متحم

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

وثائق تعرف "بعقد دبيان االجتماعي" تذكر الفلسفة العامة للمشروع وسياسات والقوانين؛ هناكبسلسلة من السياسات تنفيذ توز يعتها. ومحددة بالتفاصيل كيفية دبيان

فهي أداة عالية المستوى APTأما DEB بالبرمجيات صيغة تعرف لحزم APTت، وهيتدعم دبيان إحدى الصيغ التي توفر معظم التسهيالمن وعلى برمجياتأيضا الحصول APTل المتوفرة. يمكن الحزم أوإلدارة هذه الحزم ومتابعة قاعدة بيانات للحزم التي يمكن تثبيتها فورا

(ftp – web – CD) عديدةمصادر ن القرص المستخدم من تشغيلها م كس على سبيل المثال مبنية على دبيان ليتمكننوب فتوزيعهام دبيان كأساس لتوزيعات أخرى؛ يمكن استخد

محسنة توزيعة وأوبونتوتطويعها لتناسب المجتمع المستقل دبيانية تم توزيعة linexو الضوئي دون الحاجة لتثبيتها على القرص الصلب .المكتب ا سطح لبيئات

Page 10: Linux Admin I II

RHCSA/RHCE Egypt ®

:توزيعات جنو/لينكس 9

صبحي طيبه دد. محم

ريدهاتو فيدورا كور نجأنشأ بوب ي .نجاحا يعاتو/لينكس، ولديها إحدى أكثر التوزية الرئيسية في عالم جنمن الشركات التجار دهاتيشركة ر

صدر وفكرا بأنها يمكن أن تكون البرمجيات مفتوحة الم لقد كانا مهتمين بنماذج .1994شركة ردهات عام ومارك إيوينجتاحة دهات)، والمير اختصارا: (والتي سنشير اليها يعة ردهات لينكسالتجاري. منتجهما الرئيسي توزمل يقة جيدة للعطر

يرة كبأو الشركات المتوسطة أو ال واحترافية) لقطاعات مختلفة من السوق كالمستخدمين المنفردين (إصدارات شخصية ).(باإلصدارة التجار

قيمة المصدر، إال أنها شركة ذات أهداف ربحية، وهذا سبب إضافتهم رغم أن ردهات تعمل بنموذج برمجيات مفتوحة

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

ردهات. تملكها برمجيات أدوات مكتبإيقاف إصدارها لسطح ال) 9xقررت ردهات لينكس (اإلصدار )2003في مرحلة ما (وتحديدا نهاية عام اإلصدار الوحيد لقطاع األعمال و، والتي ستبقى باالنتقال و إلى اإلصدار الموجةلجنو/لينكس، ونصحت عمالءها

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

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

ية.إلنشاء نموذج مزدوج لتوزيعات مجتمعية وتجار النموذج أيضا مستخدم في شركات أخرى ية)،رالتجا SUSE(المبنية على توزيعة سوزة Open SUSEتوزيعة أوبن سوزة ذلكوعلى كمثال

كانت ة يعة فرنسيتوز وهي يفاماندرلعديد من مزاياها، وتحديدا والتي تحتفظ با أيضايعات األخرى المبنية على ردهات هناك العديد من التوز

وزيعات المجانية ذات ردهات في بروز سلسلة من الت ومن توزيعةاألعمال باألصل مبنية على ردهات، وفي نفس الوقت، ساهمت إصداراتما يتعلق أما في اإلبقاء على توافقية كاملة مع إصدار ردهات لألعمال و)،(والتي تحاول و كبيرة المهتمة ببيئة الخوادم، مثل سنتوسالشعبية ال

.SUSE يعات، ومن ضمنهاكبير من التوز مستخدم في عدد RPM نظمة التحزيم، فما يسترعي االهتمام هو أن نظامبأ

Page 11: Linux Admin I II

RHCSA/RHCE Egypt ®

البداية االولى 10

صبحي طيبه دد. محم

االولى البداية

لمستخدم الينكس وللدخول اليها يجب ان يملك يتم الدخول الى نظام التشغيل ال هاعالم اللينكس بشاشة دخول المستخدم والتي عن طريق االن نبدأفإنه يوفر لينكسجنو/ نظام عقالإعند وقد تختلف شاشة دخول المستخدم حيث انه )password(والرقم السري )username(اسم المستخدم

.على أوضاع أو مستويات اإلقالع اعتمادا GUI؛ أو رسوميةCUI (tty)للمستخدمين واجهة بمظهر محدد قد تكون الواجهة نصية (KDE)لكيدى kdmاو (gnome)لجنوم gdm او WINDOWSX تعود ملكيته ل الذي xdmتكون قد )GUI( والوجهات الرسومية

انظر الى (virtual console 1)األول المحاكي الرسوميةوتحتل دائما الوجه (virtual console)وجهات 6حيث توفر جنو/لينكس 1-Figure 1معرفة أي من الوجهات السبعة التي تعمل عليها االن باستخدام االمر . يمكنtty ويمكن التنقل بين الوجهات بالضغط علىnCtrl + alt + F حيثn عن طريق االمر او 1-6تساوى منn#chvt

Ctrl+alt+F1 يتم انشائها عن طريق (والتيبالضغط عليهم فانهم يشيرون الى الوجه الرسومية االفتراضية x server وهو برنامج يعتمد عباره عن وجهات نصيه.الباقي فهو عليه اللينكس ألنشاء البيئة الرسومية) اما

(CLI)شاشة الدخول في الوجه النصية

(GUI)شاشة الدخول في الوجه الرسومية

(terminal)الشاشة الطرفية ان ويوجد منها نوع لناألوامر وتعتبر وصلة الربط بين المستخدم والكيريتم تنفيذ هاعباره عن الشاشة التي عن طريق 1-(Real Console) يوفرها النظام التي عباره عن الوجهات النصية حقيقيه وهي(CUI) (tty)

فيما بعد. طرق اليهاسوف نتويمكن التحكم في العدد عن طريق التغير في ملف البدء و 2-(Fake(Pseudo) الشاشة الرسومية سواء تنبى علىوهميه والتي(gnome – KDE – other)

. (ssh – GUI terminal)وهما real console عباره عن محاكاه لل وهي ttyنستخدم االمر الحالي terminal ولمعرف نوع ال

عن طريق االتي GUIفي )terminal )Pseudoولفتح ال Figure 1-2انظر الى open terminalعن طريق الضغط يمينا على سطح المكتب ونختار

الفصل

البدايهBeginning The Linux

Figure 1-1

Figure 1-1

Page 12: Linux Admin I II

RHCSA/RHCE Egypt ®

البداية االولى 11

صبحي طيبه دد. محم

التالى:انظر الى Terminalثم System Toolsثم Applicationsاو عن طريق الضغط على

Figure 1-4الى انظر يعملون عليها الذي الطرفية والشاشةلعرض جميع المستخدمين الموجودين االن يستخدم- :whoاالمر sshأيضا الى نظام التشغيل عن طريق الشبكة عن عبد عن طريق يمكن الدخول و

-: )(How write command in Terminalامر أيطريقة كتابة امر في نظام التشغيل جنو/لينكس فانه يأخذ الشكل التالي أيلكتابة )Figure 1-5(انظر

Terminal

الخياراتالمتاحة

Figure 1-4

Figure 1-5

Page 13: Linux Admin I II

RHCSA/RHCE Egypt ®

البداية االولى 12

صبحي طيبه دد. محم

(-)واالسم الثاني يدل على الخيارات التي تأتى معه لتنظيم عمله ودائما تبدأ ب يدل على اسم البرنامج (command)حيث نجد ان االسم األول والتي تعمل على توضيح طريقة عمل االمر (help--)الخيار (command)مع االمر ودائما يأتي .(--)او

يأتي بعده حرف معبر عن الوظيفة (-)دائما يأتي بعده خيار عباره عن كلمه معبره عن الوظيفة اما (--) Figure 1-6انظر الى ووظيفته عرض محتويات الملف ورؤية تأثير الخيارات على الناتج الخاص به lsمثال استخدام االمر

)Figure 1-7انظر (كاالتي خيار مع االمر الواحد ويمكن استخدام أكثر من

Figure 1-8انظر الى (--)م مثال اخر باستخدا

(Figure 1-9)انظر الى التي تستخدم لتوضيح طريقة عمل االمر (help--)دام الخيار مثال الستخ

او

Figure 1-6ثم استخدامه مع بعض الخيارات lsمثال االمر

Figure 1-7

Figure 1-8

Figure 1-9

Page 14: Linux Admin I II

RHCSA/RHCE Egypt ®

HELPS كيفية الحصول على المساعدة؟ 13

صبحي طيبه دد. محم

Figure 1)-(10انظر الى (terminalمنال (بعض المفاتيح المساعدة في تنظيم عمل التر

إليقاف تنفيذ االمر الحالي

إليقاف وسائل االدخال الحالية

لتنظيف شاشه التر منال (terminal)

لفك تجميد عمل التر منال

لتجميد عمل التر منال

تعليق االمر (البرنامج) الحالي

HELPS كيفية الحصول على المساعدة؟

تتمكن باإلحاطة بوظيفة االمر. لكياألوامر واستخداماته المتعددة وخياراته يمكنك االستعانة بأوامر المساعدة أحدتفهم مهمة لكي التي توفرها توزيعات جنو/لينكس:هناك عدد من مصادر المعلومات و

- man (manual page) الخيار األفضل للمساعدة. يسمح لنا بالعودة إلى دليل جنو/لينكس المجمع في أقسام عديدة تتعلق باألوامر –إلى حد بعيد –هو

اإلدارية، وهيئات الملفات، وأوامر المستخدمين، استدعاءات لغة سي، وغيرها. عادة، للحصول على المساعدة باستخدام: #mancommand او #manncommand

في عرض صفحاته المساعدة وهناك بعض المفاتيح المساعدة مع lessيستخدم االمر manونجد ان االمر .سكشنتعبر عن رقم ال nحيث Figure 1-11م تصفحه ومن هذه المفاتيح ما يلي انظر الى التي تسهل على المستخد manاالمر

التأليه الصفحةاالنتقال الى السابقة الصفحةاالنتقال الى

manالخروج من االمر manالبحث في صفحات

عند الثانية النتيجةاالنتقال الى استخدام أداة البحث

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

Figure 1-10

Figure 1-11

Page 15: Linux Admin I II

RHCSA/RHCE Egypt ®

HELPS كيفية الحصول على المساعدة؟ 14

صبحي طيبه دد. محم

-: manمر وفيما يلي توضيح لألقسام التي يوفرها اال

ويمكن االستدالل gzipوتكون في هيئه مضغوطة /usr/share/man/في المسار موجودة man الونجد ان قواعد البيانات التي يستعين بها .manpathعن طريق االمر manعلى ماكن الملفات التي يستخدمها االمر

التي تتحدث عن موضوع معين manوالتي تساعدنا على تحديد مكان صفحات aproposوهناك أمر آخر ملفت لالنتباه وهو كلمة .manΔ-kوتعادل manحث عن الكلمة المكتوبة في صفحات بتعمل أي له عالقة بالكلمة

#apropos[keyword] = #man-k[keyword] .aproposوكذلك whatisتعتمد على قاعدة بيانات man -kملحوظه: :manصفحات طريقة فهم عن طريق االستعالم عن االمر فنجد manاقسام كما في الجدول السابق وعند فتح صفحة 9تنقسم الى manأوال نجد ان صفحات

جزء. 11ان الصفحة التعريفية لألمر تتكون من 1-NAME :وهنا نجد اسم االمر وتتبعه وظيفته 2-SYNOPSIS .وهنا يبين لك كيفية استخدام االمر أي صيغة االمر

ثم بعد ذلك الملف او المجلد الذي يطبق عليه االمر. optionفاألمر يكتب أوال ثم يتبعه خيارات ولكن قبل االنتقال الى النقط التالية يجب معرفة فهم صيغة كتابة االمر.

و ال يمكن.ما بداخله يعنى اختياري يمكن كتابته ا [ ] ما بداخله إجباري البد ان تكتبه مع ابدال النص المناسب. < > ما بداخله البد ان تكتب احد الخيارات الموجودة. { } النقط الثالثة تعنى الخ او اكثر. …

3-DESCRIPTION .وهنا نجد شرح ما يقوم به االمر بإيجاز وشرح لخياراته 4-OPTIONS .وهنا شرح مختصر لخيارات االمر 5-EXAMPLES .وهنا بعض األمثلة التوضيحية 6-AUTHORS هنا نجد اسم المبرمج الذي كتب االمر او البرنامج وكذلك صفحةmanual. 7-BUGS .هنا نجد البريد اإللكتروني الذي نرسل اليه المشاكل التي تواجهنا اثناء تنفيذ االمر او البرنامج 8-COPYRIGHT .هنا نجد حقوق الملكية لألمر او البرنامج 9-SEE ALSO .يدلك على األوامر المتعلقة بنفس الموضوع

10-FILES مر التي لها ملفات تهيئه مثل نجده في األواmount. 11-HISTORY في انظمه أخرى مثل ميذكر تاريخ االمر من حيث إذا كان يستخدUNIX اوBSD.

- oinf هو نظام مساعدة شائع آخر. طور هذا البرنامج في جنو لتوثيق كثير من أدواته. هو باألساس اداه نصيه يمكن البحث فيها عن

.تفصيال أكثرولكن man النفس وظيفة وهو باستخدام نظام تنقل بسيط يعتمد على لوحة المفاتيحأجزاء وصفحات طور بواسطة جنيو pinfoاو عن طريق استخدام االمر #commandinfo عن طريق االمر التالي infoويتم عرض صفحات االمر

info جميع صفحات البدون أي إضافات سوف يقوم بعرض pinfo وعند استخدام االمر

Page 16: Linux Admin I II

RHCSA/RHCE Egypt ®

HELPS كيفية الحصول على المساعدة؟ 15

صبحي طيبه دد. محم

- /usr/share/doc/ -/usr/doc/

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

(red hat documentation guide)دليل ريد هات - ةاألسطوانفي موجودةاو تكون هات وتكون متوفر عن طريق الشبكة التشغيل ريدعباره عن ملفات مساعده عن كل شيء عن نظام

.الخاصة تنصيب نظام التشغيل (yelp) (Genome help browser)الرسومية هالملفات المساعدة الخاصة بالوج -

Figure 6.1 & 6.2او كاالتي انظر الى F1والتي يمكن الوصول أيها عن طريق الضغط على مفتاح

Page 17: Linux Admin I II

RHCSA/RHCE Egypt ®

HELPS عدة؟كيفية الحصول على المسا 16

صبحي طيبه دد. محم

- help)--( والتي تأتى مع االمر لتوضح طريقة عمله ويضعها المبرمج الذي صنع االمر manالمثل

- whatis بسيطة.معلومات ولكن man المثل -وذلك عن طريق االمر التالي: whatis تحديث قواعد البيانات لل

#mandb ------- (Ubuntu, SUSE) #makewhatis------- (Red Hat)

كيفية الحصول على الدعم من شركة ريد هات؟ (define problem)تعريف المشكلة -1 (search docs and kbase)البحث عن حل المشكلة في الملفات المساعدة -2 (gather background information)تحصيل بعض المعلومات عن المشكلة -3 log file (gather relevant diagnostic info (sos report))تحصيل معلومات من الملفات المستخدمة في الفحص مثل -4 (determine severity level)تحديد مدى سوء المشكلة -5 (contact redhat by web)هات عن طريق الويب االتصال بريد-6 تسال هل تريد عرض جميع األوامر مثال ارادت ان تشاهد جميع األوامر التي تبدأ ند الضغط عليه مرتين فتظهر لك رسالة ع tabالمفتاح mمرتين فتظهر رسالة تسال هل تريد عرض جميع األوامر التي تبدأ بحرف tabواضغط على المفتاح m اكتب حرف ال m بحرف ال

مره واحده سوف يكمل االمر وال يقتصر tabالضغط على فمجرد m للرفض اما إذا كان االمر واحد هوا الذي يبدا ب nللموافقة و yنختار Figure 6.4 انظر الى استخدامه على األوامر فقط ولكن يمكن استعماله مع المجلدات والملفات.

تغير اللغة جنو لينكس يوفر لينا العديد من اللغات المتاحة على نظامه التشغيلي ولكن تكون اللغة االفتراضية عليه اللغة اإلنجليزية والتي يرمز

نجد انه يمكن إضافة مجموعه من اللغات مع اللغة االفتراضية عن طريق (Figure 6.5& 6.6)بالنظر الى .en_US.UTF-8لها بالرمز systemadministration languageاو عن طريق System-config-language استخدام االمر

etc/sysconfig/il8n/ونجد ان هذه التغيرات تسجل في الملف =LANG#الكود الخاص باللغة LANGويمكن تغيره أيضا عن طريق استخدام المتغير

Figure 6.4

Page 18: Linux Admin I II

RHCSA/RHCE Egypt ®

17 FHS (Filesystem Hierarchy standard)

صبحي طيبه دد. محم

مقدمة

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

ولكن قبل هذا سنتعرف على بعض معايير عالم جنو/لينكس، والتي ستساعدنا في إيجاد بعض الخصائص األساسية التي نتوقعها في أ ي . فيهاجنو/لينكس. والتي بدورها ستساعدنا على فهم األدوات وطريقة عملها والتحكم توزيعة

من هذه المعاير

LSB ]Linux Standard Base [قاعدة معيار لينكس FHS ]Filesystem Hierarchy Standard [معيار هيكلية نظام الملفات

توزيعة التخبرنا هذه المعايير عن األدوات التي يمكننا توقع إيجادها متاحة، وعن بنية شائعة لنظام الملفات، والعادات العديدة التي تحتاج

التباعها لتعتبر نظام جنو/لينكس، لالحتفاظ بقوانين مشتركة للتوافقية بينها وبين غيرها. .softwareالى البرمجيات hardwareومن المالحظ أيضا ان أي شيء يتعامل مع جنو/لينكس يتعامل كأنه ملفات بداية من األجزاء الصلبة

FHS (FILESYSTEM HIERARCHY STANDARD)

هيكلية نظام الملفات معيار

(root directory) (/)يمكن تمثليها بشجره مقلوبه من المجلدات والملفات وجذر هذه الشجرة هو السالش (File system)نظام الملفات .(/)وكل الملفات تتفرع من الجذر

من التسمية باالسم الكامل للملف وعند تسمية ملف فان اسم الملف يتكون من جميع الفروع الذي يندرج تحتها ويسمى هذا النوع(fully qualified name) على سبيل المثال/home/alice/website مثال اخر ،/home/alice/website/songs/song1.midi

Standard Linux Directory Scheme

الفصل

نظام الملفات

File system Basic

Page 19: Linux Admin I II

RHCSA/RHCE Egypt ®

18 FHS (Filesystem Hierarchy standard)

صبحي طيبه دد. محم

Path name المسار

Contents الشرح

(root)ويسمى ال (directory)والمجلدات (files)يبدا منه شجرة الملفات الذيالجذر /

/bin على هيئة ملف كودى النظام األساسية على تطبيقات يحتوي(binary code) وعادة ما تكون برامج يستخدمها ،أو bin/bash/التي تعرض محتوى مجلد أو الصدفات مثل bin/ls/المستخدمون، سواء من أوامر النظام األساسية مثل

الذي يوجد تحت bin/ويوجد تطبيقات تخص كل مستخدم على حده وتوضع في المجلد .(User Excitable) غيرها/usr ويصبح هكذا/usr/bin

/boot المجلدات الضرورية إلقالع النظام، مثل صورة نواة لينكس في/boot/vmlinuz (kernel and boot loader).

/dev

في أنظمة يونكس يتم كما devicesالوصول إلى (devices)األجهزة المختلفة في النظامسنجد هنا ملفات خاصه تمثل والتي يمكن ان تكون … و dev/cdrom/وdev/mouse/ و dev/console/ لو كانت ملفات. يمكننا إيجاد ملفات مثل

- :روابط لملفات محدده أكثر لألجهزة ذات نوع مشغل او الواجهة يستخدمها الجهاز مثال/dev/mouse المربوط ب/dev/psaux والذى يمثل فأره من النوعPS2 او/dev/cdromالمربوط ب/dev/hdc وهو

.IDE مشغل أقراص مضغوطة موصله بحسب رقم الجهاز. xبحيث يتغير dev/sdx/ وهارد ساتا مثل SCSI وسكزى dev/hdx/ مثل IDE نجد هنا أجهزة

في البداية ثابتا، والملفات كانت معرفة مسبقا، و/أو مضبوطة في أوقات معينة، لكن علينا أن نذكر هنا أن هذا المجلد كان ديناميكيا /dev/ يمكنها اكتشاف األجهزة و إنشاء ملفات (hotplug , udev) اآلن نستخدم أساليب لتقنيه مرنه مثل

.عندما يقلع النظام أو وهو يعمل، عند إضافة أو إزالة أجهزة

/etc اإلعداد الخاصة بأي امر او برنامج ملفات تحتوي علىconfiguration file مثال/etc/passwd.

/home ان أي يمكن وهو يعبر عن المنطقة الخاصة به، سم المستخدماكل مستخدم في نظام التشغيل له مجلد ينشأ عند انشاءمجلد يكون اسمه مثل اسم المستخدم ويندرج تحت يخزن ملفاته فيه بعيدا عن المستخدمين االخرين وهو عباره عن

home/المجلد

/lib وتكون بامتداد مكتبات النظام التي تشترك بها برامج المستخدمين سواء كانت ثابته.a ون بامتداد كوت متغيرةاو.so على lib/modules/ويمكننا أيضا إيجاد الوحدات المتغيرة لنواة لينكس في .libcسبيل المثال مكتبه سي القياسية في ملفات

/mnt نقطة لضم أنظمة الملفات مؤقتا باستخدام األمرmount مثال /؛mnt/cdrom قرص ضوئي لضم.

/media .نقطة ضم شائعة لألجهزة الممكن إزالتها

/opt وهو للتثبيتوهناك مكان آخر صالح هناالبرمجيات المضافة إلى النظام بعد التثبيت عادة تأتيusr/local/ ./

/sbin النظام األساسية. وهي أدوات محجوزة للمدير المستخدميحتوي على تطبيقاتroot / فمثالbin/fsck لتصحيح حالة / usr/sbin/ما يخص المستخدم خاصة ويوجد في دالملفات. ويوجنظام

/tmp وتعتبر المساحة المشتركة بين جميع المستخدمين ويزال ملفاتها بطريقه اليهالملفات المؤقتة للتطبيقات أو النظم نفسه

/usr

عناصر مختلفة مثبتة في النظام. بعض إلى كماليات الوسائط المتعددة (األيقونات، والصور، واألصوات، مثال في //usr/share) وتوثيق النظام (usr/share/doc/ .(/ تستخدم أيضا برمجيات النظام المكتملة أكثر مثبتة هنا، إضافة

/usr/local/ وتحتوي على المجلدات التالية البرمجيةلتثبيت البرمجيات غالبا للتثبيت اليدوي وإضافة النصوص /usr/bin , /usr/include (compiling c) , /usr/lib , /usr/local , /usr/sbin , /usr/share , /usr/src , /usr/tmp

/var أو حالة و/أو ملفات الخطأ للنظام نفسه وللخدمات العديدة للنظام والشبكة نوع تقريرالملفات المتغيرة قد تكون ملفات من، ووظائف الطباعة /var/spool/mail/ومحتوى البريد في /var/log/على سبيل المثال، ملفات التقارير في

.var/spool/lpd/في

/srv سبيانات السيرفي services

/root والتي تحتوي على البيانات الخاص بالمستخدمroot

selinux/و proc/سوف نتعرف عليها الحقا مثل اخرى

التنقل بين المجلدات

تطبيق يساعد المستخدم في التنقل بين المجلدات وأخرى (X graphical environment)يتيح لك جنو/لينكس في البيئة الرسومية في الويندوز. (explorer)ويعادل إكسبلورر (Nautilus)بطريقه سهله ويسمى ناتليس

computerبالماوس على يساراعن طريق الضغط مرتين -1 وتفتح بطريقتين 2-application system tools File Browser Figure 1-2 &1-3&1-4انظر الى

Page 20: Linux Admin I II

RHCSA/RHCE Egypt ®

19 FHS (Filesystem Hierarchy standard)

صبحي طيبه دد. محم

او

من الممكن Nautilusوعن طرق برنامج ناتليس اكتشاف الملفات ورؤيتها ونقلها وانشاء ملفات

ومجلدات جديده ولكن نجد انه يوفر لنا طريقتين -لعرض الملفات والمجلدات:

والتي تعرض كل صفحة spatial modeطريقه -1 منفصلة عن األخرى وتعتبر الطريقة االفتراضية

وتعرض كل الصفحات browser modeطريقة -2 في صفحه واحده

والتحكم عن طريقطريقة العرض ولتغير File management انظر الىنتبع االتي Figure 1-5

behaviorنختار

نعمل عالمة صح هنا

Figure 1-2 Figure 1-3

Figure 1-5 File Management

Page 21: Linux Admin I II

RHCSA/RHCE Egypt ®

20 FHS (Filesystem Hierarchy standard)

صبحي طيبه دد. محم

حيث نجد viewالتحكم في شكل عرض الملفات أيضا من القائمة file managementكما يتيح لنا برنامج List .يقوم بعرض الملفات على هيئة قائمه تحتوى على اسم الملف وحجمه ونوعه وبيانات انشائه

Compact لعرض الملفات على شكل ايقونات Arrange items وغيره) –الوقت –الحجم –التاريخ (حسب لترتيب الملفات حسب الوضع الذى تريده على

افتراض لمجلد عندما تعمل وذلك لتسهيل عمله حيث كما قلنا مساركل العمليات التي تتم على جنو/لينكس من برامج واوامر تستخدم

مما يسبب صعوبة في االستخدام (FQN)ثم المجلدات التي تحتويه ثم اسم الملف / يكون عباره عن بداية الشجرة وهي من قبل ان اسم أي ملف ملف. ألي FQNيستخدم في تكملة والذي (current working directory {cwd})لذلك لعمل أي امر فانه يستخدم المسار االفتراض

:كاالتي cwdلمعرفة المسار االفتراضي الحالي pwdويستخدم االمر

بين لتنقل (TRANSPORT BETWEEN DIRECTORY) المجلداتا

ثم المجلد المراد االنتقال اليه كاالتي cdويكتب االمر وبعضها المجلداتللتنقل بين cd (change directory command)يستخدم االمر

(Table 1-1)انظر الى الجدول والتي لهل مدلول ومن هذه العالمات االتي: cdويوجد بعض العالمات المستخدمة مع االمر

absolute pathname تسمى --- األولى-: المجلداتلتنقل بين يوجد نوعين من المسارات relative pathnameتسمى ---الثانية

absolute pathnameالطريقة األولى -هو أي ( (FQN)الكامل للمجلد المسار المجلدثم مسار root الويدل على مسار ) (/الطريقة التقليدية للتنقل بين الملفات حيث يبدا المسار ب

)/مسار يبدا ب rich@testbox[∼]$cd /etc rich@testbox[∼]$ cd /usr/lib/NetworkManager rich@testbox[etc]$ rich@testbox[NetworkManager]$

تعنى المسار الحالي

تعنى المسار االب الذي يندرج تحته المسار الحالي بمعنى خطوه للخلف

المسار السابق الذي كنت تعمل عليه

Page 22: Linux Admin I II

RHCSA/RHCE Egypt ®

21 FHS (Filesystem Hierarchy standard)

صبحي طيبه دد. محم

relative pathnameالطريقة الثانية -ويحدد المسار الحالي اما بكتابة المسار المراد التنقل (root directory) /بال تبدأاالنتقال الى المسار المراد الذهاب اليه من دون ان هنا يتم

(notFQN)أي بكتابه اسم المجلد المراد االنتقال اليه دون كتابه االمس كامل اليه ويكون داخل المسار الحالي .aliceحيث انه موجود داخل المجلد sample.txtونجد كيفية الوصول الى الملف (Table 1-2)انظر الى الجدول

FILE AND DIRECTORY LISTINGلعرض محتويات المجلد

من ملفات او مجلدات أخرى او أي نوع اخر الن ننتقل الى عرض محتويات المجلداتأبعدما فرغنا من معرفة التنقل بين المجلدات ف . shellوتعتبر هذه األداة من اهم األدوات التي تستخدم مع ال lsلذلك سنستخدم االمر الحالي،او في المسار يحدده المستخدم الذيفي المسار

.lsالشكل التالي هو الصيغة العامة لألمر ls[option][file or directory]

.ls (option)بعض اإلمكانيات المتاحة مع االمر -F عرض نوع الملف يعمل على

فهذا يعنى انه (*) فهذا يعنى انه مجلد واالسم الذي ينتهي ب) /(والتي تستخدم بعض الرموز التعبيرية حيث عندما نجد ان االسم الذي ينتهي بفهذا يعنى انه ) =(واالسم الذي ينتهي ب symbolic linkفهذا يعنى انه لينك من النوع (@) واالسم الذي ينتهي ب execملف تنفيذي

socket )فهذا يعنى انه |واالسم الذي ينتهي ب (FIFO لاختصار وهي First in First out (named pipe) تعنى بدون نوع %و -a ..لعرض جميع الملفات المخفاة والتي تحتوى على. او -R directory + sub directory يستخدم لعرض الملفات والمجلدات وما تحتويه هذه المجلدات أيضا سواء مجلدات أخرى او ملفات-l يستخدم لعرض تفصيلي عن كل المعلومات المتاحة عن الملفات الموجودة او المجلدات وعرض الصالحيات -i Inode numberلعرض الرقم االينود الخاص بالملف

llيعادل ls-lاالمر -ملحوظه:

Page 23: Linux Admin I II

RHCSA/RHCE Egypt ®

22 FHS (Filesystem Hierarchy standard)

صبحي طيبه دد. محم

:بالترتيب من الشمال الى اليمين l–lsشرح تفصيلي عن ناتج استخدام االمر . block deviceتعنى character device (b)تعنى (c)تعنى مجلد )(dملف تعنى) – (الملف نوع-1 .hard linkاو soft link نكات الخاص به سواءاعداد ال-permissions. 3الخاص به الصالحياتنوع -2 .المجموعة المالكة للملف-5 .المستخدم صاحب الملف-4 اسم الملف او المجلد-8 .الوقت الذي انشاء فيه الملف-7 .حجم الملف بالبايت-6

ضراالخولون الملف التنفيذي باللون األحمرولون الملف المضغوط باللون األزرقولون المجلد باللون األسودويكون لون الملف باللون

FILE HANDLINGالملفات والمجلدات مع التعامل

creating fileانشاء ملف -

كان موجودا او انشاء ملف فارغ إذاإلنشاء ملف فارغ او لتغير تاريخ انشاء الملف والمجلد touchويستخدم االمر ونالحظ هنا انشاء الملف من ملف في وقت واحد أكثردون امتداد او بامتداد او إلنشاء

copying fileنسخ ملف او مجلد - كاالتي . وصيغتهمع االحتفاظ بالملف األصلي ويستخدم لعمل نسخ من ملف او مجلد في مكان أخر غير مكانه األصلي

cp[OPTION]SOURCEDIRECTORY

المت الخياراتبعض شرح ل

الى myprog2و myprog1قمنا بنسخ الملفين cpحيث نجد هنا ان االمر mohammedالمجلد

من غير أي خيارات عمل على نسخ الملفات

والذي يعمل cp مع االمر p– قمنا باستخدام الخيارعلى نسخ ملف من مسار الى مسار اخر ولكن نجد

انه بنفس الصالحيات والمستخدمين وتاريخ االنشاء ولكن مع اختالف رقم االينود

وذلك إذا واجهت f-ويمكن أيضا استخدام الخيار مشكله في نقل الملف فانه ينقله بقوه ويعيد كتابته

حتى لو كان الملف موجود سابقا

مع R– او r– لنقل مجلد كامل بمحتوياته فأننا نستخدم الخيارحيث من المثال الذي امامنا انه عند نقل مجلد بمحتوياته cp االمر

r– فقط فانه رفض ان ينقله ولكن مع الخيار cp باستخدام االمر فانه قام بنقل المجلد وجميع محتوياته

r– الخيار + p– فانه يعادل الخيار a– اما الخيار قل الملف على ملف موجود سابقافانه يحذرك عن ن i–اما الخيار

Page 24: Linux Admin I II

RHCSA/RHCE Egypt ®

23 FHS (Filesystem Hierarchy standard)

صبحي طيبه دد. محم

moving / renaming fileنقل ملف او مجلد او إعادة تسميتهما - وتكون صيغته كاالتي mv(أي يعيد تسميته) باستخدام االمر من اسم الى اسم اخر غير مكانه األصلي او يمكن نقل الملف من مجلد الى اخر

mv [OPTION]... SOURCE... DIRECTORY

deleting fileحذف ملف او مجلد - ويستخدم لحذف ملف او مجلد وصيغته كاالتي:

rm [OPTIONS] {FILE...}

كاالتي rmمع االمر r–ته نستخدم لحذف مجلد بمحتويا

create directoryانشاء مجلد - إلنشاء مجلد وتكون صيغته كاالتي: mkdirاالمريستخدم

mkdir [OPTIONS] {DIRECTORY...}

أي test1 الى test2 اسم الملف من بتغيرقمنا بإعادة تسميته ونالحظ ان رقم االينود لم يتغير

mv ذلك باستخدام االمر وتم ls باألمر Janaات المجلد محتويوبعرض

به رقم االينود الخاص test 2ونالحظ الملف test1الى mvنجد انه عند إعادة تسميته باألمر

لم يتغير االينود الخاص به

الى المجلد janaقمنا بنقل الملف من المجلدmohammed مع المحافظة على اسمه و ذلكونالحظ أيضا ان االينود لم mv باستخدام االمر

يتغير

وانه ليس فارغ ويحتوي على jana نالحظ المجلد rm ملفات قمنا بحذفه بمحتوياته باستخدام االمر

ولكن نالحظ انه اعطانا رسائل r– مع الخيارتحذيريه عند حذف كل ملف داخل المجلد ولتفادي

f- هذه الرسائل نستخدم أيضا الخيار

Page 25: Linux Admin I II

RHCSA/RHCE Egypt ®

24 FHS (Filesystem Hierarchy standard)

صبحي طيبه دد. محم

انشاء مجلد بنفس اسم مجلد موجود سابقا فانه يعطى رسالة خطا وال يقوم بإنشاء المجلد الجديد دملحوظه عن فانه يرفض وإلنشاء jana1قبل انشاء المجلد tebaفان عندا انشاء jana1داخل المجلد وليكن tebaعند انشاء مجلد وليكن مثل باسم

p–فإننا نستخدم الخيار jana1داخل المجلد tebaالمجلدين في وقت واحد ويكون المجلد

delete empty directoryلحذف مجلد فارغ - .rm –rعلى ملفات فإننا نستخدم االمر يحتوياردت حذف مجلد إذالحذف مجلد ولكن يجيب ان يكون فارغا اما rmdirنستخدم االمر

rmdir [OPTIONS] {DIRECTORY...}

examine directory with treeيستخدم لعرض محتويات المجلدات كاملة بطريق منظمه treeاالمر -

ls –Rهذا االمر يستخدم لعرض محتويات مجلد معين ويعادل االمر إلظهارها ls –aتكون مخفيه ويستخدم االمر (.)الملفات التي تبدأ ب-ملحوظه:

السابقةوالتي يمكن استخدامها مع األوامر wild cardsبعض الرموز التعبيرية المستخدمة عند كتابه األسماء والتي تطلق عليها

يمثل عدد غير محدود من الرموز سواء حروف او ارقام او غيره

يمثل رمز واحد فقط

المتواجدين داخل القوسيمثل رمز واحد من

يمثل رمز واحد غير الموجودين داخل القوس

Page 26: Linux Admin I II

RHCSA/RHCE Egypt ®

examing the file التعامل مع محتوى الملف 25

صبحي طيبه دد. محم

EXAMING THE FILEالتعامل مع محتوى الملف

الملف ينقسم الى ثالثة أنواع 1-text file الملفات التي تحتوي على حروف يستطيع المستخدم قراتها النصية وهيلفات الم. 2-executable file .الملفات التنفيذية وهيا الملفات التي تعمل وتعطينا تطبيق معين 3-data file رها تعمل جيدا او ملفات الفيديو وغي لكيملفات التي تستعين بيها التطبيقات ال البيانات وهي ملفات

.binary codeغير مقرؤه مكتوبه بالبينرى كود وهيا ملفات

fileاالمر - يستخدم لمعرفة نوع الملف وصيغته كاالتي

file [OPTIONS] [FILE...]

statاالمر - وصيغته كاالتي ls –lيستخدم لعرض المعلومات التفصيلية عن الملف وهوا أكثر تقدما عن االمر

catاالمر - محتوى ملف على الشاشة وتكون صيغته كاالتي يستخدم هذا االمر لعرض

cat [OPTIONS] [FILE...] من ملف ودمجهم مع بعض في ملف واحد على أكثرقراءة فيه،قراءة ملف واحد على الشاشة دون ان تتمكن من التغير ----من وظائفه

الملفات استعماله مع ليفض ملف. الانشاء الملف،التعديل في األسماء،الشاشة فقط على حسب الترتيب عند الكتابة او على حسب تسلسل النصية الكبيرة.

كاالتي catويوجد بعض الخيارات التي تأتى مع االمر

في طريقة العرض catولكن يعرض من اخر السطر الى اول السطر أي عكس االمر catمثل االمر tacملحوظه االمر moreو lessاالمر -

كانت مشكلة lessأكثر تحديثا وتقدما عن االمر moreيستخدم هذان االمرين لعرض محتوى ملف على الشاشة ولكن االمر فانه عند امتالء الشاشة فانه يقف حتى إرادة المستخدم ان lessو moreانه عندما يعمل فانه ال يتوقف ولذلك استخدم االمرين catاالمر

:وتكون صياغهما كاالتي. يكمل عرض باقي النص

الوصف الخيار-n يعمل على ترقيم السطور سواء الخالية او التي تحتوي على نصوص ايضا -b يعمل على ترقيم السطور التي تحتوي على نصوص فقط -s يعمل على ضغط السطور الخالية وتحويلها الى سطر خالي واحد -A يعمل على عرض جميع الرموز حتى الرموز المستخدمة المعبرة عن لوحة المفاتيح والرموز الغير قابل للقراءة والكتابة

Page 27: Linux Admin I II

RHCSA/RHCE Egypt ®

examing the file التعامل مع محتوى الملف 26

صبحي طيبه دد. محم

بعض المفاتيح المستخدم معهميوضح Table 6)-(1الجدول التالي

tailو headلعرض أجزاء من الملف النصي نستخدم االمرين - a – االمرtail

(tail-n3text1$)مثال n–ويمكن تحديد السطر المراد قراءته عن طريق سطور من الملف النصي 10يستخدم لعرض اخر -f يستخدم في العرض مع التحديث مهم فيlog file

b – االمرhead سطور من الملف النصي 10يستخدم لعرض اول

يعمل على تفريخ الشاشة من كل الكتابة ويعيد مكانه محتوى الملف

يعمل على ضغط السطور

يعمل على تفريخ الشاشة من كل الكتابة ويعيد مكانه محتوى الملف

Page 28: Linux Admin I II

RHCSA/RHCE Egypt ®

Text editorالتعديل في الملفات النصية 27

صبحي طيبه دد. محم

TEXT EDITORالتعديل في الملفات النصية

للنصوص معالجالتي تملك تات النصوص التي لها معالج للنصوص. والمحرراالنصوص ليست مثل محررستخدم في التعديل في الم البرامج تستخدم في كتاب الخطابات والكتب وغيرها والتي تحتوي على أدوات تساعدها على ذلك مثل الورد في ويندوز وابون اوفيس في لينكس

وغيرها htmlو األكوادبة اما معدالت النصوص فتستخدم في تعديل ملفات االعداد وكتا والتي منها ما يلي:توزيعة جنو/لينكس مع الكثير من محررات النصوص التي تختلف عن بعضهم بنقاط الضعف والقوه تأتى

1-nano وgedit 2-vi وvim وemacs (محررات متقدمة)

nanoالمحرر -بنى وهذا المحرر ميعتبر من ابسط وأسهل المحررات في التعامل مع النصوص ويعتبر المحرر االفتراضي لتوزيعه دبيان

وتكون صيغته كاالتي:لذلك فهوا يشبه ولكن مع مزايا كثيره Picoعلى المحرر nano [OPTIONS] [FILE]

nanoبعض المفاتيح المستخدمة مع المحرر

Ctrl + k =^k الحصول على المساعدة

الخروج الحفظ

قراءة الملف

البحث الصفحة السابقة الصفحة التأليه

قطع نص إضافة النص المقطوع مكان إشارة الموس

فحص الكلمات امالئيا

-m اذا اردت ان تستخدم الفاره مع المحرر -v ليفتح الملف في طور القراءة فقط

geditالمحرر - ولكن هذا المحرر مخصص للعمل في (shell)مخصص ان يعمل على الشل nano الولكن نجد ان nano المحرر مثل

accessories gedit text editor يتم تشغيله عن طريق االتي (X window environment)البيئة الرسومية يأتي معه الكثير من األدوات التي تساعد المستخدم على التحكم في تحرير النصوص geditوبرنامج

vimالمحرر -خدم من االفتراضي المست تطبيق يستخدم للكتابة ويمكن استخدامه في كتابة البرامج والتطبيقات األخرى ولكن قبل هذا كان التطبيق هو

مع نالنصي. ولكويستخدم الوجهة الرسومية في عمله ويتيح لك في حذف وانشاء السطور والتنقل بين سطور الملف viجنو/لينكس حينها هو ولكن محدث vi هو نفسه ال vimلذلك vimاو vi improved التطور تم تحسينه وسمى بعد ذلك ب

vim اللعمل النصية الصيغة $ vimmyprog.c (اسم الملف المراد التعديل فيه او رؤية محتوياته)

-عمله: ليساعده على mode اثنينعلى يحتوي vim ال1- Command mode والتي من خاللها يتم تنفيذ يعض األوامر لتطبيقها على النص 2- Insert mode تستخدم للتعديل في النص

Page 29: Linux Admin I II

RHCSA/RHCE Egypt ®

Text editorالتعديل في الملفات النصية 28

صبحي طيبه دد. محم

Escعلى المفتاح نضغط command modeالى وللرجوع iعلى المفتاح نضغط insert modeللدخول الى (:)انه يبدا ب EX modeويسمى هذا الوضع ب بعض االوامر المستخدمة في الحفظ والخروج

:q تستخدم للخروج وذلك في حالة لم يقوم المستخدم بالتغير في النص :q! عدم حفظ أي تغيرات حدثت تستخدم للخروج مع :w لتي حدثت للملف تستخدم لحفظ التغيرات ا :wq or zz حفظ التغيرات التي حدثت للملف تستخدم للخروج مع

command [where] [Count]وتكون الصيغة لكتابة األوامر كاالتي command mode كيفية كتابة األوامر في ال اختياري. وهمسوف ينفذ فيه االمر الذيعن المكان تعبر whereورمز 23فانه يدل على حذف 23xيعبر عن أي رقم مثل count الحيث المتاحة للتحرك داخل الملف النصي تالخيارا

طريق األسهم عن-1 h(left) , k (up) , l (right) , j (down)طريق المفاتيح عن-2 باستخدام الحروف او الرموز التحرك-3 4-PageDown (or Ctrl+F) للتحرك الى االمام بمقدار شاشه 5-PageUp (or Ctrl+B) للتحرك الى الخلف بمقدار شاشه 6-G اوL و للتحرك الى اخر سطرH للتحرك الى اول النص وM للتحرك الى وسط النص 7-num G للتحرك الى معين على حسب رقم السطر 8-gg للتحرك الى اول السطر

command mode الالخيارات المتاحة للتعديل في الملف النص في حالة Change (replace)يستبدل Delete (cut)يحذف Yank (copy)ينسخ

Line cc dd yy or Y

Letter cl dl yl

Word cw dw yw

Sentence ahead c) d) y)

Sentence behind c( d( y(

Paragraph above c{ d{ y{

Paragraph below c} d} y}

command mode :set allنكتب االتي في ال vim editorلرؤية جميع الخيارات المتاحة التي تدخل في اعداد ال كاالتي vi editorالمستخدمة في اعدادات توللتغير في أي خيار من الخيارا

:set الخيار ماس on :set noاسم الخيار off x الرمز الذي يوجد عند إشارة الماوس لقطع u إللغاء اخر تغير حدث على النص اماU إللغاء كل التغيرات التي حدثت P لنقل ما تم قطعه او نسخه بعد إشارة الماوس اماp إشارة الماوس قبللنقل ما تم قطعه او نسخه

ثم الكلمة المراد البحث عنها ? or /الللبحث داخل الملف نستخدم لتشفير الملف –xللجعل الملف باللغة العربية والخيار –Aوهي vimالخيارات المستخدمة مع االمر

emacsالمحرر -فة صد –بيئة برمجيه متكاملة – نصييعتبر من اقوى المحررات فهوا ليس مجرد محرر نصي فقط ولكن له وظائف أخرى (محرر

يقبل وظائف – use netمن خالله يمكن ارسال البريد اإللكتروني واستعراض مواقع االنترنت واستعراض اخبار – lispمفسر لغة –لينكس يستخدم كمساعد للمكفوفين) –يمكنه تشغيل األلعاب – calendarوالتقويم diaryالمفكرة

-يتميز هذا المحرر بالكثير من المزايا: فتح الملف في واجه رسوميه-3 انشاء نسخه احتياطيه من الملف-auto save 2الحفظ التلقائي -1

emacsmyprog.c# الصيغة النصية

Page 30: Linux Admin I II

RHCSA/RHCE Egypt ®

Text editorالتعديل في الملفات النصية 29

صبحي طيبه دد. محم

التعليميemacsكيفية تشغيل برنامج (emacs tutorials) التعليمي.كي يبدا تشغيل البرنامج tثم اضغط Ctrl+hبعد فتح البرنامج اضغط

.manual اللعرض Ctrl+hبعد iاضغط

Ctrl+hبعد fلعرض معلومات عن البرنامج اضغط Ctrl+hبعد pالمشكالت التي توجه المستخدم اضغط أشهرلعرض وغيره calendarاو java-modeاو c++-mode مثالواكتب اسم الطور alt+xللدخول الى االطوار األخرى اضغط ملحوظه

Page 31: Linux Admin I II

RHCSA/RHCE Egypt ®

مقدمه 30

صبحي طيبه دد. محم

مقدمه على المساحة من محجوز قدر إلى إضافة )وتفضيالتهم بياناتهم بعض فيه (تحدد بهم مرتبط حساب لينكس/جنو لمستخدمي يكون العادة في

تحدد مالم( فقط المستخدم يستخدمها أن ويمكن م،دللمستخ محجوزة المساحة هذه .ومجلداتهم ملفاتهم فيها يطوروا أن يمكنهم والتي القرص .وكل عملية تتم على نظام التشغيل تكون مرتبطة بمستخدم معين )ذلك غير الصالحيات .بحيث ال يتشابه أي اثنين من المستخدمين UIDورقم user nameهو شخص معرف في النظام بتعريف وحيد مكون من اسم -: المستخدم .GIDورقم group nameهي تجمع من المستخدمين معرف في النظام بتعريف وحيد مكون من اسم - :المجموعة

:مختلفة أنواع نجد أن يمكننا بالمستخدمين، المرتبطة الحسابات بين ومن الجذر حساب .فقط اإلدارية للعمليات يستخدم أن يفترض والذي ،rootالجذر ب عرفي ،(root or super user) المدير حساب-1

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

0يساوى UIDودائما يأخذ اإلدارية للعمليات ملفات الستخدام مقيدة صالحيات لديهم للجهاز مستخدمين ألي العادية الحسابات (human user):المستخدمين حسابات-2

باستخدامها لهم سمح التي المحددة األجهزة واستخدام) /temp/ في المؤقتة الملفات المثال، سبيل على(ة دالمحد المناطق حساباتهم ولبعض نهايةالى ما ال 500من UIDودائما يأخذ

أشخاص، يستخدمها ال التي ( lp, news ,wheel ,www-data …) حسابات: (system users) الخاصة الخدمات حسابات-3 ينشأ .الجذر حساب ضمن أيضا تستخدم الخدمات بعض .هذه المستخدمين بأسماء تستخدمها والتي للنظام، الداخلية الخدمات تستخدمها بل

499الى 1من UID) يأخذ المجلدة( مرتبط شخصية ومجلد مرور، وكلمة ،)مستخدم معرف أو( اسم بتحديد عادة المستخدم حساب etc/gshadow/ و etc/group/و etc/shadow/و etc/passwd/ :التالية الملفات في موجودة النظام مستخدمي عن المعلومات

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

؟ UIDال وما ه وترجمتها الرقم التعريفي للمستخدم (user identification number)وتعنى UIDفيتكون له (user)عند انشاء أي مستخدم

حيث ان اللينكس يتعامل مع اسماء المستخدمين عن طريق الرقم التعريفي .و4,294,967,295الى 0بيت ويكون بين من 32وتكون مساحته بعض باألسماء ولكن ال نامع بعضنتعامل بحيث البشرمثلنا نحن loginالخاص به ولكن المستخدم يتعامل معه من شاشه الولوج الى النظام

وذلك لتحدد المستخدمين الذين يقومون بالعملية UIDيضا التي تتم لها أ تالجواز. والعملياالحكومة تتعامل معنا برقم البطاقة او والرقم etc/passwd/فنجد ان كل المعلومات التي تنشى عن المستخدمين تخزن في هذا الملف user قبل الدخول في التطبيقات المتعلقة ب

.groupsولمعرفة الجروب للمستخدم االمر idاالمر نستخدم GIDو UIDالولمعرفة etc/shadowالملف /السري الخاص بهم في ln–lsمثل lsمع االمر nويمكن أيضا استخدام الخيار للمستخدم الحالي UIDلمعرفة ال idيستخدم االمر

الفصل

المستخدمين والصالحيات

Users &Permission

Page 32: Linux Admin I II

RHCSA/RHCE Egypt ®

31 The /etc/passwd file

صبحي طيبه دد. محم

THE /ETC/PASSWD FILE

بأسماء المستخدمين وكما ذكرنا من قبل ان UIDعباره عن قائمه تحتوي على أسماء جميع المستخدمين حيث يستخدمها النظام لكي يعرف Directory services بالويمكن ان يزيد حجم الملف او يمكن استبدالها UID جنو/لينكس ال يتعامل مع األسماء مباشره ولكنه يتعامل مع ال

UIDعلى معلومات أخرى يحتاجها النظام غير يحتويونجد ان هذا الملف -نجد ان الملف مكون من سبعة حقول على الترتيب التالي:

1- Login name أسماء المستخدمين المسجلين على نظام التشغيل الذين يستطيعون الولوج اليه 2- Encrypted password placeholder التعريف بمكان الباسورد المخصص له 3- UID (user ID) number الرقم التعريفي بالمستخدم 4- Default GID (group ID) number هذا الرقم يعبر عن المجموع الرئيسية التي ينتمى اليها المستخدم ثحي 5-“GECOS” information: full name, office, extension, home phone وان وغيرهبعض المعلومات الشخصية مثل العن6- Home directory مكان المجلد المخصص ليه الذى بداخله جميع التطبيقات والمهمات التي تخص كل مستخدم على حده 7- Login shell نوع الشل االفتراضي الذى يستخدمه المستخدم

ع في وضيعبر عن الرقم السري المستخدم حيث كان في القدم يكتب بطريقه يمكن قراتها ولكن االن ي xنجد ان الرمز ملحوظه: حيثم نت في األول تستخدم المستخدملف مشفر وذلك من اجل الحماية ونجد في الملف أيضا أسماء الخدمات ولكن ليست مستخدم حقيقي ولكنها كا

مستخدم غير مستخدم خاص به وهو serviceلذلك صنعت لكل خدمه securityمما سبب مشاكل كثيره في نظام الحماية root userري الجذ .system account حقيقي ويسمى

sbin/nologin/نضعه في الملف service userالنوع اسم مستخدم من ولجعل لمستخدمل GECOSمن اجل تغير chfnاالمر

The /etc/shadow file

rootري التعديل فيه ما عدا المستخدم الجذوال يستطيع أي مستخدم passwordهذا الملف يتم تسجيل الرقم السري الخاص بكل مستخدم فيه user حقول: ويستخدم للحماية من المستخدمين الغير مرغوب فيهم ونجد انه يتكون من عدة-

1 - The login name الموجود في الملف الخاص بالمستخدمين ماسم المستخد 2 - The encrypted password الباسورد الخاص بالمستخدم ولكن بطريق مشفره 3 - The date of last password change تاريخ اخر يوم غير فيه الرقم السرى الخاص به 4 - The minimum number of days between password changed ممتبقية لتغير الرقاقل عدد لأليام ال5 - The maximum number of days between password changed اكبر عدد لأليام المتبقية لتغير الرقم 6 - The number of days before password expiration عدم األيام قبل انتهاء صالحية الرقم السرى 7 - The number of days after a password expires before the account will be disabled 8 - account expiration date تاريخ انتهاء صالحية بيانات المستخدم 9 - A field reserved for future use مكان فارغ للمستقبل

Page 33: Linux Admin I II

RHCSA/RHCE Egypt ®

32 The /etc/passwd file

صبحي طيبه دد. محم

-eار يويمكن تغيره بقوه مع الخ passwdويمكن تغير الرقم السري للمستخدم عن طريق االمر

.إنشائه عند حساب مستخدم كل في تضمينها يتم ملفات تحوي والتيetc/skel/ /المجلد في الموجودة تلك هي المهمة األخرى الملفات ومن أو الحساب دخولنا تنفيذها عند يتم لإلعداد برمجية نصوص لدينا يكون أن يمكن – التفاعلية الصدفات في رأينا كما – أنه نتذكر أن علينا

يكون ما عادة ،skelفي مجلد محفوظة إنشائها عند المستخدمين حسابات في نسخها يتم التي (skeleton)العظمية الهياكل .منه خروجنا .إلخ للبرمجيات، تحتاجها التي متغيرات النظام ببدء ،الضرورية التنفيذ مسارات معطية للمستخدمين، مناسبة ملفات إنشاء عن مسؤوال المدير

يتم التحكم في اسم المستخدم من اضافه او تعديل او حذف بطريقتين وذلك باستخدام البرنامجuser manger ويكون في البيئة الرسومية(x window environment)

system admin user&groupاو عن طريق (terminal) لفي التر منا system-config-usersوذلك عن طريق كتابة االمر

وذلك باستخدام األوامر التاليةuseradd وuserdel وusermod useraddاالمر -

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

- :etc/default/useradd/تكون مختزنه في الملف توهذه اإلعدادا

useradd-D[option] الخيارات التالية useradd -Dويستخدم مع االمر -e expire date ستخدم تحديد فترة صالحيه الم -g تحديد الجروب الرئيسية للمستخدم -s shell تحديد الشل الخاص بالمستخدم

وتعنى ان المستخدم فعال حتى لو انتهت صالحية الرقم السري الخاص به

انشاء مجلد البريد اإللكتروني الخاص به

لمنع انتهاء الصالحية

ينسخ ملفات االعداد والبدء من هذا المجلد

Page 34: Linux Admin I II

RHCSA/RHCE Egypt ®

33 The /etc/passwd file

صبحي طيبه دد. محم

الوحيد الذي يملك صالحية إضافة وهوuser root ولكي تعمل على إضافة مستخدم البد ان تكون في النظام بالمستخدم الجذري ملحوظه: .root الالتي تتيح لك صالحيات useraddقبل sudoمستخدمين جدد او استخدام االمر

. etc/default/useradd/و etc/login.defs/ هم الخاصة بإنشاء المستخدمين االعدادات اتملفuseradd[options]LOGIN_NAME (username) كاالتي: صيغة االمر

به الخاصة secondary_group وال jana به هو الخاصة primary_group وال jana13مستخدم باسم أنشاءناحيث من المثال السابق 600 الخاص به هو uidوال jana1321983هو السريوالرقم teba هو

يدوية.بطريقه home directory لتعين مسار ال (dhome_dir-)ويستخدم الخيار userdelاالمر -

لذلك .HOME dir المثل به الخاصةملفات اللم يزيل لكنه و etc/passwd/إلزاله مستخدم ولكننا نجد انه أزال بيانات المستخدم فقط من ال .Home directoryإلزالة كل شيء خاص بالمستخدم حتى r– هنستخدم مع

userdel[options]LOGIN_NAME (username) -صيغته كاالتي: usermodاالمر -

وصيغته كاالتي: etc/passwd/يعتبر من أكثر األدوات التي تعمل على التغير في الملف usermod[options]LOGIN_NAME (username)

كاالتي: tebaالى اسم جديد وهو jana3سوف نقوم بتغير اسم المستخدم القديم من usermodمثال على االمر

option الشرح -c comment فة تعليق عليه او إضا ميستخدم إلضافة بيانات أخرى على اسم المستخد

-e expire_date تحديد فترة صالحية اسم المستخدم -g group_name_or_NO. تحديد الجروب الرئيسي للمستخدم(primary group) -G group_name_or_NO. تحديد الجروب الثانوية األخرى(secondary group)

-m يعمل على انشاء ال home الخاص بالمستخدم إذا لم توجد -M اليعمل على انشاء المستخدم من غير home الخاصة به

-p password إلنشاء الرقم السري الخاص بالمستخدم وال يفضل استخدامه إلمكانية رؤية الرقم السري -s shell_name لتحديد الشل االفتراضي الخاص بالمستخدم

-u uid تحديد ال UID 999الى 500الخاص بالمستخدم ويكون من -r إلنشاء مستخدم من النوعsystem user (service user)

option الشرح-l new_username من القديم الى الجديدتغير اسم المستخدم

-c comment او إضافة تعليق عليه ميستخدم إلضافة بيانات أخرى على اسم المستخد -e expire_date تحديد فترة صالحية اسم المستخدم

-g group_name_or_NO. تحديد الجروب الرئيسي للمستخدم(primary group) -G group_name_or_NO. تحديد الجروب الثانوية األخرى(secondary group)

-m النقل يعمل على home مع مالى مكان اخر وتستخدالخاص بالمستخدم-d -p password إلمكانية رؤية الرقم السري إلنشاء الرقم السري الخاص بالمستخدم وال يفضل استخدامه -s shell_name لتحديد الشل االفتراضي الخاص بالمستخدم

-L لغلق الحساب الخاص بالمستخدم -U إللغاء الغلق الذي احدثه الخيار–L على حساب المستخدم

-u new userid لتغيرuidالخاص بمستخدم معين

Page 35: Linux Admin I II

RHCSA/RHCE Egypt ®

34 The /etc/passwd file

صبحي طيبه دد. محم

chpasswdاالمر -طريق عمل ملف ويتم ذلك عن chpasswdاردت ان تعمل تغير االرقام السرية لمجموعه من المستخدمين فبإمكانك ذلك عن طريق االمر إذا

انه يقرا ثم رالن فائدة االم user_name: passwordالخاص بهم ويكون صيغة الملف كاالتي السريفيه كل المستخدمين المراد تغير الرقم حتى تكون الكتابة مشفره eواستخدام الخيار (cMD5 , -cNONE-)لتحديد نظام التشفير له مثال cاستخدام الخيار نويمك تحديث.يعمل

نلثالثة مستخدمي السريفي المثال السابق قمنا بتغير الرقم passwdاالمر -

ليكون مصدر stdin--ويمكن أيضا استخدام الخيار يعمل على تغير الرقم السري للمستخدم ويكون اما مستخدم عادى او مستخدم جذري (echo“1321983”|passwd--stdin#)االدخال ملف

chageاالمر -ويستخدم في لعرض معلومات عن الرقم السري –lويستخدم معه الخيار تستخدم في التعديل في عمر صالحية الرقم السري لمستخدم معين

[options]chage[LOGIN] كاالتي وصيغته etc/shadow/التعديل في الملف

(password aging)لتعين عمر الصالحية الخاصة بالرقم السري chageوفيما يلي بعض المعامالت المستخدم مع االمر

إلجبار المستخدم جنا على تغير الرقم السري عند الدخول الى نظام التشغيل jana0d–chageويستخدم االتي (chage-luser01)لعرض معلومات عن عمر الرقم السري لمستخدم معين l-ويستخدم الخيار

chو chshاالمر - chsh لتغير الشل

chfn تستخدم لتغير البيانات الخاصة بمستخدم معين والتي يقوم بعرضها االمرfinger وتكون مسجله في/etc/passwd .يعات كثير الغت استخدامهاألمان فان توز ةنتيجولكن ويعتبر من األوامر التي تستخدم في جلب معلومات عن مستخدم معين fingerاالمر

Page 36: Linux Admin I II

RHCSA/RHCE Egypt ®

35 Using Linux Groupsاستخدام المجموعات

صبحي طيبه دد. محم

# finger rich Login: rich Name: Rich Blum Directory: /home/rich Shell: /bin/bash On since Thu Sep 20 18:03 (EDT) on pts/0 from 192.168.1.2 No mail. No Plan. #

USING LINUX GROUPSاستخدام المجموعات

مثل المستخدم IDتتحكم في مجموعه من المستخدم وتحديد الصالحيات لهم فأننا نستخدم الجروب ونجد هنا ان كل جروب له لكي- مقدمه: .الرقم التعريفي للجروب GID (group identifier number)ويسمى

كما يمكن إضافة عدد غير أي الجروب األساسية primary group عند انشاء المستخدم فانه بطريقه اليه ينشا له جروب وتسمى الونفس لهم هالمستخدمين المندرجين تحت جروب واحد كل (secondary group)محدود من الجروب األخرى وتسمى الجروب الثانوية

.(secondary group)جروب ثانويه 31لينكس ان يمتلك المستخدم لغاية حالملفات. ويتياإلمكانية في مشاركة etc/gshadow/في السريوملفات الرقم etc/group/ملفات االعداد الخاص بهم موجودة في

The /etc/group file

GIDعباره عن قائمه تحتوي على أسماء جميع الجروب حيث يستخدمها النظام لكي يعرف الخاص بالمستخدمين وهو etc/shadow/مثل ويمكن ان يزيد حجم الملف او GID بأسماء الجروب وكما ذكرنا من قبل ان جنو/لينكس ال يتعامل مع األسماء مباشره ولكنه يتعامل مع ال

UIDعلى معلومات أخرى يحتاجها النظام غير يحتويونجد ان هذا الملف Directory services باليمكن استبدالها

-نجد ان الملف مكون من عدة حقول الترتيب التالي: 1- The group name أسماء الجروب المسجلين على نظام التشغيل 2- The group password الباسورد المخصص للجروب 3- GID (group ID) number الرقم التعريفي بالجروب 4- The list of user account قائمه بأسماء المستخدمين

المستخدم من اضافه او تعديل او حذف بطريقتين المجموعة التي ينتمي اليهايتم التحكم في وذلك باستخدام البرنامجuser manger ويكون في البيئة الرسومية(x window environment)

system admin user&groupاو عن طريق (terminal) لفي التر منا system-config-usersوذلك عن طريق كتابة االمر كما ذكرنا من قبل مع المستخدمين. وذلك باستخدام األوامر التاليةgroupadd وgroupdel وgroupmod

upaddgroاالمر - يستخدم إلنشاء مجموعه جديده وتكون صيغته كاالتي:

groupadd[options]group_name group idلتحديد ال g–ويستخدم system groupإلنشاء r–يستخدم معه الخيار

groupmodاالمر - يستخدم للتعديل في مجموعه معينه وتكون صيغته كاالتي:

groupmod[options]group_name

groupmod-Ggroup_nameuser_name# إلضافة مستخدم الى الجروب كاالتى: Gيستخدم الخيار groupdelاالمر -

يستخدم لحذف جروب معين gpasswdاالمر -

يستخدم إلضافة المستخدمين او ازالتها الى المجموعات

option الشرح -n new_groupname لتغير اسم المجموعة من القديم الى الجديد

-p password إلنشاء وتغير الرقم السري الخاص بمجموعه معينه -g GID_NO. لتغيرgid الخاص بمجموعه معينه

Page 37: Linux Admin I II

RHCSA/RHCE Egypt ®

36 Using Linux Groupsاستخدام المجموعات

صبحي طيبه دد. محم

التي األجهزة متعددة األنظمة فيأما .وحيد واحد لجهاز المحلية باإلدارة يتعلق هنا ذكرناه ما والمجموعات، المستخدمين بإدارة يتعلق فيما معلومات أنظمة“ باالسم عام بشكل تعرف والتي األنظمة، هذه .المستخدمين لمعلومات مختلف إدارة نظام يستخدم المستخدمين، تتشارك المستخدمين معلومات ،لتخزين بيانات قواعد تستخدم NISو +NISو LDAPمثل، “ Information Systems Network الشبكة

وفي .فيها إليه الرجوع يتم الذي المكان وهي االخرى، العمالء وأجهزة البيانات قواعد فيها تخزن خوادم باستخدام فعال بشكل والمجموعات الموارد تقديم الممكن من يجعل مما الموارد، ومناطق الجهاز/النطاقات أو/و الهيكليات عن إضافية مفاهيم األنظمة هذه تتضمن الوقت، نفس

.مناسب بشكل المؤسسة في واستخدامها الناتج هو تحويل كلمات المرور نويكو pwunconvنكتب االمر التالي passwdالى الملف shadowمحتويات الملف لتحويل- :ملحوظهويستخدم عند passwdواالعتماد فقط على الملف shadowسيتم الغاء الملف بالتالي passwdالى الملف shadowفي الملف الموجودة

pwconvالحال كما كان عليه سابقا اكتب االمر عولإلرجانقل ملف المستخدمين من نظام الى اخر pwconv يستخدم إلنشاء الملفshadow من الملفpasswd

pwunconv يستخدم إلنشاء الملفpasswd من الملفpasswd+shadow grpconv يستخدم إلنشاء الملفgshadow من الملفgroup

grpunconv يستخدم إلنشاء الملفgroup من الملفينgroup+gshadow رقم ايضا لديها الملفات والمجلدات. اما groupid secondaryامورب، primarygroupid، وuseridلديه (process)عملية يأ ملحوظه:ل يتفعب ما لتقوم عملية حقوقتحديد ما هي معا ل العمل هذه . كلmode bits 12و ،owner groupid و ،(owner userid) مالكال العضوية والمجلدات.تنفيذ الملفات والقائمة، القراءة والكتابة و أشياء مثل ؟ mode bit 12ما هو ال

1-user bit : بت (القراءة والكتابة والتنفيذ) يعطى حقوق للعمليات التي تحمل نفس 3عباره عنuserid مثل ملفات 2-group bit : بت (القراءة والكتابة والتنفيذ) يعطى حقوق للعمليات التي تحمل 3عباره عنprimary groupid او

secondary groupid يساوى ال groupid للملف 3-other bit :بت (القراءة والكتابة والتنفيذ) يعطى حقوق للعمليات االخرى التي ال تحمل نفس 3اره عن عبuserid اوgroupid 4-special bit : بت ( 3عباره عنsuid وsgid وsticky bit (

فحص المستخدمين على جنو/لينكس

idاالمر - وتكون صيغته كاالتي:الجروب التي ينتمي لها) وأسم gidو uidيستخدم إلعطاء معلومات عن المستخدم (

id[OPTION][USERNAME]

التي تأتى معه تارابعض الخي

whoamiاالمر - سم المستخدم الحالي في المحثاولكنه يعتبر غير مفيد ألنه يعطيك يعرض اسم المستخدم الحالي على نظام التشغيل

usersاالمر - (who logon now)لعرض جميع المستخدمين الموجودين االن على نظام التشغيل

في البيئة الرسومية حيث يعتبر النظام ان (terminal) لشاشات تير منا 5تكرر خمس مرات وذلك ألنه يستخدم elvisنجد هنا ان االسم (session)جزء منفص عن االخر كأنه (terminal)كل تير منال

primary group الخاصة بال gid لعرض ال

التي ينتمي لها الخاصة بكل المجموعات gid لعرض ال

uid لعرض ال

gidو uidلعرض األسماء فقط من غير

Page 38: Linux Admin I II

RHCSA/RHCE Egypt ®

37 Using Linux Groupsاستخدام المجموعات

صبحي طيبه دد. محم

wاالمر -والعمليات التي يقومون ولكن بمعلومات أكثر عن المستخدمين usersلعرض جميع المستخدمين الموجودين االن على نظام التشغيل مثل االمر

w[-h | -s | -f][USERNAME]# كاالتي: وتكون صيغته بها االن

whoاالمر - wاالمر ليعتبر مث

نفعل ذلك ولكيالى اخر مفي عالم جنو/لينكس من الممكن التنقل من مستخد التنقل بين المستخدمين في البيئة الرسومية نستخدم خروج للمستخدم وندخل بمستخدم اخر كاالتي

استخدام االمرsu اوsudo والذي يتيح لنا التنقل بين المستخدمين

su[OPTION][-] [USER [ARG]...]

من الظهور fromلمنع الحقل

لعمل الحقول األهم فقط

لمنع ظهور أسماء الحقول

Non-login shellالمستخدم دخل على الشل من النوع

أسماء المستخدم الذين دخلوا على نظام التشغيل

التي يوجد عليها المستخدم tty اسم ال

مستخدمتوقيت دخول ال الوقت الذي مضى على اخر

لنااستخدام للتر م

رالزمن الذي قضته جميع العمليات في استخدام البر وسيسو

الزمن الذي قضته العملية الحالية في استخدام البر وسيسوراسم العملية التي تعمل االن عن طريق المستخدم

login shellالمستخدم دخل على الشل من النوع –مع الخيار

Page 39: Linux Admin I II

RHCSA/RHCE Egypt ®

38 Decoding file permissions صالحيات الملف

صبحي طيبه دد. محم

نستخدم االتي ونالحظ تغير عالمة المحث من $ الى # (root user)لجعل المستخدم الحالي على النظام هو المستخدم الجذري

الجروب األساسية نستخدم االمر االتي وجعل جروب أخرى هي (primary group)لتغير الجروب األساسية للمستخدم primary groupللمستخدم الى secondary groupأي تحويل

newgrp[GROUP] newgrp=sg

Decoding file permissions الملف صالحيات

والتي تعرض جميع ls –lالوقت لمعرفة التشفير والصالحيات وقبل ذلك كنا نستخدم االمر والجروب حان االن بعد المعرفة عن المستخدمين المعلومات عن الملف منها معلومات عن الصالحيات الخاص بالملف.

له صالحية التعامل معه) التحكم فيه ومن هذه الذييحتوي على ثالث خصائص التي تتيح للمستخدم (نجد ان أي ملف في جنو/لينكس (permission)الصالحيات -3 (group owner)المجموعة المالكة للملف -2 (user owner)المستخدم صاحب الملف -1الخصائص

كل أن بالنا في نبقي بينما منها، لكل بإعطائها نرغب التي الصالحيات هو والمجلدات الملفات حالة في به التحكم علينا الذي اآلخر والشيء (file)وترمز على ان نوعه ملف (-)حيث تعود األول من جهة اليسار الى (rwxrwxrwx-)الصالحيات من سلسلة له يكون أن يمكن ملف

-وفيما يلي كل الرموز وما تدل عليه من نوع: - for files تشير على انه ملف d for directories تشير على انه مجلد l for links تشير على انه لينك للملف c for character devices خاص بالهاردوير b for block devices خاص بالهاردوير n for network devices خاص بالهاردوير الشبكات

تعود الى مالك الملف والتي تليها تعود الى المجموعة التي ينتمي اليها المستخدم مالك الملف واألخيرة للمستخدمين االخرين [rwx]والتي تليها xفي المجلدات يشير التصريح execute – xوتنفيذ write – wوكتابه read – rقراءة صالحيات يمكننا إعطاء حالة، كل وفي cdعبر امر المجلدة ذلك إلى الوصول إمكانية إلى

envالتنقل الى مستخدم اخر مع المحافظة على قيم المتغيرات

Page 40: Linux Admin I II

RHCSA/RHCE Egypt ®

39 Changing Permissions كيفية تغير الصالحية

صبحي طيبه دد. محم

تتلخص في االتي او مجلد لذلك صالحية أي ملف

:األوامر التالية لدينا بها ملف، أي الصالحية الخاصة أو مجلد إلى الوصول حقوق لتغيير 1-chown: وصيغته مالك الملفاو المجموعة ال متغير المستخد chown[user] [:group]file... 2-chgrp: وصيغته تغير المجموعة المالكة للملف chgrpGROUPFILE... 3-chmod: تغير صالحيات محدده(rwx) للملف

وتعنى ان التغير سوف يحدث للمجلد وما تحتويه من مجلدات ينفذ االمر على الملفات والمجلدات الفرعية والذي R–تقدم األوامر أيضا الخيار (recursive)داخله

Changing Permissions كيفية تغير الصالحية

-وصيغته كاالتي: يستخدم لتغير الصالحية سواء للملفات او المجلدات chmodاالمر #chmodoptionsmodefilename

كاالتي chgrpو chownو chmodالذين يملكون صالحيات األوامر

الطريقة النصية 1-symbolic method (mode)ويوجد طريقتين لتغير الصالحية

2-numeric method الطريقة الرقمية symbolic methodالطريقة األولى

-المعامالت األتية كما في الجدول التالي لعملها: واالدق وتستخدمتعتبر األسرع u ,g ,o ,a (المستخدم + الجروب + االخرين) تعنى على الترتيب صالحية المستخدم , الجروب , االخرين , الكل

المعامالت الحسابية المستخدم وتعنى على الترتيب اضافه , انقاص , تساوى, = -+ , r ,w ,x وتعنى على الترتيب قابل للقراءة , قابل للكتابة , ملف تنفيذي

Page 41: Linux Admin I II

RHCSA/RHCE Egypt ®

40 Changing Permissions كيفية تغير الصالحية

صبحي طيبه دد. محم

s ,t تشرح فيما بعد

[ugoa…][[+-=] [rwxXstugo…]

og-rوتكون صيغتها كاالتي يعنى الغاءه صالحية القراءة لكل من االخرين والمجموعة المالكة للملفوهذا المثال (who(u+g+o+a) operator(+ - =) permission (r+w+x+S+t))

الصالحية المعطاة. نوع rو صالحيه إلغاء-و تعنى المجموعة المالكة للملف gو وتعنى االخرين oحيث كما قلنا بعض األمثلة األخرى:

o chmod ugo+r file: والجروب واالخرينإعطاء صالحية القراءة للملف لكل من المستخدم o chmod o-wx dir: الغاء صالحية الكتابة والتنفيذية للمجلد لكل من االخرين o chmod --reference file1 file2 عمل نسخ للصالحيات الموجودة في الملف األول وإعطاء نفس الصالحيات للملف الثاني

--reference وتعنى نسخ صالحيات ملف الى ملف أخرى ويعتبر من الخيارات المتاحةoption

numeric methodالطريقة الثانيةوالرقم الثالث groupوالرقم الثاني يعبر عن الجروب userوفى هذه الطريق تستخدم ثالث ارقام حيث ان الرقم األول يعبر عن المستخدم

.otherيعبر عن االخرين .eتعبر عن التنفيذية 1و wتعبر عن الكتابة 2و rتعبر عن القراءة 4وكل رقم عباره عن مجموع الصالحية حيث

user, لل r , wإعطاء صالحية وتعنى 2+4عباره عن حاصل جمع وهو user يمثل المستخدمين 6حيث رقم group لل الصالحياتوهو عباره عن الغاء جميع group يمثل الجروب 0حيث رقم otherعباره عن الغاء جميع الصالحيات لل وهو other االخرين يمثل 0حيث رقم

ونقوم تالصالحياونجد بداخلها propertiesلتغير صالحية أي ملف من البيئة الرسومية نضغط بالماوس على الملف ضغطه يمين ونختار بالتعديل فيها كما نريد.

Page 42: Linux Admin I II

RHCSA/RHCE Egypt ®

41 Default File PERMISSIONS (umask) الصالحيات االفتراضية

صبحي طيبه دد. محم

DEFAULT FILE PERMISSIONS (UMASK) الصالحيات االفتراضية

لكل من بت ،والتنفيذ، والكتابة، القراءة :ملف العاديال والتي تساوى صالحية، بت تسعة وهو مكون من ،umask سمة تسمى لديها عملية كل(user) و(group)، و(other) كتابة ويتم umask من النوع ثالثيكرقم(octal digit) األمر مثل chmod

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

ملف او مجلد تم انشائه. ألي والتي يتم توريثها هوا امر لوضع الصالحية االفتراضية umaskاالمر .umaskوهذه الصالحية نتيجة االمر 664 (--rw-rw-r-)صالحيات افتراضيه وهيا يأخذحيث نالحظ ان عند انشاء ملف فانه

ويستخدم أيضا في تغيره. umaskاالمر ولكن لمعرفة الصالحية االفتراضية التي يعطيها النظام عند انشاء الملفات باستخدام -االتي: وتكون ك )لا اليا بمجرد انشائها وكذلك المجلدات (الوضع االفتراضي الخاص بالكير نصالحيه افتراضيه تنش اهولذلك فان الملفات ل

بالطريقة العددية files)( umask-666للملفات الصالحيات ما عادا حيث من الوضع الطبيعي للملف ان يكون فيه كل 666 وضعال يعطيه يريد أن، فإنه بإنشاء ملف جديد لينكسيقوم عندما

ه أي الحدود روس او أداة تجسس الوضع األقصى لالتنفيذ وذلك نوع من األمان حتى ال يكون الملف به في بالطريقة العددية directory)( umask-777للمجلد يكون فيه كل الصالحيات الوضع حيث من الوضع الطبيعي للمجلد ان 777 وضعال يعطيه يريد أن، فإنه بإنشاء مجلد جديد لينكسيقوم عندما

األقصى له أي الحدود ثم الى االوكتال binary من الجدول التالي عن طريق تحويلها الى نظام ال 777ولفهم طريقة الكاتبة الى الطريقة العددية أي

umask 022# -كاالتي: umaskعن طريق default permissionولتغير الصالحيات االفتراضية umaskالطريقة حساب الصالحية االفتراضية والتحكم فيها عن طريق

حساب الصالحية االفتراضية للملفات

Page 43: Linux Admin I II

RHCSA/RHCE Egypt ®

42 special permission حيات االخرينصال

صبحي طيبه دد. محم

حساب الصالحية االفتراضية للمجلدات root 022وللمستخدم الجذري 002االفتراض للمستخدم العادي بيكون umask ال

775وللمجلد 664 للملف-وهذا يعنى كما ذكرنا شرح توضيحي له ان الصالحيات تكون في المستخدم العادي كاالتي: 755وللمجلد 464للملف :(root user)وللمستخدم الجذري

SPECIAL PERMISSION صالحيات االخرين

SUID, SGID, Sticky bit SUID Set user ID SGID Set group ID Special permission Sticky bit

1-SUID user access)-(multi اخر userفي بعض األوقات تجد أنك تريد عمل بعض األشياء بصالحيات clientأحيانا عندما تعمل على

اعطى للمستخدم إذاألنه root الوال يستطيع التعديل فيه اال etc/shadow/يستخدم لتغير الباسورد ومحتواه يكون في passwd االمرمثال specialالعادي إمكانية التعديل فيه فمن الممكن ان أي شخص يعدل في بيانات شخص اخر ولحل هذه المشكلة انا جعلت له صالحيه خاصه

permission من النوعSUID ومعنى ذلك انه عند تنفيذ االمرpasswd يتنفذ بصالحيات ال root أي يمكن ان يعدل فيه ولكن على يستعمل هذا االمر. الذيالمستخدم الحالي فقط

2-SGID SUIDمثل xالن صالحيات المستخدم ال تحتوي على صالحية groupيأخذ صالحيات ال executeبالنسبة للملف التنفيذي -aفيها نوعين

(x)صالحيات الجروب يعنى مضاف اليها صالحية التنفيذ نفس الصالحيات الخاص به هي لكن b-بالنسبة للمجلد directory معناه ان أي مجلد ينشأ داخل المجلد الذى يحمل صالحيهSGID االخرى تأخذ نفس هي

بالمجلد االم. الخاص owner نفس ال سوف يكونالخاص بها owner الالصالحيات الخاص بالمجلد االم يعنى 3-sticky bit

كان يستخدم زمان لما كانت اإلمكانيات قليله معناه لما التطبيق ينفذ بعد ما ينفذ يسبها داخل الذاكرة للسرعة بالنسبة للملف-aفيها نوعين b-الوحيد الى من حقه مسحه وتعديله بغض النظر معناه ان أي مستخدم يضيف ملف في هذ المجلد يبقى هو بالنسبة للمجلد

عن صالحية المستخدم على هذا المجلد. الخاص بالعملية uidنفس رقم uidيحصل على رقم الملف أو المجلد فان هذا، الملفات أو المجلدات بإنشاء (process)تقوم العملية عندما

.عمليةالرئيسي لل groupid كما groupid ونفس الذي قام بإنشائه،

سيكون لها نفس المجلد الفرعي أو ملف الجديدال فان ،groupid bit-setمع داخل المجلدجديد مجلد فرعي أو ملف جديد إذا تم إنشاء ولكن groupidالجديدة المجلدسوف يرث و، المجلد الذي يحتوي عليه كما groupid-set

Page 44: Linux Admin I II

RHCSA/RHCE Egypt ®

43 Network Based User Models

صبحي طيبه دد. محم

طريقة عملهاPermission U G O r w x r w x r w x

s S s S t T s = SUID + X S=SUID s = SGID + X S=SGID t = sticky bit + X T= sticky bit #chmod u+s filename للمستخدم SUID معناه تغير للملف الى #chmod g+s filename/dir symbolic #chmod +t dir SUID SGID Sticky bit 4 2 1 numeric #chmod 4777

special permissionاالولى خاصه بال 7[root@localhost ~]# ls -l /usr/bin/passwd -rwsr-xr-x. 1 root root 27012 Aug 22 2010 /usr/bin/passwd

permissionمثال على موضوع الصالحيات $ mkdir testdir $ ls -l drwxrwxr-x 2 rich rich 4096 Sep 20 23:12 testdir/ $ chgrp shared testdir $ chmod g+s testdir $ ls -l drwxrwsr-x 2 rich shared 4096 Sep 20 23:12 testdir/ $ umask 002 $ cd testdir $ touch testfile $ ls -l total 0 -rw-rw-r-- 1 rich shared 0 Sep 20 23:13 testfile $

NETWORK BASED USER MODELS

يتم شرح الكل بوضوح: في هذا نعتمد على التطبيقين التاليين ولكن سوفauthconfig-tui A menu-based configuration utility for network authentication clients authconfig A command-line based version of authconfig-tui

- NSS(Name Service Switch) NSSتدعى ، المختلفة (Naming Service) تسميةالخدمات العديد من توفر ريد هات آلية مرنة للغاية الختيار بين

.)تحليل االسم( name resolution ية عمل الكيففي تحكم المالرئيسي الملفهو etc/nsswitch.conf/والملف

Page 45: Linux Admin I II

RHCSA/RHCE Egypt ®

44 LDAP

صبحي طيبه دد. محم

قاعدة البيانات هنمالمصدر الذي سوف يأخذ (source)المصادر -2 (date base)قواعد البيانات -1 نجد انه يتكون من حقلين passwd – shadow – group – hosts مثل (:) كولونالعلى الجانب األيسر من التي توجد سماء االهي (database)قواعد البيانات -1 .أنواع مختلفة من األشياء التي تحتاج إلى تسمية يهو .بياناتقاعدة ال من قبلالجانب األيمن الستخدام التي توجد على العناصر هي (source)المصادر -2

ترتيب الجانب األيمن، وفقا للالموجودة في ع على المصادر فانه يطلالجانب األيسر، فيأي وقت يحتاج النظام للبحث عن سجالت لألشياء في .المحدد، للعثور عليهم

Database قواعد البيانات Passwd – shadow – group – hosts – automount لقد تم شرحهم فيما قبل

وهو (file)يسجل فيه أسماء المستخدمين ويأخذ هذه البيانات مثال من ملف الذيعباره عن قاعدة بيانات passwdحيث مثال الملف /etc/passwd وقد يأخذه من مصدر اخر مثال مثلldap.

Source المصادر 1-file أي ان البحث هيكون من ملف مثال عباره عن ملف/etc/passwd 2-nis system)(network information وتستخدم على نطاق واسع على أنظمة 1980 عام في أنشئUNIX. ويعمل السهل تثبيتهمن و ،

.معظم أنظمة تشغيل الشبكة في استخدمبانسجام مع أنظمة لينكس ويونيكس بشكل عام، وقد 3-nisplus نسخه مطوره منnis ولكن مع بعض التحسينات في نظام األمان والتي تشملhanismpublic key mec 4-ldap )Lightweight Directory Access Protocol( هو based naming protocol-standard network لكثير وتم استخدامه

.من أنظمة التشغيل هي DN (Distinguished Name)والقاعدة .في بنية شجرة التي يمكن البحث فيها (directory service)يتم ترتيب إدخاالت الدليل

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

5-sss (system security service) المصادقةمختلفة وموفري هوياتالخدمة التي توفر الوصول إلى هي(authentication provide) قاعدة البيانات االفتراضيهو مصدر SSSDفي ريد هات، (authentication configuration tool) عند استخدام أداة تكوين المصادقة

.للحصول على معلومات حساب المستخدم LDAP الخدمةتكوينها عندما يختار المسؤول 6-hesiod ماساتشوستس للتكنولوجيامشروع من معهد(MIT)، من آلية خدمة أسماء الحقول على اإلنترنت ةداستفقائم على اال(DNS)

.لنشر أنواع أخرى من السجالت، مثل معلومات المستخدم etc/nsswitch.conf/كيفية البحث واستخدام الملف

ويتم البحث ، المقابل للسجل المراد البحث فيه sourceفي الحقل nsswitch.confفي الملف عند البحث عن السجالت، يتم البحث .من اليسار إلى اليمين، حتى يتم العثور على السجل

يحتوي على االتي: etc/nsswitch.conf/ان الملف على سبيل المثال، افترض

الملف هيكون هذه الحالة في (files)نظر أوال في الملفاتتلينكس سوف فان ،Janaالسم المستخدم passwd السجل فيعندما تبحث /etc/passwd مع سيرفر أنها سوف تتشاوريجد الناتج فيه، فإذا لم LDAP يحاول في إذا لم يجد الناتج فيه، بعد ذلك سnis.

، فإنه يوجدلم . إذاnisمع ، فإنه يحاول يوجدلم فإذا etc/hosts/مع الملف أوال يتشاور فانه سم مضيف، العن عنوان شبكة مثال عندما تبحث .DNSيستخدم خدمة

(Lightweight Directory Access Protocol) (LDAP)باستخدام العمل مع المستخدمين؟ Directory خزن أجزاء صغيرة من المعلومات.ت الذىهو مجرد قاعدة بيانات متخصصة

Directories تكتب من مصدر واحد وتقرا من عدة مصادرتميل إلى أن (write-once/read-many systems) خالفا لقواعد البيانات تكتب من اكثر من مصدر وتقرا من مصدر واحد.التي تميل إلى أن (relational databases)األخرى المستخدمة

Directories هو دليل التليفونات على سبيل المثال، . الدالئل شائعة في عالمنا اليوميتعتبر منdirectory. من الشركات لديها أدلة متخصصة لتبحث عن معلومات الموظف أو تخزين البيانات. العديد

LDAP

وكانت النتيجة بروتوكول .بضع جماعات مشروعا إلنشاء دفتر هاتفي في جميع أنحاء العالم بدأت 1980في عام - Directory access protocol (DAP) باسم بروتوكول المعروفX.500 كانت معقدة ويستهلك مصادر كبيره من االله والتي.

TCP / IP بروتوكول ألجهزة الكمبيوتر المكتبية باستخدام DAPمن باعتبارها نسخة خفيفة LDAPفي نهاية المطاف تم إنشاء ولكن .المركزي X.500 الخادموالتحدث إلى DAPتستخدم لتحويل الطلبات إلى بروتوكول ldapdخدمة الخادم المستخدم الوقتفي هذه

.DAPبدال من (ldap gate)في جامعة ميشيغان أن الغالبية العظمى من حركة المرور كانت تمر من خالل هذه أخيرا أدركت مجموعة-، والقضاء على الحاجة إلى TCP / IPعلى شبكة ليعمل (slapd (standalone LDAP Server)) مستقال LDAPخادم لذلك استخدم .األصلي X.500ل بروتوكو

،OpenLDAP بما في ذلك ب (Standalone ldap server)المستقلة LDAPخوادم مناليوم هناك عدد كبيرNetware Directory Services ،ومكونات Active Directory ،Red Hat Directory Server

Page 46: Linux Admin I II

RHCSA/RHCE Egypt ®

45 The Network Information Service (NIS)

صبحي طيبه دد. محم

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

ربما يستخدم و.ال توجد إجابة فانه (attribute) ولكن إذا لم يكن الدليل استخدام تلك السمة UIDسبيل المثال قد يطلب عميل واحد قيمة على متغيرات الخوادم االخرى الجتياز Mapping ولذلك يمكن اعداد ال .فال يعطيه اجابه ايضا uidمن بدال uidnumber ااسمه خادم سمةالهذا

:القطع التالية من المعلومات (admin)مسؤولالمركزية، يجب الحصول من الللمستخدمين LDAPلتكوين نظام العميل الستخدام

1- Base DN يتم وضعووالتي تعنى االسم المميز distinguished name والمعروفة باسم اسم فريد له (directory server) دليلال خادم إدخال في كل

.شجرةلل في التسلسل الهرمي كافة اإلدخاالتBase distinguished name (Base DN) شجرةنقطة دخول إلى فريد لالسم الا هو قاعدة االسم المميزوالتي تسمى.

"ou=People,dc=mycompany,dc=com"او "dc=example,dc=com" مثل Base DN وفر لكي الخادم عن لالمسؤو فإن للدخول الى التسلسل الهرمي للشجرة.

2- Server FQDN IPعنوان استخدام، يمكن NISمع بعض البروتوكوالت مثل .يجب توفير عنوان لهذا النظام ،(remote network) للتواصل مع نظام بعيد

هذا مهم بشكل خاص و .Fully Qualified Domain Name (FQDN)يجب عليك توفير LDAPمع .بعيداللنظام لأو اسم المضيف .لتشفير االتصاالت TLSعند استخدام

3- CA Certificate تمرير وهذا يشمل. TCP/IPفي االتصال بالشبكة أي استخدام شبكه غير مشفره من النوع LDAP TCP/IP plain textيستخدم ،افتراضيا

فيرالتش إذا قمت بتفعيلوللهاكرز. بالنسبة معرفة كلمات المرور من السهل جدا بعد ذلك وهو ما سيكون كلمات المرور عبر الشبكةمن أيTLS تكون آمنة بأكملها االتصاالت، فإن.

يستخدم يوالذ (public key)المفتاح العام و الخاص به FQDN بما في ذلك هوية تنص على يالت (CA Certificate) ادةلديه شه كل خادم .التشفير في

.authenticationمن اجل LDADالذي يحتاج إلى تشغيل عند استخدام (client daemon)، ليس هناك خادم العميل NISعلى عكس serverو Base DNويتم تخزين .، وأدوات العميل المستخدمlibrary callsملفات االعداد، و لتوفير OpenLDAPريد هات تشمل الحزم

URL في الملف/etc/openldap/ldap.conf وCA Certificate في المجلد/etc/openldap/cacerts etc/sssd/sssd.conf/ يتم تخزين االعداد في الملف SSSDعند استخدام

.ldapsearchو ldapmodifyو ldapaddوذلك عن طريق االمرين LDAP-PACKAGEهو LDAPمع تخدمةأشهر االدوات المسTHE NETWORK INFORMATION SERVICE (NIS)

تجميع هذه البيانات من . ويتمpasswd ،groups ،host recordلديه قواعد بيانات للمعلومات مثل الذي ypservالخادم يعمل على تشغيل /etc/passwd، /etc/group، /etc/hosts والملفات التي على الخادمNIS باستخدام المصطلح .NIS ،يشار قواعد البيانات المختلفة فإن

.NIS mapعليها كأنها NIC client يعمل على تشغيل البرنامجypbind الملف وعندما يكون/etc/nsswitch.conf على جهاز العميل يشير إلى أنNIS هو

طلب السجل المطلوب عبر الشبكةب NIS Clientمصدر لنوع معين من السجل، سيقوم .، أو الرد أنه ال يوجد مثل هذا السجل لهذا الطلبان يستجيب للطلب سواء بالقبول ان السجل موجود NIS Serverوينبغي على

يمكن تشغيلها مع أوامر السيرفس، .يحمل نفس االسم serviceعند تشغيل الجهاز، ويتم تنفيذها باعتبارها ypbindعادة ما يبدأ األمر .chkconfigوتكوينها ليبدأ تشغيلها تلقائيا مع

NICمع الخادم NIC serverو NIC clientيتم اعداد كل من NIC clients التي لها اسم الخادمengineering سوف يعمل على توجيه االستعالمات الىNIC server والذى يسمىengineering

marketingوليس الذى يسمى

Page 47: Linux Admin I II

RHCSA/RHCE Egypt ®

46 The Network Information Service (NIS)

صبحي طيبه دد. محم

domain_nameوهذا االسم يتم قراءته او كتابته عن طريق االمر etc/sysconfig/network/يتم اعداده في الملف NIC domainالخادم الذي يستخدمه. NIC server يتم اعداده من خالل الشبكة عن طريق ال NIC client وال

NIC server مجموعه من عناوين الشبكة الخاصة بالعمالء يمكن اعداده ب(client address) التي من المفروض ان تجيب طلباتهم. وهذه ypbindو ypservمثل ypومعظم األوامر المستخدمة دائما تبدأ ب etc/ypserv.conf/العناوين يتم تكوينها في الملف كاالتى: etc/yp.conf/ويوضع في الملف serverو Domainحيث هنا يجب توفير معاملين

domain example.com server 172.168.1.1 (LDAPأي ربط األجهزة بخوادم األسماء مثل (بطريقه سهله طريق اعداد المستخدم المركزي nsswitch.conf والتي تعمل على إضافة البيانات الى الملف system-config-authenticationوذلك عن طريق استخدام األداة

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

:اشة التاليةتظهر الش systemadminauthenticationاو system-config-authentication لعند كتابة االمر في التر منا عند الضغط علىlocal accounts only تنسدل قائمه فيها جميع خوادم األسماء الممكنة نختار هناLDAP تظهر

عند استخدامldap نجد الثالث حقول التي يطلبهاBase DN واسم ال server ونجدTLS المستخدم في تشفير االتصال حيث انLDAP يستخدمPLAIN TEXT في االتصال ونوع التفويض ولزيادة التشفير نختارkerberos password ولكن إذا لم تريد نختار

LDAP password تعتبر شاشه متقدمة في تشفير االتصال المستخدم في االتصال

Page 48: Linux Admin I II

RHCSA/RHCE Egypt ®

getent االمر 47

صبحي طيبه دد. محم

System-config-authentication سوف تتحول تلقائيا الى الخادمSystem Security Services Daemon (SSSD) . SSSD بالبحث ويلتقط معلومات المستخدم من سوف يقومLDAP وهذا يعني أنه ما زال بإمكانك .الخاص بأوراق اعتماد العميل والتوثيق

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

، الخ).LDAP ،NISالمستخدم من خادم واحد من أي نوع ( متعددة من نفس النوع أو من أنواع مختلفة من مزود الهوية. خوادم، يمكنك إنشاء SSSDمع

سيتم إضافة معلومات وعن طريق هذه األداة system-config-authenticationهو استخدام األداة المساعد SSSDوأسهل طريقة إلعداد etc/sssd/sssd.conf/ االعداد إلى الملف

ة قطع دهذا الملف يمكن تعديله لضبط أوقات انتهاء الصالحية ذاكرة التخزين المؤقت، تكوين المجاالت إضافية، وتغيير مستوى التصحيح لزيا var/log/sssd/يتم وضع السجل الناتج في المجلد .األشجار

GETENTاالمر

.من معلومات الحسابية المستخدمة للتحقق getentpasswdgetentيستخدم .LDAPأو مستخدم الشبكة من خدمة etc/passwd/ويعمل ما إذا كان المستخدم هو مستخدم محلي محدد في الملف

دائما التعريف التي قيد االستخدام بالفعل من قبل النظام وإذا كان هناك أي ازدواجية بين المستخدمين المحليين ومستخدمي واألمر يظهر .تعريف مستخدم الشبكة (override)افتراضيا، تعريف المستخدم المحلي يتجاوز.الشبكة

التي تم userid، بحيث أنها لن تصطدم مع 4200العضوية التي لها رقم LDAPالحظ أن المسؤول الذي خلق قواعد بيانات المستخدم 500، التي تبدأ مع رقم العضوية workstation clientإنشاؤها على

System-config-authentication اداه في الشاشة الرسومية يساوىauthconfig-tui :ولكنها عباره عن شاشه نصيه كاالتى

LDAP إلدخال إعداد التظهر الشاشة التالية

authconfig-gtkوللتعديل فيه نستخدم االمر التالي

Page 49: Linux Admin I II

RHCSA/RHCE Egypt ®

48 Inodes

صبحي طيبه دد. محم

INODES

-نجد ان أي الملف يتكومن من ثالث أجزاء:

(data)محتوى الملف -1 (Inode) (meta data)بيانات عن الملف -2 (dentry)اسم الملف -3

عباره عن رقم يمثل الملفات والمجلدات حيث ان هو Inodeاالينود الملفات والمجلدات عن طريق رقم الجنو/لينكس تتعرف على

Inode بمعنى ان الملف الذي يسمىX فان اسمه بالنسبة للجهاز هومختلف عن االخر Inodeلذلك فان كل ملف او مجلد له رقم 56689

وهذه األرقام مخزنه Inodeومن المستحيل ان يوجد ملفين بنفس رقم وهذا الجدول 1Mمساحته Inode tableفي جدول يطلق عليه

عباره عن عالقة بين اسم الملف ورقمه. ومن هذه المعلومات ما يلي: (metadata)يحتوي على مجموعه من المعلومات عن الملف او المجلد Inode numberهذا الرقم

o file type, permissions, UID, GID UID, GID الملف والصالحيات و نوع o the link count (count of path names pointing to this file) ملفات الروابط المشارة الى الملف األصلي وعددها o the file's size and various time stamps(time access) حجم الملف ووقت انشائه o pointers to the file's data blocks on disk (location of data in hard disk) مكان الملفات في الهارد ديسك o other data about the file وبيانات أخرى عن الملف

(file type)لتالي يوضع جميع أنواع الملفات والجدول ا

Timing information وكل وقت يمثل حدث mtimeو ctimeو atimeكل اينود يعمل على تخزين ثالث أوقات مختلفة لكل ملف ويطلق عليهم

معين حدث لملف والجدول التالي شرح لهذه األوقات

يتعامل معه عن طريق اسم الملف ولكن عندما يتعامل الكمبيوتر مع الملف فانه يتعامل مع الملحوظه عندما يتعامل المستخدم مع الملف فانه Inode number والمجلدات تعتبر حلقة الربط بين أسماء الملفات والInode number .

إدارةلملفاتا

Linux Management

الفصل

Page 50: Linux Admin I II

RHCSA/RHCE Egypt ®

49 Inodes

صبحي طيبه دد. محم

بيشاور على Inodeوكل Inode 8ويمكن تغيره ويحتوي على 1kمساحته blockوكل blocksيتم تقسيم القرص الصلب الى مجموعة mke2fs-j-b2048-i2048نستخدم التالي Inodeو blockولكن يمكن تغيره. ولتغير مساحة byte 128ملف اقصى مساحة

Inode and Directory

وذلك العتباره Inode number تعمل عند تنفيذها على تغير رقم االينود (cp , mv , rm)جميع األوامر المستخدم في التعامل مع الملفات تغير في المعلومات الخاصة بالملف وخاصة المكان .

(Inode)الطرق المستخدمة لمعرفة رقم االينود statباستخدام االمر -1 يعمل على عرض معلومات كامله عن الملف وقد ذكرناه من قبل

i–مع الخيار lsاالمر -2

Page 51: Linux Admin I II

RHCSA/RHCE Egypt ®

50 Hard link &soft link

صبحي طيبه دد. محم

HARD LINK &SOFT LINK

طريق تستخدم لجعل تواجد ملف معين في مكانين او تواجد ملف معين باسمين مختلفين ونفس الملف وتتم ذلك عن طريق عمل ملف تتعامل مع الملف فإنك linksوعند التعامل مع softاو hardسواء كانت (link)يشير الى الملف األصلي ويسمى هذا وصله للمف األصلي .األصلي واي تعديل يحدث فيه يحدث في الملف األصلي

hard link-1-: عمل ملفات وهميه تشير الى الملف األصلي ويوجد منه نوعين 2-(symbolic)soft link

link Hard على يحتويعباره عن عمل ملف منفصل عن الملف األصلي هو

معلومات ومسار الملف األصلي ووظيفته األساسية انه يشير الى ونالحظ Inode الالملف األصلي ونجد أيضا انه متساوي في

او media الكانا موجودين في نفس إذاعمله اال نال يمك هانpartition أي بمعنى انه يوجد ملفين يمكن عمله للمجلدات وال

وعند عرض الملفات .نفس المحتوى ولكن باسمين مختلفينجد ن تالصالحيا تليفنجد انه في الخانة التي ls –lباستخدام االمر

hard واحدعلى يحتوييدل على ان الملف وذلك 2تصبح انها link يحتوي على اثنين عندما يكون للملف 3وتصبحhard link .ند ازاله وع وهكذاhard link شيء للملف ويظل ثال يحد

األصليند إزالة الملف او ع ولكن باسم واحد فقط الملف كما هو ظل موجودينفسه فال يوجد مشكله و

-كاالتي: lnوتتم ذلك عن طريق االمر ln[OPTION...]TARGET[LINK] or cp[-l]TARGET[LINK]

link Soft وعند عرض Inode الولكنه مختلف عن الملف األصلي في hard link العلى مسار الملف او المجلد ويعتبر نفس يحتويملف صغير هو

.media الال يشترط ان يكونوا في نفس –وليس lالمعلومات عن نجد انه يبدا ب

-كاالتي: s–مع الخيار lnوتتم ذلك عن طريق االمر ln[-s]TARGET[LINK] or cp[-s]TARGET[LINK]

عمل ما زال الذي soft link العند إزله الملف األصلي فان الموجود وعند اإلشارة اليه فانه يعطى رسائل خطا على عكس

hard link

Page 52: Linux Admin I II

RHCSA/RHCE Egypt ®

locating the file البحث في جنو /لينكس 51

صبحي طيبه دد. محم

LOCATING THE FILEالبحث في جنو /لينكس

:يليتوفر بيئة جنو/لينكس عدد طرق في عملية البحث على نظام التشغيل ومن هذه الطرق ما

(X server)استخدام أدوات البحث في البيئة الرسومية - places search for filesعن طريق search for filesوذلك باستخدام األداة

locateاالمر -لذلك النظام المتوفرة على اتمسارالعلى جميع تحتوياألدوات في البحث ألنه يعتمد على قاعدة بيانات في عملية البحث التي أسرعيعتبر من

updatedb باألمرفانه يعتبر هذا الملف مازال موجود ويتم تحديثها القاعدةحذفت ملف قبل تحديث إذاالبد من تحديث هذه القاعدة الن locate [OPTION]... PATTERN... [-i <remove case sensitive>]

findاالمر - يستخدم في البحث عن الملفات ولكنه أكثر دقه مما سبق ويتكون من ثالث أجزاء findنجد ان االمر

1-root directory (directory) 2-criteria 3عنها المراد البحث-action find (root directory) (criteria) (action)

في البحث عن ملف بدون أي خيرات معه فانه يستخدم الوضع االفتراضي في تحديد طريقة البحث حيث كما قلنا من findعند استخدام االمر (.)فيكون المسار االفتراضي هو Directory-1قبل انه يتكون من ثالث أجزاء 2-criteria هي تحديد لشكل الملف الذي سوف يتم البحث عنه والوضع االفتراضي له كل الملفات

3-action والوضع االفتراضي الذي سوف يتخذه هوprint أي طبع النتيجة على الشاشة

Page 53: Linux Admin I II

RHCSA/RHCE Egypt ®

locating the file البحث في جنو /لينكس 52

صبحي طيبه دد. محم

والتي نضع بعدها اسم الملف المراد البحث عنه. name–وليكن مثال أخرى criteriaوفي المثال التالي سوف نضع مسار غير االفتراضي findالمستخدمة مع االمر criteria البعض

printحيث ان االفتراضي هو findالمستخدم مع االمر action البعض

بعده يعمل على التنفيذ على كلمة البحث والبد ان يكتب بعده يأتي الذيبحيث ان االمر exec–وهو findالمستخدم مع االمر action المع (;\)كاالتي \و (;)ب وينتهيكان االمر المستخدم محتاج هدف يضع فيه إذاثم المكان {}

Page 54: Linux Admin I II

RHCSA/RHCE Egypt ®

Archive and Compressing ضغط الملفات 53

صبحي طيبه دد. محم

which االمر -

whichcommandيعمل على عرض المسار الكامل ألمر معين ويكون كاالتي whereis االمر -

ولكنه يعرض مكان المصدر الكودى له والملفات المساعدة له whichمثل االمر ARCHIVE AND COMPRESSINGضغط الملفات

Archive بـ المقصود كرتونة في ووضعها الغرفة في الصغيرة االشياء كل جمع مثال عند واحد مكان في ووضعها المتفرقة االشياء جمع عن عبارة هو Compressing بـ المقصود اقل حيز تشغل لجعلها كبير حيز تشغل التي االشياء ضغط عن عبارة هو -: Uncompressingو Compressing لـ طرق عده هناك

archive mangerنستخدم برنامج (x server)في البيئة الرسومية -application accessories archive manger

gunzipو gzipاالمر - األوامر المستخدمة في ضغط الملفات والملفات التي تضغط بهذا االمر فان ارجعها كما كانت بنفس االمر ايضا أكثر

(gzipfile1#1 لضغط الملفات gunzipfile1.gz# (2 لفك ضغط الملفات

انه يمسح الملف االصلي بعد عملية الضغط ولإلبقاء على الملف االصلي بجانب ايضا ونالحظ gz. هنا ان الملف المنشأ ينتهي بونالحظ gzip-cfile1>file1.gz#نستخدم الصيغة األتية الملف المضغوط

1million.txt.gzzcatمثال gz.يعمل على عرض محتويات الملف المضغوط من النوع zcatواالمر

Page 55: Linux Admin I II

RHCSA/RHCE Egypt ®

Archive and Compressing ضغط الملفات 54

صبحي طيبه دد. محم

bunzip2 و bzip2 راالم -

bz2. ونالحظ هنا ان الملف المنشأ ينتهي ب#bunzip2jana.bz2 الضغط لفك يستخدم #bzcatfilename يستخدم لرؤية محتوى الملف المضغوط

ومن gzipأكبر منه للـ bzip2للـ Compression Ratioحيث ان )Compression Ratio( معدل الضغط الطريقتين هو بين الفرق علي جدا يقل سوف الملف حجم فان نصي ملف ضغط عند تتوقف على نوع الملف فمثال Compression Ratioالجدير بالذكر ان قيمة

كثيرا. يتغيرا لن حجمه فان فيديو ضغط عكس zipاالمر -

تطبيقات أربعوالويندوز اما في جنو/لينكس يوجد MS-DOSالتي انشائها فيل كاتث من اجل PKZIPتعتبر متوافقة الى حد كبير مع التطبيق zipاألداة .zip التعمل مع ملفات

#zip يعمل على انشاء ملف مضغوط يحتوى على الملفات والمجلدات #zipcloak عمل على انشاء ملف مضغوط ولكن مشفر ومحمى ي #zipnote على انشاء مرجع تعريفي بالملف المضغوط يعمل #zipsplit الى عدة اجزاء الملف المضغوطتقسيم على يعمل #unzip الملف المضغوطفك الضغط عن على يعمل #zcat يستخدم لعرض المحتويات

tarاالمر - وتعتبر األداة االفتراضية المستخدمة. وصيغتها كاالتي:هذه األداة تعتبر من اهم األدوات المستخدمة في ضغط او تجميع الملفات

tar[OPTION...][FILE]...Function

archiveيقوم بعمل تجميع للملفات

يعرض محتويات الملف المضغوط

يقوم بفك الملفات وارجاعها كما كانت او يفك الضغط

Page 56: Linux Admin I II

RHCSA/RHCE Egypt ®

Archive and Compressing ضغط الملفات 55

صبحي طيبه دد. محم

f–البد ان يحتوي على الخيار tarونالحظ ان االمر

tarΔ-cΔ-t = tarΔctمثل (-)ويمكن استخدام الخيارات المتاحة معه بدون tarبعض الخيارات األخرى المتاحة مع االمر

الشرح الخيار-A يعمل على إضافة محتويات ملف مضغوط الى ملف مضغوط اخر -r إلضافة ملف الى ملف مضغوط -z يستخدم لفك ضغط الملفات من النوعgzip -j يستخدم لفك ضغط الملفات من النوعbzip2 -J يستخدم لفك ضغط الملفات ذات االمتدادtar.xz -v يصل الى مرحلة فك الضغط لكيلعرض ما يتم من عمليات(verbose)

-c new_dir لفك ملفات الضغط الى مكان اخر غير المكان الحالي

Page 57: Linux Admin I II

RHCSA/RHCE Egypt ®

STRING process mangmentأدوات معالجه النصوص 56

صبحي طيبه دد. محم

ل STRING PROCESS MANGMENTنصوصأدوات معالجه ا

ومن اجل تلبية مطالب ،text encoding هذه العملية الترميز تخزين نص فان جنو/لينكس يعمل على تحويل النص الى ارقام وتسمى عند تم تطويرها وتتمثل هذه التطبيقات من مجموعه متنوعة من الحروف. encoding الترميز االخرى فالعديد من تقنيات تاللغا

) nterchange)Information Iode for Ctandard Smerican AASCII هيا encodingترميزتقنيات ال أقدمومن catاالمر -

وبعض الرموز. tab األتية يعمل على إيضاح السطور وال تعرض محتوى نص ولكن مع الخياراليستخدم catمن قبل فان االمر كركما ذ

لعرض المسافات A-استخدم في عرض محتوى نص فقط ولكن في المثال التي سوف نستخدم الخيار catحيث نجد من المثال السابق ان االمر

في النص الحالي CTRL وال TAB والسطور وال

wcاالمر - يستخدم هذا االمر في العد

(word)كلمة ما هو تعريف ال tabالكلمة في جنو/لينكس عباره عن رموز تتكون من حروف وعالمات محاطة بمسافه او الرمز

$لترميز نهاية السطور باستخدام الرمز

I^عن طريق انه يرمز له بالرمز tabلعرض ال

n^رمز لهم بالرمز وي Ctrl رض المسافات واللع

Page 58: Linux Admin I II

RHCSA/RHCE Egypt ®

finding text البحث عن الكلمات داخل النصوص 57

صبحي طيبه دد. محم

FINDING TEXTالبحث عن الكلمات داخل النصوص

grepاالمر -او سطر داخل الملف ويكون مفيد جدا في الملفات الكبيرة الحجم التي تحتوي على االف من محددهيستخدم هذا االمر في البحث عن كلمه

- السطور. وصيغته كاالتي:

#grep [optionsاالختيارات المتاحة] pattern (الكلمة المراد البحث عنها) [fileالملف المراد البحث فيه] أسرع وال يستخدم العالمات في البحثيستخدم في البحث عن الكلمات بطريق fgrepاالمر basic regexيستخدم يستخدم في البحث عن الكلمات وهو اكثر استخداما ويستخدم العالمات في البحث grepاالمر extended regexيستخدم grepيستخدم في البحث عن الكلمات ولكنه اكثر تقدما وقوه عن ال egrepاالمر

grepالالمستخدمة مع تأشهر الخيارا

-E FOR extend-regex -G FOR basic-regex -P FOR Perl-regex -v FOR invert match -x FOR match whole line -f FOR للبحث داخل الملف

قياسية ل لتعابير ا REGULAR EXPRESSION(regex) ا

هو مكتوب فعال بالصيغة الصحيحة، تالحظ انه يبدا لالمكتوب، هميل من صحة اإلتقوم بعمل برنامج معين وتريد التأكد أنكبفرض مقدمه: comبمجموعه من الحروف واألرقام ثم يليها العالمة @ ثم اسم الموقع ثم عالمة الدوت. ثم الخاتمة مثال

خل للبحث داأيضا قد تحتاج التأكد من اسم المستخدم مثال ان يكون من حروف فقط او حروف مع ارقام بدون عالمات خاصه , أيضا قد تحتاج مرهقه ولكن كل العمليةقد تكون hيليها حرفين ثم الحرف aنص معين عن شكل معين مثال تريد ان تبحث عن كل الكلمات التي تبدا بالحرف

. regexشيء سهل مع ؟ regular expressionال ما هو

regex وال (pattern)طريقه تسمح لنا بالبحث داخل النص ومقارنة ناتج البحث بشكل معين أيضا وهيوصف للنصوص والتعرف عليها البرمجة لقوة تعاملها مع النصوص غير مخصصه للغة برمجه معينه بل تستخدم مع معظم لغات

cartوتسمى ^ الرمز - ’ ’بين ويوضع (…… line that begin with)تعنى السطر الذي يبدا ب

ن االمروجودة التي ممكن ان تكون الناتج علمعرفة عدد الكلمات الم

للبحث داخل المجلدات

$ grep -e t -e f file1 :لوضع اكثر من تعريف للكلمة المراد البحث عنها مثال

عرض اسم الملف الذي يحتوي على الكلمة المراد

smallوالcapitalال تفرقه بين الحروف ال

يحتوى على الكلمةلعرض رقم السطر الذي

Page 59: Linux Admin I II

RHCSA/RHCE Egypt ®

finding text البحث عن الكلمات داخل النصوص 58

صبحي طيبه دد. محم

dollar signوتسمى $ الرمز - (.… the line end with)ب ينتهي الذيتعنى السطر

Regular expression :ينقسم الى عدة اقسام 1-literal character )الحرفية) تمثل الحروف واألرقام والرموز الخاصة الرموز 2-wildcards أي تعبير يقع في ال regex والتي تعنى أي تعبير قد يكون حرف او رقم او مسافة .... (.)مثل 3-modifiers مثل * التكراريةالمسئول عن العمليات 4-anchors المسئول عن انشاء سياق للنمط(pattern) و ^مثل الرمز$

(dot) . الرمز - تستخدم لتعبير عن حرف واحد

bracket expression [ ] الرمز - تستخدم للبحث داخل نص عن الحروف التي تقع في المدى الداخلي بين القوسينعباره عن الرموز التي تقع بين القوسين

cاو bاو aيكون عن حرف واحد من الحروف الثالثة قد عباره [abc]مثال [a-f] الحروف التي تقع بينa الىf وتكونsmall

[A-F] الحروف التي تقع بينA الىF وتكونcapital [^a-f] جميع الحروف ما عدا الحروف بينa الىf [a-fA-F] جميع الحروف بينA وF (capital &small)

9و 1قام بين رجميع اال [1-9] الحروف التي ال تقع في هذا المدى [ ]!

* الرمز - modifiers الرمز في أشهر وتعتبر أكثر)لتحديد عدد مرات التكرار (صفر او

Modifiers واالتي ذكره اشهر الرموز المستخدمة معه تلتحديد عدد التكرارا الرمز الشرح * الرموز دصفر او أكثر عد

+ مره او أكثر ? صفر او واحد

{n} مثال خمس مرات nعدد التكرارات = m=maximum {n,m}و n=minimumحيث 7الى 1مثال عدد مرات التكرار من

m {,m}من صفر الى {,n} الى ما ال نهاية nمن

Page 60: Linux Admin I II

RHCSA/RHCE Egypt ®

finding text البحث عن الكلمات داخل النصوص 59

صبحي طيبه دد. محم

(escape) \ الرمز - حرف واحدوليس . الدوت تعنى الحرف .\من ولكن حرف واحدتعنى .الدوت مثلوتعنى الغاء تأثير رمز معين ومعاملته كحرف

groupingلعمل - ( )أي تجميع األشياء مع بعضها باستخدام

(or)والتي تعنى او |إذا أردنا البحث عن احدى الكلمات داخل نص نستخدم -

ال REGULAR EXPRESSION (REGEX) ملخص

Page 61: Linux Admin I II

RHCSA/RHCE Egypt ®

finding text البحث عن الكلمات داخل النصوص 60

صبحي طيبه دد. محم

sortاالمر

؟ sortingما هو المستخدم بصوره يراه ال لكيمحدد بدون التغير في الملف نفسه ولكن الترتيب في تسلسل يعمل على ترتيب البيانات الداخلية للملف

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

sort ) الحروف.شكل ) لتعريفالمحليةاللغة مسافة أو(بما في ذلك أي أبجديا السطور ترتيبيعمل على (sorting)الفرز األمر، فإن أبسط أشكالها (أي من غير خيارة معها) في ) كما في المثال التالي. أحرف التحكم

sortبعض الخيارات المتاحة مع االمر

يعمل على ترتيب السجالت حسب الترتيب الرقمي

يعكس الترتيب

Page 62: Linux Admin I II

RHCSA/RHCE Egypt ®

finding text البحث عن الكلمات داخل النصوص 61

صبحي طيبه دد. محم

–nمع الخيار sortمثال لألمر

ال يظهر التعابير المتشابه uوأيضا الخيار والتي تعنى كتابه ناتج االمر الى ملف بدل من استخدام إعادة التوجيه o–ويأتي معه أيضا الخيار ك دمأن تستخ ينبغي العمود الذي أو، ترتيب الفرزتحديد الستخدامها ل جداول البيانات من عمود لتحديد أي للمستخدمين يسمح sort األمر

sort key (المفاتح الذي يبنى عليه عمليه الفرز).

ويكون ترتيب على k–وذلك نتيجة الخيار lsفي المثال التالي اختار العمود الخامس الذى سوف يبنى عليه ترتيب السجل الناتج من االمر n–حسب الرقم نتيجة الخيار

ولكن يمكننا مسافةان الفاصل بين العواميد عباره عن في المثال السابقأيضا نجد و k5 –k7–مثل sort keyمن أكثرويمكن تحديد (: t-) هكذاسوف يكون الفاضل:لويكن t–التحكم في الفواصل عن طريق الخيار

uniqاالمر - .sortويستخدم بكثره مع االمر .التي تم فرزها البيانات في السجالت المكررة )إزالة أوعد، او (لتحديد البرنامجيستخدم هذا

cutاالمر - لعرض عمود معين من الملف النص)(يستخدم هذا االمر في استخالص او قطع عمود نصي من ملف نصي sortيشبه االمر

tabبدل من ال تستخدم لتحديد الفواصل d-الخيار

Page 63: Linux Admin I II

RHCSA/RHCE Egypt ®

finding text عن الكلمات داخل النصوصالبحث 62

صبحي طيبه دد. محم

Pasteاالمر -

tabويفصل بينهما بالفي ملف واحد يعمل على دمج أكثر من ملف diffاالمر -

يستخدم للمقارنة بين ملفين نصي من حيث المحتوى

Page 64: Linux Admin I II

RHCSA/RHCE Egypt ®

finding text البحث عن الكلمات داخل النصوص 63

صبحي طيبه دد. محم

trاالمر - tr ‘a-z’ ‘A-Z’ < lowercase.txt# يعمل على تحويل الحروف من شكل الى شكل اخر

يستخدم التعبيرات األتية: trاالمر

aspellاالمر - ويستخدم الخيارات األتية: (aspell check , aspell list)يعمل على فحص الكاتبة الصحيحة للكلمات وهل يوجد أخطاء ام ال

-cfile||checkfile يحمل على فحص الكتابة لملف -l || list تقوم بطباعة قائم باألخطاء

fmtاالمر - الى نظام جديد نصييعمل على إعادة تهيئة ملف

splitاالمر - يعمل على تقسيم الملف الى عدة ملفات

split [SWITCHES] [FILENAME [PREFIX] ] امثله

split--lines=190- newfiles<oldfile.txt split--lines=190-<oldfile.txt split-190<oldfile.txt split-190oldfile.txt

Page 65: Linux Admin I II

RHCSA/RHCE Egypt ®

awk االمر 64

صبحي طيبه دد. محم

sed (stream Editor)المحرر -تستخدم أشهر المحررات االتجاهية لتحرير النص مع سطر األوامر وهويعمل على البحث عن كلمه معينه واستبدالها بكلمه أخرى

basic_regex_expression ولكن مع الخيار–r تستخدمextend_regex_expression .script يستخدم في إجراء عدده تعديالت كليه على مستند نصي من ال-2جراء تعديالت كليه على مستند نصي يستخدم في إ-1-استخداماته:

#sedOPTIONS…[SCRIPT][INPUTFILE…] #sed-e's/dog/cat/'-e's/hi/lo/'pets من عمليه في عمليه واحده أكثراذا اردت استخدام

إلخراج الناتج الى ملف اخر (i file_name-)والخيار (sed –e script_file)من ملف script ولكن يأخذ ال e-نفس وظيفة ال f–اما 'regex'او )'\%regex%'( او )'/regex/'( نجد ان دائما يضع ما يوضع ما يبحث عن بين االتي ثحي :sedطريقه البحث مع االمر

{command }و ( ) –nلطبع الناتج على الشاشة وتستخدم دائما مع الخيار pو ( تستخدم للحذف) d(أشهر األوامر التي تأتى معه ) sedويعتبر من اهم األوامر المستخدمة مع االمر sوتعنى لعمل مجموعه من األوامر مع بعض) و (

sedالمستخدم مع االمر searchوتعنى sاالمر ث انه يقوم بالبحث عن صيغه معينه يوفكرة هذا االمر بسيط ح's/regexp/replacement/flags' يستخدم هذا االمر الصيغة األتية:

(regex) فاذا وجد الناتج يقوم باستبدالها ب(replacement) replacementحصل لها توافق ب الذيأي استبدال كل الصيغ globallyوتعنى g :تكون كاالتي sالتي تأتى مع االمر flagsال

number وتعنى عكس ال g حيث انه يحدد عدد النصوص الذي بحث عنها وحصل له توافق ليقوم باستبداله p لطباعة الناتج على الشاشة

w لطباعة الناتج الى ملف وتكتب بعده اسم الملف(w file_name) $sed's/mr./mrs./g'<gamal>lila

ووضع تلك التغيرات gamalالملف في كل .mrsالى .mrقام بتحويل كل الكلمات التي تكون ثم .mrقام بالبحث عن الكلمة انهعنى ي هذا lilaفي ملف جديد اسمه

#sed's/dog/cat/g'pets petsفي كل الملف ثم حفظ تلك التغيرات في نفس الملف cat الى dogيعمل على تحويل كل الكلمات

#sed-n'1p'grep.test.txt - األول من الملفلطبع السطر #sed-n'2p'grep.test.txt - لطبع السطر الثاني من الملف #sed-n'$p'grep.test.txt - regex لطبع السطر األخير من الملف حيث انها تستخدم ال

حيث ان الوضع االفتراضي يتم طبع الناتج بعد االنتهاء الى الملف –nوالخيار txt'/^$/d' grep.test 'sed.كاالتي: للحذف dويستخدم .pولكن مع هذا الخيار يتم طبع الناتج اول بأول على الشاشة ويستخدم مع خيار السكريبت

AWKاالمر

له.لمبرمجين اأستنبط من أسماء اللغةوأسم ة لينكسكبير في أنظم وتستخدم بشكلخاص هو لغة برمجية تتعامل مع النصوص بشكلتخزن الحقول في مخازن –يعتمد على المسافة في الفصل بين الحقول –قائمه على الحقول – grep مثل ال regex تدعم ال (-مميزاتها :

يستخدم جميع – pipesو (redirection)تستقبل المدخالت من الملفات والموجهات –بحيث يسهل الوصول لها عن طريق العمليات )يستخدم الجمل الشرطية و التكرارية -و || يستخدم && –المعامالت بين النصوص الموجود في السكريبت

'awk'BEGIN{print"Test Program"}#: بهذا المثال البسيط awk لنبدأ بشرح النمط العام ألوامروأوامر ثم بعالمة التنصيص التي تخبر المعالج ببداية األوامر awkمعالج لغة باسمالبرنامج يبدأ "Test program" هذا البرنامج يطبع جملة

awk لها نمط معين وهو: pattern {action} ونعني بال "patternوال عند البحث في الملف " هو الشرط المراد مطابقته"action هو "" أي ان األمر يجب أن ينفذ في بداية الملف BEGIN" وضعنا كلمةالمثال األول أننا ونرى فياألمر المراد تنفيذه في حال مطابقة الشرط

".Test program" لطباعة الجملة "print" وضعنا كلمةوفي مكان األمر )وهكذا العمود الثانيتعنى 2$ - العمود االولتعنى 1$ - كاملتعنى السطر ($0

للتعامل مع المتغيرات v–ونستخدم fsثم نوع الفاصل او F-يمكن تغير الفاصل االفتراضي بين الحقول (المسافة) عن طريق أكبر < , أكبر من أو يساوي = < , ال يساوي != , يساوي == , أصغر من أو يساوي = > , من أصغر > (معه:بعض الرمز المستخدمة

/../وتوضع بين regexونالحظ أيضا انه يستخدم ال ) ال يساوي (يستخدم مع النصوص) ~! , النصوص)يساوي (يستخدم مع ~ , منawk'{print $0}' grep.test.txt – يعمل على طبع السطر كله awk'{print $1}' grep.test.txt – يعمل على طبع العمود رقم واحد awk'{print $2}' grep.test.txt – 2العمود رقم يعمل على طبع awk'{print $2,$1}' grep.test.txt – ثم العمود رقم واحد 2يعمل على طبع العمود رقم awk'/Red/{ print $0}' grep.test.txt – يعمل على طبع جميع السطور التي تحتوى على كلمة ريد awk' {if ($2 ~ /2011/){print $0 }' grep.test.txt – في العمود الثاني 2012طباعة كافة السجالت التي تحتوى على awk'/2011$/{ print $0 }' grep.test.txt – 2011طباعة كل السطور التي تنتهى ب

كاالتي: awkاستعمال المتغيرات مع االمر 1- name=`whoami` #awk–vname=$name'BEGIN{print "Welcome",name}' 2- awk'BEGIN{name="Khalid"}{print"Welcome",name}'

Page 66: Linux Admin I II

RHCSA/RHCE Egypt ®

awk االمر 65

صبحي طيبه دد. محم

أذا كان هنالك 1في حالة لم يكن هنالك باقي للقسمة , 0باقي القسمة ( %, القسمة /, الضرب *, الطرح -, الجمع+(العمليات الحسابية: قسمة عدد =/, ضرب عدد بمتغير =*, طرح عدد للمتغير =-, إضافة عدد للمتغير =+, أعطاء األولية لعملية التي بين القوسين(), باقي) ) إنقاص قيمة المتغير --, 1زيادة قيمة المتغير , ++ عملية باقي القسمة =%, بمتغير

"AWK"المتغيرات الخاصة بلغةNRرقم السجل الحالي ر: يظه NFعدد الحقول في السجل الحالي ر: يظه

FILENAMEالسجالت ملف الذي يحتوي على م: أس : FS المحرف المستخدم في فصل الحقول في الملف المستخدم RSعداد االفتراضي هي محرف السطر الجديد اإل المستخدم,المستخدم لفصل السجالت في الملف ف: المحر

OFSالمحرف المستخدم لفصل الحقول في المخرجات : ORS المحرف المستخدم لفصل السجالت في المخرجات : الجمل الشرطية والتكرارية المستخدمة معه

1) if (الشرط او المقارنة) {do this action}else (الشرط او المقارنة) {do this action} 2) while (الشرط او المقارنة) { the action} 3) do{the action}while( المقارنةالشرط او )} 4) for (الشرط او المقارنة) { the action} للتحكم في الحلقات ;continue or ;break تستخدم

f program_name-#awk لاو استخدامها مباشره في التر منا /!#f-awk/bin/usr يمكن استخدامها في السكريبت AWKالدوال المعرفة في لغة

بالدوال الحسابية: وسوف نبدأدوال مدمجة لزيادة القدرات المعطاة للمبرمج على awkتحتوي لغة الشرح وال الحسابيةالد

atan2(y,x) "أعطاء قيمة "مقابل الظل

cos(x) أعطاء قيمة جيب التمام

exp(x) أعطاء قيمة الدالة األسية

int(x) أعطاء القيمة الصحيحة لمتغير

log(x) اللوغاريتمأعطاء قيمة

rand() 0و 1تعيد هذه الدالة رقم عشوائي تقع قيمته بين

sin(x) حساب جيب الزاوية

sqrt(x) أعادة قيمة الجذر التربيعي للمتغير

srand(x) في أنشاء الرقم العشوائي في الدالة المستخدمةأعطاء القيمةrand()

مع النصوص: التعامل في المستخدمةعلى شرح الدوال واألن تأتي الشرح وال النصيهالد

gsub(r,s,t) -gsub(r,s) تقوم هذه الدالة بالبحث عن القيمة"r" و أستبدلها بالقيمة"s" في المتغير"t" و في حالة عدم وجود متغير 0$سيطبق األمر على المتغير

index(s,t) أذا كان "t" جزء من المتغير النصي"s" يعيد الموقع الذي يبدأ في المتغير النصي"t" و في حالة عدم العثور عنه يرجع القيمة صفر

length(x) يرجع طول السلسة النصية"x"

match(s,r) يرجع قيمة موقع"r" في السلسة النصبة"s"

split(s,a,r) يقسم السلسة النصية"s" النمط باستخدام"r" وحفظ الناتج في المصفوفة"r"

tolower(s) الصغيرةحالة الحروف الىتحويل السلسة النصية

toupper(s) الكبيرةحالة الحروف الىتحويل السلسة النصية functiontest1(المتغيرات){Action} awk فيانشاء الدوال

م سالسل هو أنها تستخد والمصفوفات العاديةبين المصفوفات الترابطية والفرق الوحيدالمصفوفات الترابطية awk لغة المصفوفات: تستخدم :نصية كقيمة دليلة بدل قيمة رقمية كما في المصفوفات العادية كما في المثال التالي

arrayname[string]=value arraynameأسم المصفوفة: string) السلسة النصية المستخدمة كقيمة دليلة:index( valueهي القيمة المسندة للعنصر:

(var in arrayname)for{ action} كما في المثال التالي: for.inيتم الوصول ألي عناصر باستخدام الجملة البرمجية var أسم أي متغير:in كلمة برمجية:arrayname أسم المصفوفة:actionاألوامر المراد تنفيذها على عناصر المصفوفة :

)indexهذه الحلقة التكرارية تقوم بتنفيذ األوامر على مجموعة العناصر المرتبطة بالسالسل النصية المعينة كدليل ( arraynamedelete[index] في المثال التالي: كما deleteية تستطيع حذف أي قيمة في المصفوفة باستخدام الكلمة البرمج

:باألمر التالي االستعاضةال تحتوي على أمر يستطيع حذف المصفوفة بالكامل لذا يجب awkتالحظ أن انيجب for(var in arrayname){delete array[var]

Page 67: Linux Admin I II

RHCSA/RHCE Egypt ®

66 Process Management إدارة العمليات

صبحي طيبه دد. محم

PROCESS MANAGEMENT إدارة العمليات

.)process(والعمليات (application)التطبيقات بين الفرق .(process)عمليه يسمي RAM من الذاكرة جزء ويحتل تشغيله حالة في اام .(application)تطبيق يسمي التخزين حالة في الملف .binary لينكس msiو exe ويندوز ) فيexecuteللتنفيذ ( القابلة الملفات انواع

او tty البرامج الشغالة من نفس عرضب والتي تقوم psالتي تعمل على نظام التشغيل االن نستخدم األداة (process)ولفحص العمليات pts ال فقط معاللي انا فيها PID

:نجد أن ويمكننا معين وقت في حيز التنفيذ في تكون التي هي العمليات ) معدةdaemons "مراقبات "باالسم تعرف( عمليات أو النواة، أو للجهاز، المحلي بالعمل مرتبطة عمليات كانت سواء :النظام عمليات الخدمات هذه كانت إذا ما على يعتمد وهذا بشبكة، مرتبطة أو محلية تكون أن العمليات لهذه ويمكن (Services) .المختلفة بالخدمات للتحكم العمليات هذه معظم ستظهر). clientكعميل يتصرف(جهازنا الخدمة نتائج نستقبل كنا إذا أو) كخادم يتصرف جهازنا (الشبكة عبر تقدم

مرتبطة أخرى خدمات هناك تكون قد كمستخدمين اللحظة تلك في موجودين نكن لم وإن حتى ،(root user) الجذر بالمستخدم مرتبطة .محددة عمليات لتنفيذ النظام يستخدمهم تفاعليين غير وهميون مستخدمونوهم ،) إلخ ، .(lp, bin, www, mail أخرى نظام بحسابات .الجذر بالمستخدم مرتبطةت كعمليا المشغلة التطبيقات أو التفاعلية عملياتنا ستظهر الجذر، حساب في العمل عند :المدير المستخدم عمليات .ةالرسومي أو النصي الوضع في تفاعلية تطبيقات كانت سواء تطبيقاتها، بتنفيذ مرتبطة :النظام مستخدمي عمليات

PID المقصود بـ ما

PPIايضا ولها طريقه عن معها يتعامل النظام PID لها processوكل processمع طريقه عن يتعامل النظام رقم عبارة عن هو منها.نشأت التي Processوهو رقم Parent Process IDويسمي write on faultبطريقة يعمل لينكس نظام

bash ان فلنفترض nanoلبرنامج parent يعتبر الحالة هذه في bash فان bash علي من nano برنامج تشغيل اردت انك إذا وهي Size on RAM , Instruction من خصائصه جميع ويأخذ منه يبد nanoبرنامج اي فان RAM من MB 10 قدرها مساحة يستهلك كانset إعداد لنفسه يعمل ذلك وبعد ( Customize) اقل . او اكبر مساحة يستهلك سوف كان سواء يحتاجها التي للمتطلبات

والغرض من ذلك وقت وحمل أكبر سيستهلك نفسه من بدا بسبب انه إذا على الجهاز الحمل loadتوفير الوقت و )1 الخاصة به مباشرة المساحة من استفيد أقدر البرنامج انتهاء بعد )2 وبالتالي نفسها tty 3 انهي أنى طريق عن الوقت نفس في البرامج جميع انهي أقدر tty 3 على برنامج من اكتر فاتح كوني حالة في )3

.منها child عن عبارة اللي البرامج جميع انهي النظام على الموجود التطبيقات انواع

:Foreground Apps (1هي برامج عادية اراها واري تأثيرها Background Apps (2: ولكنى أرى تأثيره (صفحة الويب) فانا ال اراه web serverتأثيرها مثل ارىعبارة عن برامج ال ارها ولكني

psاالمر -ويمكن االطالع عليها األوامر. وسطر العمليات ومعرفات والوقت المستخدمين بيانات مع بالعمليات، قائمة يعرض القياسي، األمر

)(--) Unix option (-) – BSD option – GNU optionمن الخيارات (ونجد ان هذا االمر يقبل بثالث أنواع manاالمر باستخدام psالتي تستخدم مع االمر parameterبعض الخيارات المهمة يليوفيما

x terminal a terminal ال تستخدم الولعرض جميع التطبيقات التي تعمل وتستخدم لعرض جميع التطبيقات التي تعمل

لعرض جميع التطبيقات الموجودة حاليا على نظام التشغيل

جميع العمليات التي تخص امر معين

جميع العمليات التي تخص مستخدم معين

لجميع العمليات التي بدايتها عن طريق التر منا

معين pidجميع العمليات التي لها رقم

الخيارات التي تستخدم في تحديد العمليات التي يتم عرضها

الخيارات التي تحدد البيانات التي سوف تعرض عن العمليات

Page 68: Linux Admin I II

RHCSA/RHCE Egypt ®

67 Process Management إدارة العمليات

صبحي طيبه دد. محم

r فقطتستخدم لعرض التطبيقات التي تعمل االن

psauxاو ps-efشيوعا المستخدمة الخيارات أكثر منX register format طريقه عرض البيانات Z األمانطريقة العرض تحتوى على معلومات نظام

textيكون هناك أكثر من برنامج يعمل بنفس االسم كأن يكون مستخدم معين يفتح أحد من ان الممكن من نهأل PID هو يهمني والذيeditor مثلnano

؟ statال فما هو statالونرى من المثال السابق مكتوب SNوتكون عباره عن مكونين مثال process تمثل حالة ال

ان أي عملية على نظام التشغيل تكون في احدى هذه الحاالت الخمسةهو أحد االحاالت التالية الخمسة حيث نجد المكون األول ) 11. Runnable (R) 2. Voluntary (Interruptible) Sleep (S) 3. Involuntary (Non-interruptible) Sleep (D) 4. Stopped (Suspended) Processes (T) 5. Zombie Processes (Z)

1-(R) Runnable :في والية العملياتRunnable نويمك المركزية.صول إلى وحدة المعالجة هي العمليات التي لها الصالحية للو ، ولكن فقط عملية واحدة هي التي يمكن تنفيذها على وحدة المعالجة المركزية runnableلعمليات متعددة (وغالبا ما تكون) ان تكون في والية

الدخول والخروج من وحدة المعالجة المركزية بسرعة، ومع runnableأي عمليه واحده التي تكون قيد التشغيل. ألنه يتم تشغيل العمليات وقت واحد.ذلك، فإن نظام لينكس يعطي مظهر أن جميع العمليات قيد التشغيل في

2-Voluntary(Interruptible) Sleep (S): مثال لها هو يثيرها على العمل. حتى يحدث شيء تفعل شيئاعادة، هذه هي العملية الdaemons network مثل عملية ،httpd طلبات من العميلالفترة التي يتم فيها التي تطبق على خادم الويب. في(client) ،(متصفح ويب) ، ويختار وضع النوم.شيئا لال يفع فان السيرفر

3-interruptible) Sleep (D)-Involuntary (Non: في نفس نفسه موارد النظام تحاول الوصول إلى عمليتينيحدث انه يوجد اأحيان، هذه الحالة في .عملية أخرى بسبب إلى blockتلك أثناء كتابة على قرص blockمن يحاول قراءة عملية واحدة، على سبيل المثال.الوقت

.runnableاالخرى في وضع عمليةيضع الكير نل ، فإن عندما يتم إنهاء العملية االولى .اإلجباري النوممعينه عملية علىالكير نل يفرض 4-Stopped (Suspended)Process (T): ال تؤديالمعلقة والعمليات .العمليات من يقرروا تعليقهم المستخدمين بعض األحيان، يف

.عملياتتعليق اليمكن استخدامها لZ -CTRL المفاتيح في الباش شل، .من قبل المستخدم يتم إعادة تشغيلها حتى أي إجراءات5-Zombie Processes (Z): عملية يتم انتهائها أي تموت تمر بمرحلة لكstatzombie ، تتعثر بعض العمليات األحيان،في بعض

.كلها تقريبا ومن مواردها يستخدمها،الذاكرة التي من هحريرتو، executingانهاء تعمل على zombie processو .وتظل في هذا الوضع .عملية في القوائم تظهر التي يمكن أن ازعاج مجرد، هي عباره عن موارد أي تستهلك ألنها ال

االتي:المكون الثاني بيكون <: The process is running at high priority N: The process is running at low priority. L: The process has pages locked in memory. s: The process is a session leader. l: The process is multi-threaded. +: The process is running in the foreground.

في نهايتها dاضيف لها Daemonsوللتفرقة بين البرامج العادية والـ Daemonsتسمي ايضا Services الـhttp =httpd , vsftp =vsftpd

الخيارات التي تحدد شكل الناتج

Page 69: Linux Admin I II

RHCSA/RHCE Egypt ®

68 Process Management إدارة العمليات

صبحي طيبه دد. محم

topاالمر - ويراقب قصيرة، زمنية فترة كل تلقائيا تحدث قائمة لنا يقدم إصدار أكثر،ولكن أكثر تقدما ويحتوي على معلومات psمثل االمر

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

topبعض المفاتيح التي تستخدم مع االمر يليما زالت تعمل وفيما حفان لوحة المفاتي topعند عمل االمر

gnome-system-monitorاألداة - (x server)ولكن في البيئة الرسومية top العباره عن برنامج يشبه

Application system tools system monitor

cpu%يمكن تحديد البيانات التي تعرض عن العمليات التي تعمل على نظام التشغيل مثل edit preferenceعن طريق اآلتي عند الضغط يمينا على أي عمليه فانه يعطى عدة اختيارات تتحكم في االمر نفسه

Page 70: Linux Admin I II

RHCSA/RHCE Egypt ®

69 Process lifecycle دورة الحياه الخاصة بالعمليات

صبحي طيبه دد. محم

pgrepاالمر - يعمل على عرض العمليات مع تحديد نوع العملية التي يتم عرضها

pgrep [SWITCHES] [PATTERN]

PROCESS LIFECYCLE دورة الحياه الخاصة بالعمليات

؟Adminكـ Processما هو التحكم المتاح لي في 1) Start 2) End (Kill)

1-start -التشغيلعمليه تتم على نظام أي(start process) :تتلخص في شيئين مختلفين (process creation)عملية االنشاء -1 (command execution)تشغيل االمر -2 ، أمر جديد دون تشغيل عمليات، يمكن إنشاء محدد تشغيل أمر بحيث يمكن عملية جديدة يتم إنشاء انه عادةال على الرغم منملحوظه:

.جديدةعملية دون خلق أوامر جديدةيمكن تنفيذ و -لتشغيل أي تطبيق يتلخص في اآلتي:

Forkingتسمى (creating new process)انشاء عمليه جديده -1 ان العملية الجديدة التيبمعنى .نفسه نسخة مكررة من خلقوهذه التقنية تعمل على ، forking تقنية تسمى من خالل جديدة أي عمليه يتم إنشاء

والتي بدورها ترث كل شيء منه من المساحة )،parent( العملية األصلية عنعباره عن تكرار تقريبا بالضبطهو )child( تم إنشاؤه حديثا .umask وال تحياالالصالتي يشغلها من الذاكرة الملفات المفتوحة عليه حتى

Exec-ingوتسمى (new command creation)امر جديد تنفيذ-2 مجموعة ل يحمتو، تعمل بدورها على تفريغ محتوياتها من المعلومات القديمة والتي، execing تقنية تسمى من خاللالجديد مر الا يتم تشغيل

.البرنامج الجديد دخول مع نقطة التنفيذ يبدأالخاص بأمر معين و من التعليمات جديدة، دليل العمل الحالي، umask، مواردها استخداممثل تالمعامالنفس أنه يحتوي على أي .نفس العملية الجديد ال يزال األمر، execing بعد

وغيرها ملحوظه: network daemons مثل ال execingبدون forking يوجد بعض البرامج التي تقوم ب- loginمثل االمر forkingبدون execing يوجد بعض البرامج التي تقوم ب-

/sbin/init اول عمليه هي process ايضا وتسمي النظام في تعمل Mother of all Process and Parent of it self اهم وهو Scheduler هو process management بـ المخصص والجزء kernel هو init قبل تعمل التي الوحيدة الشيء ملحوظة

kernel في جزء pstreeبعدها انشاء باقي العمليات األخرى ويتم رؤية العمليات والعالقة بين العمليات وبعضها عن طريق االمر يتم initوبعد

Page 71: Linux Admin I II

RHCSA/RHCE Egypt ®

70 process SCHEDULING أولوية البرامج

صبحي طيبه دد. محم

pidofاالمر - ألي عمليه كاالتي pid لمعرفة رقم ال

straceاالمر - يستخدم هذا االخر لعرض معلومات كامله عن عمليه معينه

redhat$sudostrace-p5810   (ending process)كيفية انهاء العمليات

تلقي إشارة نتيجة ل بشكل غير طبيعي أو، (normal exit) للخروج من خالل اختياره عادة إما أن يموت عملية ما، فإنه عندما تموت(signal) تترك وراءهاعندما تموت العمليات تعلمنا أن status code )أيضا وتسمى return value( يتم ، عملية ما عند إنهاء.رقم شكل في . status code ما عدا مواردها، انهاء جميع

Zاو Tاو Dاو Sاو Rكما ذكرنا من قبل انى أي عملية على نظام التشغيل تكون في احدى الحالت الخمسة نجد PROCESS SCHEDULING البرامج أولوية

وتعتبر .بشكل فعال موارد النظام تتشاركالتي تتم على نظام التشغيل عملياتجميع الضمان أن هونواة لينكس األساسية ل واحدة من المهام . مشتركةتكون التي يجب أن األساسية من أكثر الموارد واحدة (cpu)وحدة المعالج المركزي

يجري باستمرارالتي (dynamic value) القيمة الديناميكية. القيم األولى هي (scheduling)جدولتهافي التي تؤثر لها قيمتين عملية كل .من قبل مستخدم فقط في بعض األحيان يتم تغييروالتي ،(fixed value) النواة والقيمة الثانية هي قيمة ثابتة تغييرها من قبل PRIالعمود في topاو psوذلك عن طريق االمر (priority)عمليه ألياألولية ويمكن معرفة

Data على Access هناك يكون ال ان العملية هذه ضروريات ومن صباحا 3 الساعة الخميس يوم في مثال تتم backup اخذ عملية :مثال ولذلك اخري مرة Data على Access تعيد لكي وذلك دقائق 3 في تمت ان تريد دمنكأ فانت دقيقة 30 تستغرق العملية هذه كانت فلو نهائيا يستهلك Antivirus مثال اقل اولية هناك اعلي اولية من الحال هو وكما .النظام علىعملية اخري اي من اعلي اولية اعلي backup اعطي

ان ييهمن ما بقدر يستغرقه الذي الوقت يهمني ال ألنه الجهاز امكانيات على احافظ لكي اقل اولويةه بإعطائ فأقوم الجهاز من عالية امكانيات .سريع النظام يكون

0 والقيمة االفتراضية لها 19الى 20- وتتراوح بين niceness value عليها أيضا ويطلق static value علىكل عمليه تحتوي أيضا (priority) والتي بدورها تتحكم في أولوية أي برنامج

nice value سالب( اقل قيمته يكون عندما( في اعلي يكون priority اكبر قيمته يكون وعندما )اقل يكون )موجب من كان بمال مدين اكون ان عكس علىالقيمة هذه لسداد بجهد عادي اعمل فاني شهور 3 لدي وتبقي بمال للبنك مدين اكون ان :مثال

للبنك. ادفعه لكي المال تحصيل في أكبر بسرعة ارغب الحالة هذه في فاني يومين منذ دفعه المفترض niceاالمر -

اآلتي:وتتم ذلك عن طريق process niceness اليعمل على وضع قيمة

Page 72: Linux Admin I II

RHCSA/RHCE Egypt ®

71 process SCHEDULING أولوية البرامج

صبحي طيبه دد. محم

سالب ولكنه تعنى خيار ىال تعن –حيث 19أصبحت simulation حيث نالحظ ان قيمة ال priorityيستخدم لمعرفة PRI والعمود nice valueيستخدم لمعرفة NIالعمود

19 اعطيه اولوية اقل اعطيه ان ارغب وعندما 20- اعطيه اولوية اعليالبرنامج اعطي ان في عندما ارغب العمل بعد تبدأللبرامج التي لم priority الفي تغير قيمة niceويستخدم االمر

reniceاالمر - Rللبرامج التي تعمل االن وتكون في الوضع niceness valueيعمل على تغير قيمة

او االسم او اسم المستخدم او المجموعة وذلك باستخدام الخيارات األتية pid ويمكن تعريف العملية بال

19فهذا يعنى انه سالب 19-وهذا يعنى انه عند كتابة niceكما الحال في االمر (-)لم تسبقها 19ويجب ان تالحظ ان القيمة ألي مستخدموهو ايضا من حقه ان يعدلها rootهو Priorityفي اي يعدل والذي من حقه ان

(greedy process)يزودها أي يجعلها بالسالب ان له يمكنال و 15 0 من فقط به الخاصة Priority يقلل ان حقه من العادي المستخدم على النظام loadنه من الممكن ان يكون هناك مستخدم يريد ان يعمل ال2-end - إيقاف التطبيقend process :ذلك عن طريق ارسال ويتمsignal الىkernel فيه االمر مويوجد في جنو/لينكس ونستخدkill.

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

Software interrupts (المقاطعات)عمليةأي تنفيذ يقف ألنها يمكن أن. ال ينتمي الذاكرة التي يحاول الوصول إلى أو، على صفر عدد تقسيم عملية مثل، السلوك الشاذ ذات عملياتال لوقف اإلشاراتالكير نل يستخدم .عمليات أخرى إرسال إشارات إلى أيضا عملياتلويمكن ل.إليها

Page 73: Linux Admin I II

RHCSA/RHCE Egypt ®

72 process SCHEDULING أولوية البرامج

صبحي طيبه دد. محم

كاالتي: man 7 signalاو l–killوذلك عن طريق االمر (signals)ولرؤية جميع االشارات

؟(signals)لماذا يتم ارسال اإلشارات يتضح من األمثلة التالية. وذلك ما، إلى عملية signals هناك مجموعة متنوعة من األسباب لماذا قد يرسل إشارات

Hardware exception .حيث ان العمليات تطلب من الهارد وير بعض العمليات الخاطئة Software condition في بعض األحيان تقوم بعض العمليات باإلبالغ عن العمليات ذات السلوك الشاذ

Interrupts Terminal 20 رقم signalيرسل ال zctrl+و 2رقم signalيرسل ال ctrl + cمثل الفتاح Other process الى عمليات أخرى signalsوبعض العمليات تقوم بإرسال

killاالمر - معينه ألي عمليه. signalإلرسال Killيستخدم االمر

فإنها تفعل أحد اآلتي signalعندما تستقبل العملية أي اشاره تنفذ الكير نل معالج اإلشارة االفتراضي-1

لكل نوع من اإلشارة هناك استجابة افتراضيه يقوم بتنفيذها الكير نل يتم تعين كل اشاره الى واحد من السلوكيات األتية: Terminate :(انهاء) ) العملية التي تتلقى هذا النوع من اإلشارة تقتلkilled( Ignore (تجاهل) : العملية التي تتلقى هذا النوع من اإلشارة تتجاهله Core : العملية التي تستقبل هذه اإلشارة تقتل ولكن قبل هذا يعمل على حفظ صوره للذاكرة لهذا

يستخدم عن طريق المبرمجين ليساعدهم في حل المشكالت الخاص به.والتي يمكن ان coreالبرنامج ويضعها في ملف اسمه Stop (إيقاف) : .إيقاف او تعليق العملية التي تستقبل هذه اإلشارة

يختار تنفيذ معالج اإلشارة االفتراضي -3 يختار ان يتجاهل اإلشارة-2 اى استجابة أخرى لإلشارة عن طريق برنامج معين يجيب توثيقه معه-4

أشهر اإلشارات التي يستخدما المستخدم كاالتي

Page 74: Linux Admin I II

RHCSA/RHCE Egypt ®

73 process SCHEDULING أولوية البرامج

صبحي طيبه دد. محم

استخدام اإلشارة في انهاء العمليات برنامج ان أيوال يستطيع 9اإلشارة رقم وأشهر اشاره إلنهاء العمليات هي في ارسال اإلشارة االفتراضية الى العمليات killيستخدم االمر

برنامج.اقوى منها في انهاء أي 9ولكن 15وتستخدم أيضا اإلشارة يتجاهلها ويتم تنفيذها عن طريق الكير نل kill-15: gracefully end# القفل قبلتستأذن Process (Default Signal)للـ terminatedتعمل

#kill-9: Force Kill # :service kill-1 االعدادات الخاص بـ لملف قراءة اعادة تعمل

pkillاالمر - يستخدم إلرسال اشاره ألي عمليه بطرق كثيره وصيغته

pkill[-signal][SWITCHES][PATTERN]

Killallاالمر -

monitor systemالإمكانية انهاء العملية أيضا عن طريق - end processبعد ذلك نختار ثمعمليه وذلك عن طريق الضغط يمينا على أي

ثم استخدام topويمكن انهاء أي عمليه عن طريق االمر Kill processاو الشاه التأليه رفتظه kالمفتاح

Page 75: Linux Admin I II

RHCSA/RHCE Egypt ®

74 Job scheduling (task) جدولة المهام

صبحي طيبه دد. محم

JOBSاالمر

(foreground)ولكنه يسمج بأمر واحد فقط ان يعمل في االمام (job)الباش شل يسمح لألوامر ان تعمل في الخلفية وفى هذه الحالة يكون لها رقم يسمى & cat teba$مثل &نكتب هذه العالمة بعد أي امر (background)ولجعل أي امر يعمل في الخلفية

job number ولمعرفة جميع العمليات التي تتم في الخلف(background) نستخدم االمرsjob يقوم ولكن نالحظ عند الخروج من الشل فإنه > command>&$nohupبإنهاء االمر الذي يعمل في الخلفية وللحفاظ عليه يعمل حتى ينهي عمله قبل خروج الشل نستخدم االتي

تشير الى الوظيفة التي تسبقها –واإلشارة + تشير الى الوظيفة الحالية واإلشارة bgالخاص به والعكس عن طريق jobsالثم رقم fgعن طريق االمر foreground الالى background الوإلحضار أي امر من

مثل المثال التالي ويسبقه العالمة % jobفي غلق أي برنامج عن طريق رقم ال killويمكن استخدام االمر

JOB SCHEDULING (TASK) جدولة المهام

جدوله مستمرة crontabوتعمل جدوله مره واحده واالمر atهو فعل امر ما في وقت الحق وتتم عن طريق االمر تعريفه:- ronC

كل مرة واحدة، دقائق 10كل مثل، على أساس منتظم تشغيلهاليتم لجدولة المهام للمستخدمين حيسم (cron services) كرون خدمة لتكوين crontabمراألباستخدام وقت ما في هايجب تشغيلاالوامر التي ما تحديدلهم امكانية للمستخدمين .مرتين في الشهر أو، يوم خميس

.single user modeال يعمل في crond daemon والمتحكم فيه هو ال (cron)نكروجدول (etc/cron.allow,/etc/cron.deny/)وهما cronوقبل التعمق في هذه السيرفس يجب النظر الى هذين الملفين والذين يتحكمان في وظائف

اما إذا لم cronوجد فانه يعنى ان المستخدمين المدرجين فيه هما الوحيد الذي لهم إمكانية انشاء ملف فاذا-: (etc/cron.allow/)الملف .etc/cron.deny/ما عدا المدرجين في الملف cronأي مستخدم له الحق في انشاء يوجد فان

.cronلو هو موجود وفارغ يبقى كل المستخدمين لهم صالحية انشاء -: (etc/cron.deny/)الملف .(root user)لو الملفين موجودين الوحيد الذي له الصالحية هو المستخدم الجذري

Page 76: Linux Admin I II

RHCSA/RHCE Egypt ®

75 Job scheduling (task) جدولة المهام

صبحي طيبه دد. محم

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

كم هذا الملف يحدد. etc/anacrontab/فيتم قراءة الملف anacronعند استدعاء االمر أو أي وقت آخر، وقت تشغيل الجهاز في .من الزمن وشكله كاالتى: يجب ان تعمل وما االوامر التي، األوامر قبل تشغيل االنتظاروقت ، تشغيل األوامر مرة يجب

cron tableشكل ال نجد انه يتكون من عدة حقول و cron tableوالذى يحتوى على شكل وطريقة شرح ال etc/crontab/قم بفتح الملف cron tableلفهم الو

(#)(مالحظات) وهو عباره عن جميع السطور التي تبدأ ب commentالحقل األول وهو عباره عن -1 =name(المتغيرات) وهو عباره عن جميع السطور التي يكون فيها environment variableالحقل الثاني وهو عباره عن -2 السطور األخرى.) وهي cron table(العمليات التي سوف يتم تسجيلها في cron commandالحقل الثالث وهو عباره عن -3

.crond daemonالخاص بالخادم crontab إلضافة وتعديل وإزالة السطور من الملف crontab يستخدم االمرواالمر var/spool/cronيتم تخزينها في المجلد / crontabالملفات الخاصة التي يتم انشائها عن طريق المستخدم عند استخدامه االمر

crontab يستخدم البرنامجvi إلدخال معطياته. نصيكمحرر كاالتى: crontabصيغة االمر

Syntax: crontab [-u user] [option] -e Edits the user’s crontab -l Lists the user’s crontab -r Deletes the user’s crontab -i Prompts before deleting the user’s crontab

Page 77: Linux Admin I II

RHCSA/RHCE Egypt ®

76 Job scheduling (task) جدولة المهام

صبحي طيبه دد. محم

في ريد هات انتر crontabمثل المستخدم العادي والوضع االفتراضي للملف crontab) يملك هو االخر root userالمستخدم الجذري ( برايز لينكس يكون ملف فارغ.

.المسجلين، ثم يقوم بتنفيذ األوامر باألعضاءالخاصة crontab بفحص كافة ملفات Crond daemon مرة واحدة كل دقيقة، يقوم الخادم .crondبواسطة السيرفيس Crond daemonفي ريد هات إنتربرايز لينوكس، تتم إدارة الخادم

.chkconfig مع األمر تعطيل افتراضيا أوتمكين و ،service األمرعن طريق فحصال أو، والتوقف، هذا الخادم يمكن البدء

etc/cron.d/والمجلد etc/crontab/ملف االعداد : أيضا وهو crontab، ولكن النظام ككل لديه ملف crontabال يقتصر األمر على المستخدمين الذين يملكون ملفات

/etc/crontab في كثير من األحيان، كان الملف فارغ ولكن في اإلصدارات السابقة من ريد هات إنتربرايز لينوكس، نجد هذا الملف يحمل . run-partsاالمر والتحكم فيها عن طريق االسبوع. والتي يعمل على تنظيمهاو مدخالت لكل ساعة، اليوم، والشهر

كل دقيقة مرة واحدة تشغيلهب crondعندما يقوم الخادم etc/cron.d/اإلضافية الخاصة بالنظام يتم تخزينها في المجلد crontab ملفات الالمجلد هذا كل ملف في محتويات إلحاق، وذلك عن طريق هالتشغيلداخل الملف ذات الصلة عن وظائفوالتي من خاللها يقوم بالبحث

/etc/cron.d إلى /etc/crontab / .

الخاصة بالمستخدمين مع وجود فرقين فقط بينهما: crontab الخاصة بنظام التشغيل تشبه الى حد كبير ملفات ال crontab ملفات الوال يتم التعامل معها عن طريق var/spool/cron/الخاصة بالنظام ال تخزن في المجلد crontab ان ملفات الالفرق األول -1

ولكن بدال من ذلك يتم التعامل معها مباشرة عن طريق محرر نصي. crontabاالمر الخاصة بالمستخدمين والتي crontab شكل البيانات داخل الملف تحتوي على حقل سادس ليس موجود في ملفات الالفرق الثاني -2

ق الذي سوف يكون االمر المراد تشغيله ينطبخاص بالمستخدم لمدرج تشغيله في الملف وهذا الحقلمس ولكن قبل االمر اايكون بعد الحقول الخ والذي يكون دائما المستخدم الجذري. (run as administrator in windows)عليه والتي تشبه

فنجد انه يحتوي على sysstatصمم لتبسيط إدارة حزم البرمجيات. حيث انه عند تثبيت حزمه معينه وليكن حزمة etc/cron.d/المجلد .etc/cron.d/ملفات االعداد الخاص به في المجلد

/etc/cron.hourly/والمجلد parts-runاالمر . cron.periodفي واحد من المجلدات run-partsيحدد دوريا تشغيل االمر anacrontabملف النظام للملف run-partsفي تشغيله االمر anacrontabمشابه لوظيفة 0hourlyاعداد نجد ملف /etc/cron.d/عدنا الى المجلد إذا ملحوظه:

/etc/cron/hourly

بانه يعمل على انشاء حلقه متصلة لمحتويات المجلد من ملفات وتنفيذ كل ملف قابل للتنفيذ تم اكتشافه. run-partsحيث نفهم من االمر

Page 78: Linux Admin I II

RHCSA/RHCE Egypt ®

77 Job scheduling (task) جدولة المهام

صبحي طيبه دد. محم

هذا السكريبت وظيفته التأكد من تشغيل 0anacronنجد انه يحتوي على سكريبت اسمه /etc/cron.hourly/وبالعودة الى المجلد anacron ومع تقدم الوقت من يوم الى اخر ومن أسبوع الى اخر فان الملف التشغيل.حتى لو لم يتم إعادة/etc/cron.d/0hourly سوف على حسب الحاجة اليومية او األسبوعية او الشهرية. run-parts سوف ينتهي من تشغيل االمر anacron يتأكد من ان

ن يمك ليست مهمه، تشغيلهل الوقت المحدد، ولكن شهرية أو، يوم أسبوع، كل ساعة يجب تشغيلها التي المهام لديه بعض إذا كان المسؤوللمجلد ا البرنامج النصي(السكريبت) فيهذا وإسقاط، األمر من النوع شل الذي تقوم بتنفيذ إنشاء برنامج نصي(سكريبت) فقطمسؤول لل

<crontabالنظام ملف يا باستخدامتلقائ تشغيل البرنامج النصي وعندئذ يمكن .البرنامج النصي قابل التنفيذ لجعل، وتذكر المناسب الخاصة بالنظام) crontabهو مثال على ملفات ال( tmp//المجلد

يستخدم هذا المجلد من قبل المستخدم لتخزين ملفاته المؤقتة ولكن هذا المجلد قد يمتلئ بالملفات الغير مستخدمه لذلك تتبع ريد هات المستعملة عن طريق الملف الذي يأخذ وقت معين دون التعامل معه يتم حذفه ولكن كيف يتم ذلك؟انتر بريز لينكس طريق لحذف الملفات الغير

ولكن بعد انتهاء /tmp/موجود في المجلد ال اتل الملفيوذلك بانه يحدد عدد الساعات التي سوف يز :tmpwatchعن طريق استخدام االمرثم تتركه /tmp/يعنى عشرة أيام لذلك ال تخزن ملفاتك في المجلد ساعة 240ض بيكون قت االفتراوهذا الوقت بدون التعامل معه يتم حذفه وال

لمده أسبوعين وبعد ذلك تتوقع وجوده.يتم لكي etc/cron.daily/الخاص بالنظام يقوم بتسجيل هذا االمر يوميا في crontabولكن للقيام بهذا االمر هل تتوقع كتابته يدويا. لذلك ال

تنفيذه اليا. atاالمر -

daemon atd الخاص باألمر س(اسم السيرفيat(عند " مثال، في وقت الحق التي يتعين القيام بها وظائفتقديم يسمح للمستخدمين ل ويمكن ان تتأكد من انه قيد التشغيل بطريقه بسيطة كاالتي: .يكون قيد التشغيل يجب أن، فإنه من اجل استخدامهو" am2:00 الساعة

في وقت محدد ليتم تشغيلها atd daemonالعلميات في يسجلأن في at استخدام األمريتم في التحكم في السيرفس. cronمثل ال (etc/at.allow , /etc/at.deny/)ونجد هو االخر يستخدم الملفين اآلتين

او عن طريق كتابته يدويا f–مع الخيار atعن طريق ملف به العمليات واستخدامه مع االمر atd daemon ويتم تسجيل العلميات في الat[-f filename | -m]TIME -d إلزالة عمليه -c ة ما موجود في جدول المهماتيلعرض بيانات عن عمل Ctrl+d للخروج من االمر -l لعرض جميع العمليات المسجلة

at يقوم بنفس عمل ال batchاالمر

:atامثله على االمر # at 9am # at now + 3 days # at 1:30 3/22/10 # at 10:07am at> at> wall “Hello World” at> <EOT>

Page 79: Linux Admin I II

RHCSA/RHCE Egypt ®

df راالم 78

صبحي طيبه دد. محم

DFاالمر

dfفي بعض األوقات تحتاج الى المساحة الفارغة المتاحة ولمعرفة ذلك تستخدم االمر

DUاالمر

يعرض حجم الملفات ولكنه أكثر تخصيص للمجلدات ألنه dfويستخدم أيضا لمعرفة المساحات الفارغة والمتاحة مثل االمر ولكن يعطى معلومات عن المجلدات والمساحات dfمعلومات عن المساحة الكلية مثل ىوهذا يعنى انه ال يعطالموجودة في المسار المعطي له

دد حالمستخدمة والفارغة بها وعند استعماله سيقوم بعرض المعلومات عن المجلد الذي يراه المستخدم االن وهذا هوا الوضع االفتراضي إذا لم ي المسار.

-h بعرض النتائج بطريق سهله يمكن قراتها يقوم -s النهائي) عن المجلدات ومساحاتها الحجم(يقوم بعرض ملخص

يقوم بعرض المساحات الفارغة بطريقه سهله للمستخدم

Page 80: Linux Admin I II

RHCSA/RHCE Egypt ®

مقدمة 79

صبحي طيبه دد. محم

مقدمة لينكس توفير عدد كبير من األدواتواحدة لكل مهمة، أو وجود طريقة واحدة للقيام. من الشائع في ال تقوم فلسفة لينكس على وجود أداة

.البسيطة بدرجات متفاوتة للقيام بالمهام المختلفة ؟جنو/لينكسمما يتكون نظام التشغيل

األدوات ودون .فقط النظام من ي المركز الجزء هي فالنواة رأينا، كما kernel :لينكس نواة-1 يتكون من فات والمحررات والصدفات .كامل نظام على الحصول يمكننا يكن لم وغيرها، والمصر

جنو، مشروع عبر FSF أوجدتها التي البرمجيات عبر لينكس تطوير أكمل :جنو تطبيقات-2 وأدوات أخرى. gcc ومصنفا emacs مثل محررات وفرت والتي .السابقتين النقطتين في ذكر لما إضافة .المصدر مفتوحة تكون ما عادة :اآلخرين تطبيقات-3 GUIاو رسوميه CLIواجهة المستخدم سواء كانت نصيه-4

"، والتي تتضمن ملفات Packageالبرمجيات التي تقدمها توزيعة جنو/لينكس أو المضافة الحقا. عادة ما تقدم في وحدات تسمى "حزم او برمجية معينة، إضافة إلى الخطوات العديدة الالزمة لتحضير التثبيت ومن ثم إعداده في بعض االحيان أو تحديث أو إزالة برمجية معينة.

لالحتفاظ بقوائم للحزم المثبتة أو التي يمكن تثبيتها، إضافة إلى التحكم باإلصدارات package mangerتوزيعة برمجية إداريةوتحمل كل الموجودة أو االحتماالت العديدة لتحديثها عبر المصادر األصلية المختلفة.

SHELL

البرمجة بلغة الصدفة

لإلشارة إلى برنامج يخدم كواجهة بين المستخدم ونواة نظام جنو/لينكس. shell يستخدم المصطلح العام "صدفة" أو شلوع نالصدفة أداة نظام تسمح للمستخدمين بالتفاعل مع النواة عبر ترجمة األوامر التي يدخلها المستخدم في سطر األوامر أو الملفات التي من

ن النظام، بينما تبقى بقية نظام التشغيل مخفية عنهم.. الصدفة هي ما يراه المستخدمون م(shell scripts) برمجينص لشل :باآلتيويعتبر الباش شل هو الشل االفتراضي في توزيعة ريد هات ومعظم التوزيعات األخرى والتي يتميز

آلتياوهي القدرة على تخزين جميع العمليات التي تتم عليه ويتم التنقل بينهم عن طريق األسهم او استخدام history ال-1 والتي تسجل في الملف .loginمن اول ما دخل terminal اللعرض بجميع األوامر التي كتبها المستخدم في الشاشة الطرفية historyاالمر

./bach_history مع الخيار–c كاالتي history –c اليعمل على مسح جميع بيانات history .cينفذ اخر امر يبدا بحر ف ال c!ينفذ اخر خامس امر و االمر 5-!ينفذ اخر امر و االمر !!االمر

احده فانه يكمل االمر إذا كان هومره و tabوالتي تتم عن طريق كتابة اول حرف من االمر والضغط على التكملة االليه -2

.الحرف بهذا تبدأمرتين يعرض جميع األوامر التي tabمن امر فنضغط أكثركان إذايحمل جزء الحروف التي كتبتها اما الذيالوحيد

Working الشلWith Shell & script

الفصل

Page 81: Linux Admin I II

RHCSA/RHCE Egypt ®

TYPE OF SHELL أنواع الشيل او الصدفات 80

صبحي طيبه دد. محم

TYPE OF SHELL أنواع الشيل او الصدفات

من مشروع برمجيات جنو. إنها أمنذ تضمينها في أنظمة لينكس كصدفة مبدئية. تشكل هذه الصدفة جز Bashلقد تزايدت أهمية باش

صدفة بورن األصلية. هذه هي الصدفة التي سنركز عليها. ، مع االحتفاظ بسياق)وكورن بورن وسي (محاولة لدمج الصدفات الثالثة

SHELL CONFIGURATION FILEملفات االعداد للشل

سينفذ الذي non-login stateلل etc/bashrc/وفى ملف login stateلل etc/profile/ويمكن وضع متغيرات ومسارات شائعة في ملف / /etc/skel قبل الملفات التي يملكها كل مستخدم. ملفات بدء الصدفة توضع في حساب المستخدم عند إنشائه عادة تكون منسوخة من مجلد

لة عن تفعيل وتشغيل العمليات المطلوبة في عدد من المراحل:ئوبعد دخولها مس shellوتصبح ال مثل * ? $ wildcards. تقدير المحارف الخاصة 2 األوامر. قراءة وترجمة سطر 1 مع االشارات. .التعامل-4 ” &".والعمليات الخلفية ”| ”. إدارة تحويالت الدخل/الخرج المطلوبة، واألنابيب3 قراءة ملفات السكريبت.-6 لعمل البرامج. .التحضير-5 .shell ، أو تشغيل التطبيقات، أو نصوص الshell أو أوامر ال تكون سطور األوامر عادة طرقا لتشغيل أوامر النظام،

BASH SHELL INITIALIZATIONاو حاالت الباش الشل

Login, Non-login, Interactive, and Non-interactive Shells 1-shells login :-في تسجيل الدخول عند .إلى جهاز الدخول عند التي تشاهدها الشل األولى هيCLI باستخدامالشاشة النصية virtual

console ،االتصال عن طريق أو عن طريقssh ،هو خاص بك تفاعلي شل أولlogin shell login shell بك هو الخاص Xال يرى الذي يستخدم في إطالق ال سيرفر الشل، يتم استخدام X رسومية باستخدام بيئة عند تسجيل الدخول

non-interactiveاو interactiveالشل قد تكون باإلضافة إلى ذلك .non-login shellأي شل اخرى تسمى

Shell Description(الوصف)

Sh Bourne shell صدفة بورن

كانت هذه دائما صدفة يونكس القياسية، والتي تضمنتها كل أنظمة يونكس في بعض االصدارات. فيمكانها، وهي إصدار محسن من صدفة بورن التي انشأها ستيفن بورن Bash جنو/لينكس تحل باش

.)#هي root ال(للمستخدم $ في نهاية السبعينات. المحث المبدئ فيها هو AT&Tفي

bash باش

. صدفة جنو/لينكس المبدئية.) Bourne-Again Shellاختصار ل (

Ksh كورن Korn shell

في منتصف AT&Tكتبها ديفيد كورن –هي مجموعة من صدفة بورن (تم االحتفاظ فيها ببعض التوافقية) .$اإلضافات. المحث المبدئي هو ، مع بعضCوالتي تحتفظ ببعض مزايا صدفتي بورن و-الثمانينيات

ash

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

csh

سي شل

ر، مثل سجل األوام-طورها بل جوي في جامعة بيركلي قرابة نهاية السبعينات، وبها إضافات ملفتة مقارنة ببورن وتكمل أسماء الملفات وتتحكم –)، والحساب من سطر األوامر aliasواألسماء المستعارة (أو االختصارات

. يفضل مستخدمو يونكس هذه الصدفة للتفاعل مع النظام، %المبدئي للمستخدمين هوبالوظائف في الخلفية. المحث ألن النصوص البرمجية فيها مضغوطة أكثر وتنفذ أسرع. وفي ذات الوقت، من مزايا النصوص البرمجية لصدفة

tcshهو أن السياق فيها مبني على لغة سي رغم أنها ليست نفسها. وطورت الى –كما يشير اسمها –سي

صدفات اخرى

.zshكاإلصدارات المقيدة او المتخصصة من المذكورة أعاله و

shprofile ./ المستخدم، ويتم تنفيذه عند ولوج المستخدم)(في حساب

ksh/.profile &/.kshrc ) وهو نص تنفيذي (

tcsh/etc/csh.cshrc /etc/csh.login ~/.cshrc ~/.history,~/.login,~/.cshdirs

bash /etc/profile /etc/profile.d/*.sh ~/.bash_profile ~/,bashrc /etc/bashrc

zsh/etc/zshenv,~/.zshenv,/etc/zprofile,~/.zprofile,/etc/zshrc,~/.zshrc,/etc/zlogin,~/.bashr

Page 82: Linux Admin I II

RHCSA/RHCE Egypt ®

TYPE OF SHELL أنواع الشيل او الصدفات 81

صبحي طيبه دد. محم

الشل االخرى التي تكون نتيجة فعل . اماinteractive shell هي ،X السيرفر في الشل التي تفتح أو، subshells يدويا التي تبدأالشل ، عادة Non-interactive shell .امر ما هي

في توزيعة الريد هات فان هذا الملف يعمل على انشاء . login shell يعمل أوال على تحميل ال etc/profile/ الملف-1التشغيل: عند بدء حيث نالحظ ان اول ملف يبدا االستعانة به عن بدء HISTSIZEو HOSTNAMEو USERو PATHمثل البيئية مجموعه من المتغيرات

etc/profile/التشغيل هو RPM حزم هذا المجلد من اجل ويستخدم( etc/profile.d/*.sh/تحميل أي ملف سكريبت يعادل االتي يبدأ بعد ذلك-2

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

. RPM حزمة تتعارض مع أي اسم أي حزمه التي من المرجح أن وتفعيل (home directory)ينظر الشل الى مجموعة ملفات موجودة في المجلد الخاص بالمستخدم الحالي بعد ذلك-3

بدوره يعمل على والذي bach_profile/~اول ملف موجد في هذا المجلد وفى توزيعة ريد هات الملف األول االفتراضي الذي يتم تفعليه هو PATHفي مسارات الملفات التنفيذية في المتغير HOME/bin/$ وضع المسار

ثم يقوم بتشغيله bashrc ./~يبدا في البحث بداخله عن الملف بعد ذلك-42-login shell (Interactive)-Non: -وحدة تحكم األوامر من قراءةتقوم ب التي الشل(console) نافذة طرفية أو . (Terminal)هذه

login shellمن ترث ولكنها يمكن أن، بدء التشغيل دعن (alias shell) األسماء المستعارة قراءة تحتاج إلىالخاص بالمستخدم في homeالموجود في مجلد ال bashrc ./~هو non-login shellالملف الوحيد المستخدم في التحكم والتعديل في

يقوم بالعديد من العمليات منها تحديد etc/bashrc/نجد ان الملف . حيث/etc/bashrc/توزيعة ريد هات والذي بدوره قوم بتفعيل الملف user’s default umask وال. PS1

3-interactive)-login shell (non-Non: -على تفعيل أي ملف عند بدء تشغيله ويمكن تغيره عن طريق تعديل المتغير ليعم الBASH_ENV .عند االنتهاء والخروج من الشل او نظام التشغيل فان ال login shell يعمل على تفعيل الملف~/.bash_logout ريد في

.عند اإلنهاء الحساسة المعلومات شاشة يتم مسح بحيث، ،برايز لينوكسانتر هات

Page 83: Linux Admin I II

RHCSA/RHCE Egypt ®

shell script الشل سكريبت 82

صبحي طيبه دد. محم

etc/skel/الملفات مخصصة من نسخ المستخدمين الجدد إلعطاء أيضا استخدامه يمكنك .الشل مخصصة لملفات تهيئة نسخ المستخدمين الجدد يعطي

تقوم والتطبيقات لينكسمن األوامر . والعديدhome directory ملفات الوتعطى ايضا المستخدمين الجدد .التطبيق أوي أمر أل التهيئة ملفات (.)الرمز ب تبدأالتي المجلد الرئيسي الملفات في من التخصيص قراءة المعلوماتب

بعض العالمات المهمة المستخدمة في الشل

(;) مع األوامر عن طريق فاصل سطر أوامر واحد في عدة أوامر كتابة الباش شل يسمح للمستخدمين -

( )وذلك عن طريق وضعهم بين االقواس subshellالباش شل يسمح للمستخدمين بتنفيذ األوامر في ال -

exitطريق االمر عن sub shell الويتم الخروج من bashعن طريق كتابة االمر subshell ملحوظه ويمكن أيضا بدء ال SHELL ------- echo $SHELL$هناك طريقة سريعة لمعرفة الصدفة التي نتواجد فيها كمستخدمين باستخدام المتغير -

etc/shells/انظر الى shellسيعرض صدفات النظام المتاحة –l. نفس هذا االمر مع الخيار chshويمكن تغيرها باألمر #chsh[-sshell] [-l] [-u] [-v][username]

كان للملف صالحيات إذا( االسم، والتي يتم تفسيرها وتنفيذها باستخدام ) لشل◌ سكربات( تنفيذيةكلها تسمح بكتابة نصوص - يعنى ان الشل يعتبر صلة الربط بين المستخدم ونظام جنو/لينكس. وهذا الصدفةبتمريره كمعامل ألمر أو) تنفيذ

وهيا احتياجاته،، ويمكن لكل مستخدم ضبطها بناء على shell configuration fileلكل صدفة ملفات إعداد مرتبطة بها - دء عمل الشل او الصدفةينفذ عند ب scriptsعباره عن ملفات تنفذيه

<type<command$لتحديد المسار التنفيذي ألوامر األخرى وتكون صيغته typeاالمر

أو بقراءة السطر األول <file <scriptname ، مثالfileباستخدام األمر (script)يمكننا تحديد الصدفة التي يعمل بها النص البرمجي bash, sh, csh, ksh هو name/!#، حيث ال bin/nameللملف، والذي يكون

Cygwinيمكننا تشغيل برنامج الباش شل على بيئة مايكروسوفت ويندوز وذلك عن طريق البرنامج فنجد ان الشليشابه تطبيق built-inولكن إذا ارادنا استخدام تطبيق خارجي ليس built-inالباش يتميز بوجود تطبيقات خاصه به وتسمى

باستخدام االمر حتى يسمح باستخدام تطبيق خارجي (built-in)الشل ال يسمح بذلك ولحل هذا ال بد من إيقاف التطبيق الخاص بالشل enable –n <built-in app> وإلعادة تفعيله مرة أخرى نستخدم االمرenable من غير الخيار–n .

SHELL SCRIPTالشل سكريبت

مع ملف نصي عباره عن (script), والسكريبت automationهو ال على نحو فعال برايز لينوكسانتر ريد هات ستخدامال حالمفتا مقدمه: .فيه من األوامر قائمة

الباش هو interpreterيكون ال ما عادة.بدوره كل أمر التي تدير ،interpreterتسمى ، محدد من خالل برنامج هايتم إرسالاالوامر التي أكثر لغات البرمجة تسمح لك الستخدام (interpreter)االخرين المترجمين و.العادي لينكس أمر هوكل أمر و) bin/sh/او bin/bash/شل( .روبيو نبايثوبيرل، مثل قوة

:Prog مخزن في الهارد ديسك دون تنفيذ ووه رالكومبيلهو عبارة عن ملف تمت ترجمته عن طريق :App ولكنه ينفذ االن progهو عبارة عن

Window : .exe or .msi (Microsoft Installer) Linux .bin

Page 84: Linux Admin I II

RHCSA/RHCE Egypt ®

shell script الشل سكريبت 83

صبحي طيبه دد. محم

interpreter &Compilerالفرق بين Compiler Interpreter

يظل الكود كما هو binary fileيتحول الكود الي لغة وسيطة بين لغة البرمجة ولغة االلة االوامر تنفيذ في الترتيب من بدال رسط اي في امر اي تنفيذ يمكن حيث الكود تنفيذ في الترتيب يشترط ال

الخطأ ماعد راألوام ينفذ خطا وجود حالة في وسيطة لغة اي كامال الملف يحول انه حيث يعمل ال فانه خطأ وجود حالة في

Python، Perl، Bashمثل ++C، Cمثل مترجم مترجم

للعمل على بيئة لينكس binللعمل في بيئة الويندوز او ملف exeاما ينتخ ملف فانه compileبعد ان يحصل للكود تحويله عند ويتم Java byte codeوتسمى Interpreterو compiledولكنها تنتج صيغه وسيطه بين .compiled langالجافا تعتبر

ومعها يمكن انتاج صيغه وسيطه من خالله يتم تنفيذ الكود مثل الجافا .Interpreter langاما البايثون فهيا binالتنفيذ الى Script طرق انشاء الـ

:المهمة يجب أن تتذكرها عدد قليل من األشياء، هناك بك الخاصة (script)البرامج النصية كتابة البدء في فيقبل أن تتمكن السطر األول:-1

مع يتعامل سوف النظام فان معين مترجم تحديد عدم حالة وفي السكريبت بها يكتب سوف التي (interpreter)المترجم تحديد وفيه يجب (!#)ويتم ذلك عن طريق كتابة عليه شغال اللي الشل نوع نفس من انه على الملف

#!/bin/python Python الخاص بـ Interpreter فانه يستدعي Python بلغة مكتوب الملف كون حالة في

السطور يكتب فيها األوامر والتعبيرات المستخدمة لعمل السكربتباقي -2 chmodعن طريق االمر (executable)جعل الملف ملف امرى-3

#chmodu+x<scriptname> Script طرق تنفيذ الـ

كتبت بعد ذلك فقط و ،(home directory) الخاص بك يالمسار الرئيسفي foo.sh يسمى (script) برنامج نصي إذا قمت بإنشاء • ) .no such file or directory" error"( خطا تحصل على يحدث شيء وسوف ال foo.shاالمر

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

المشكلة نفعل االتي تشير الى المسار الحالي والبد ان تكون في (.)حيث script/~او script/.عن طريق تحديد مكان السكريبت وذلك عن طريق كتابة -1

المسار الذى يحتوى السكريبت PATHبوضعه في المتغير طريق كتابة مسار الذي فيه السكريبت كامل أي تعرف نظام التشغيل مكان السكريبتعن -2 ذلك نكتب االمر فقط فينفذ دوبع bin/~وبالنسبة للمستخدمين االخرين root بالنسبة للمستخدم ال bin/وضع ملف السكربت في المسار -3

RETURN VALUE

طلبلا ويشار إلى عملياتلشل. يكون ا، وغالبا ما عملية أخرى من بناء على طلب جميع العملياتمدة حياه، تبدأ لديه في لينكس عملية كل(requesting process) إنها ال parent ،والعمليات التي نشاءة حديثا child، عمليات ال عادة child عندما .للموت يتجه ثم واجباته ينفذ

عمليات ال.exit statusاو return value، وتسمى يموت عندما وراءه المعلومات قطعة صغيرة من يترك تموت العملية (انهاء العملية)parent هو المسؤول عن جمع return value (القيم المرجعية)ال من child .الموتى

Page 85: Linux Admin I II

RHCSA/RHCE Egypt ®

shell variable متغيرات النظام 84

صبحي طيبه دد. محم

return valueقيمة ال الحرية في اختيار لها البرامج, 255إلى 0من التي تتراوح من األعداد الصحيحة في شكل تأتي return value ال .عند اإلنهاء

تعنى شكال من اشكال الفشل. 0تعنى النجاح في كل ما كان يحاول تحقيقه واي قيمه اخر غير 0تساوى return valueعندما تكون النستخدم return value والستدعاء ال (?)يسمى صألخر برنامج نفذ في المتغير خا return value الباش شل يعمل على حفظ قيمة ال

?$ echo$ االتي

وتعنى الفشل في تنفيذ االمر 0نجد انها ال تساوى return value قيمة ال ىفي المثال التالي نكتب االمر خطا ونر

والجدول التالي فيه معاني معظم األخطاءDescription code description code

Invalid exit argument 128 Successful completion of the command 0 Fatal error with Linux signal x 128+x General unknown error 1

Command terminated with Ctrl+C 130 Misuse of shell command 2 Exit status out of range 255 The command can't execute 126

Command not found 127

RUNNING MULTIPLE COMMAND CONDITIONALLY تشغيل اكثر من امر في وقت واحد

ويتم ذلك بعدة طرق كتابة االوامر بطريقه يدوية االمر ثم االمر ثم االمر وهكذا حتى ننتهي -1 كتابة االوامر في ملف نصي ثم بعد ذلك نخبر الشل بتشغيل هذه االوامر -2 ;استخدام العالمة -3 EXIT STATUSوالتي تعتمد على ||و &&استخدام -4

، ال أو قد ينفذ األمر الثاني.دائما ستنفذ ول، فان االمر األ مشروط يتم ربط امرين عندما.مشروطين امرين لضم | |و && شل باش يستخدم .األمر األولب الخاصة return valueقيمة اعتمادا على

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

وهذا . 0 يساوى return valueبواسطة اقتران أمرين مع && األمر الثاني سيتم تشغيله فقط إذا نجح األمر األول، أي كان األمر األول ؟ لن يتم االمر الثانيmkdir، وتم نقل الملف. ماذا لو فشل األمر mkdirح األمر ايعنى في المثال السابق، نج

قيمة بمعنى "فشل" األمر األول فقط إذا كان الثاني تنفيذ األمرب باشال الحالة سوف يقوم هذه وفي. | | مع عدة أوامر ويمكن الجمع بينreturn value وهذا يعنى او. .الصفر غير

سالة لم ينفذ االمر وأعطى ر الثانيفي المثال الثاني امافي المثال األول االمر األول نفذ بطريقه سليمه ولم يعطى رسالة خطا ولم ينفذ االمر الثاني.خطا ونفذ االمر

SHELL VARIABLE النظام متغيرات

") مع حرف $، كما هو الحال في dereferencedالمتغيرات ("ويتم فحص (A=apple)يتم تعيين متغيرات الشل باستخدام الصيغة األتية echo $A كل عملية لديها مجموعة من المتغيرات البيئة الكير نل ,على مستوى(environmental variable) التي ورثتها عن طريق

child process األمر .export يحولvariable local الىenvironmental variable. االمرينset وenv وprintenv يعمل على shell variableو environmental variableعرض قائمه بجميع المتغيرات سواء

؟ ell variableshsما هو ال وهو عباره عن قيمه يتذكرها الباش شل. shell variable الباش شل يسمح للمستخدمين لوضع ال .برامج الرجوع إليها بواسطةيمكن أيضا و (scripts) األوامر والبرامج النصية أن تستخدم في يمكن (shell variable)الشل المتغيرات

1- local variable 2- environmental variable (shell variable)ويوجد نوعين من متغيرات الشل

Page 86: Linux Admin I II

RHCSA/RHCE Egypt ®

shell variable متغيرات النظام 85

صبحي طيبه دد. محم

؟ local variableما هو ال يتم انشائها داخل الشل فقط وعند الخروج من الشل فان هذه القيم تفقد هذا المتغير عباره عن القيم التي

؟ environmental variablesال ما هويعمل على لوالباش شعباره عن قيم ثابته مخزنه داخل نظام التشغيل ويتم توريثها الى الشل والبرامج التي تعمل على نظام التشغيل

وهذه األداة تتيح أيضا تخزين هذه environmental ال ملة عليه وهذه األداة هياستخدام اداه لكي يعمل على تخزين بياناته التطبيقات العا .النظام على مليةع كلل نفس الشيء بالنسبةهي ليست بالضرورةو .البيانات في الذاكرة حتى يسهل استخدامها من قبل التطبيقات والسكريبت

.في عملياته مختلف environment يكون لدى كل مستخدم ويمكن أنولعرض قيمة متغير معين يتم ذلك التشغيل،ومعظم هذه المتغيرات قد تم انشائها بواسطة نظام التشغيل ويبدا عملها مع بداية عمل نظام

echo$variable_name# -كاالتي: قبل المتغير $مع وجود عالمة echoباستخدام االمر ؟ variablelocalكيف تنشا متغير من نوع

حول قيمة المتغير وال يوجد مسافات هي appleاسم المتغير و هي Aحيث A=apple# -التالية: وذلك باستخدام الصيغة اذا وجد مسافات سوء يصدر رسالة خطا عند التنفيذ. (=)العالمة

.VAR=value $VAR syntaxالصيغة العامة smallوال capital وتكون حساسة بالنسبة لل (_)والرمز (9-1)واالرقام (a-z)المتغيرات المستخدم تكون من الحروف من -ملحوظه:

كاالتي: (“ “) quotasللمتغير تحتوى على مسافات فنضعها بين ولكن اذا اردانا ان نضع قيمه

وال يجوز؟، للقراءة فقط هي هذه المتغيرات. الباش شل من قبل التي يتم إنشائها تلقائيا من المتغيرات بعض الجدول التالي يسرد .أي ال يجوز تغيرها من قبل المستخدم وضعها

قيمتها.ولكن يمكن ان يعاد تخصيصها أي تغير . الباش شل التي يتم تهيئتها من قبل المتغيراتمن اهم بعض الجدول التالي يسرد الخاصة بالشل environmentalكل المتغيرات من النوع

ر عرفھ variableاملتغاصة بالباش شل امل الذي يحتوي ع ملفات االعداد ا BASH املسار ال

ا ALIASES مصفوفھ تحتوي ع معامالت ال شا BASH_ALIASES ال تم ار مصفوفة ر ال يجري من عدد حتوي تالذي املتغ ا إ املعاي ن أو تمرر ت روت BASH_ARGC سكرر مصفوفة ر ال يجري من عدد حتوي تالذي املتغ ا إ املعاي ن أو تمرر ت روت BASH_ARGV سكر

Page 87: Linux Admin I II

RHCSA/RHCE Egypt ®

shell variable متغيرات النظام 86

صبحي طيبه دد. محم

عمل ع الشلمصفوفھ ترابطيھ تحتوي ع مسارات BASH_CMDS األوامر ال عدم BASH_COMMAND امر شل يجرى حاليا او ع وشك ان

ت، يحاول عندما يوجد شغيلتنفيذ ملف ل كل باش سكر ا بدء ال ر ال يحدد شغيل ذا املتغ BASH_ENV قبل الThe command(s)passed using the bash –c option BASH_EXECUTION_STRING

رقيم السطور الشل اص ب ر ال تحتوي ع امللف املصدري ا BASH_LINEO مصفوفة املتغا الفرعية من اجل القياس اإليجابي رات للقراءة فقط تحتوي ع أنماط وانماط BASH_REMATCH مصفوفة املتغ

ر BASH_SOURCE نفذ الشل الذياص باسم امللف ال تحتوي ع امللف املصدري ا اتمصفوفة املتغا مستوى التداخل ئة من ا BASH_SUBSHELL .0و القيمة األولية .سطر األوامر ب

امل ر تحتوي ع رقم اإلصدار الباش شل بال BASH_VERSION (minor & major)مصفوفة املتغر تحتوي ع رقم اإلصدار الباش شل األو فقط BASH_VERSINFO (major)مصفوفة املتغ

If set to a valid file descriptor (0,1,2), then trace output generated from the ‘set –x’ debugging option can be redirected. This is often used to separate trace output into a file.

ا إ عيي ن (ملف إذا تم بع مث )0،1،2مع ا يمكن إعادة توجيھ ت شاؤ يح خيار من اإلخراج ال تم إ را ما .'X-مجموعة' الت وكثبع لفصل ذا ستخدم .إ ملف إخراج الت

BASH_XTRACEFD

يارات الباش شل ا حاليا القائمة با BASHOPTS يمكن تمكيPID ا BASHPID للباش شل ا

اص بالباش شل يحتوي ا ا ر منال املستخدم ا COLUMNS ع عرض الا ان إشارة املاوس ا COMP_CWORD يحتوي ع م

اخط االمر COMP_LINE اا ان إشارة املاوس ا COMP_POINT يحتوي ع م

The final key used to invoke the current completion of a shell function. COMP_KEY An integer value representing the type of completion attempted that caused a completion shell function to be invoked.

COMP_TYPE

The Readline library word separator characters for performing word completion COMP_WORDBREAKS A variable array that contains the individual words on the current command line. ا املصفوفة ال يخزن ف

لمات املوجود سطر األوامر اال ا COMP_WORDS

A variable array that contains the possible completion codes generated by a shell function. TAB املسئول عن التكملة االليھ عند الضغط ع

COMPREPLY

A variable array that contains the current contents of the directory stack. DIRSTACK Indicates the emacs shell buffer is executing and line editing is disabled, when set to‘t’. EMACS خاص باملحرر

EMACS

The numeric effective user ID of the current user اص باملستخدم ا IDرقم EUID The default editor used by the fc command FCEDIT A colon-separated list of suffixes to ignore when performing file name completion. FINGNORE The name of the currently executing shell function FUNCNAME A colon-separated list of patterns defining the set of file names to be ignored by file name expansion.

GLOBIGNORE

A variable array containing the list of groups of which the current user is a member.

GROUPS

Page 88: Linux Admin I II

RHCSA/RHCE Egypt ®

shell variable متغيرات النظام 87

صبحي طيبه دد. محم

Up to three characters, which control history expansion. histchars The history number of the current command. HISTORYا ملفات HISTCMD رقم االمر اControls what commands are entered in the shell history list. HISTCONTROL

HISTFILE (bash_history/.) بيانتھ historyاسم امللف ومساره الذى سوف يحفظ فيھ االمرسمح بھ االمر ر عدد من السطور HISTFILESIZE تخزنھ historyأك

A colon-separated list of patterns used to decide which commands are ignored for the history file. HISTIGNORE ا االمر history HISTSIZEعدد األوامر ال سوف يتذكر

Contains the name of the file that should be read when the shell needs to complete a hostname.

HISTFILE

اسب ال DNS server HOSTNAMEاسم اA string describing the machine the bash shell is running on. HOSTTYPE

The number of consecutive EOF characters the shell must receive before exiting. If this value does not exist, the default is 1.

IGNOREEOF

The name of the R eadline initialization file (the default is .inputrc).INPUTRC The locale category for the shell. LANG Overrides the LANG variable, defining a locale category. LC_ALL Sets the collation order used when sorting string values. LC_COLLATE

Determines the interpretation of characters used in file name expansion and pattern matching.

LC_CTYPE

Determines the locale setting used when interpreting double- quoted strings preceded by $. LC_MESSAGES

Determines the locale setting used when formatting numbers. LC_NUMERIC

The line number in a script currently executing. LIENO

Defines the number of lines available on the terminal. LINES

A string defining the system type in cpu-company-system format. MACHTYPE

How often (in seconds) the shell should check for new mail, (default is 60). MAILCHECK

The previous working directory used in the shell. OLDPWD

If set to 1, the bash shell displays errors generated by the getopts command. OPTERR

A string defining the operating system the shell is running on. OSTYPE

A variable array containing a list of exit status values from the processes in the foreground process.

PIPESTATUS

If set, bash starts in POSIX mode. POSIXLY_CORRECT

If set, the command to execute before displaying the primary prompt. PROMPT_COMMAND

An integer used to indicate the number of trailing directory names to display when using the \w and \W prompt string escapes. The directory names removed are replaced with one set of ellipses.

PROMPT_DIRTRIM

The prompt to use for the select command. PS3 PS4

Page 89: Linux Admin I II

RHCSA/RHCE Egypt ®

shell variable متغيرات النظام 88

صبحي طيبه دد. محم

The prompt displayed before the command line is echoed if the bash -x parameter is used. PS4

The current working directory. PWD

Returns a random number between 0 and 32767. the random number generator. RANDOM

The default variable for the read command. REPLY

The number of seconds since the shell was started. Resets the timer to the value. SECONDS

SHELLاعداد مسار الدخول ا الشل

A colon-separated list of enabled bash shell options. SHELLOPTS

Indicates the shell level, incremented by one each time a new bash shell is started. SHLVL

A format specifying how the shell displays time values. TIMEFORMAT

عد تنفيذ readتحديد الزمن لألمر ا ح تدخل لھ مدخلھ تظر ي ال ي ا عدد الثوا كما ان القيمة الشل التفاع تفسر ع اروج تم ا االمر إذا لم تدخل مدخلھ س

TMOUT

Directory name where the bash shell creates temporary files for its use. TMPDIR

The numeric real user ID of the current user. UID

الكير نل أيضا نجد ان، (shell variable)متغيرات الشل لديه وتسمى التيالمتغيرات قيم باستعمال يسمح للمستخدمينشل باشال وكما أن مخزنة في عملية هي جزء من هذه المتغيرات .(environmental variable) متغيرات البيئة تسمى قيم المتغيرات لتحديد عملية يسمح أليالبيئة متغيرات يتم توارث، عملية أخرى عملية يبدأ . حيث انه كلماcurrent working directoryو user idو process idمثل ،الكير نل

child process عن طريق .رهذا المتغي سيرث الباش التي كتبها األوامر وبعد ذلك كل، متغير بيئة إلنشاء أو تعديل الباش شلستخدام يسمح للمستخدمين ال هذا

داخل الباش شل؟ (environmental variable)كيف تنشا متغير بيئي (=)مسافات قبل او بعد العالمة دويجب ان تالحظ انه ال يوج ننشأ متغير محلى ونحدد قيمته-1 exportعن طريق االمر (environmental variable)نحول هذا المتغير الى متغير بيئي -2 شل بإمكانها استخدام هذا المتغيرأي عمليه أخرى ليست على نفس ال-3

المحلية، أو بعبارة أخرى، تاألوامر بالمعلومات حول اإلعدادا إلعداد (environmental variable) وغالبا ما تستخدم متغيرات البيئةيسمى (environmental variable)وكمثال على ذلك، فإن العديد من األوامر والبحث عن متغير بيئة معلومات عن المتغيرات المحلية.

LANG .واالمر لتحديد لغة المستخدم، وتعديل إنتاجها وفقا لذلكunset يستخدم لتحويلenvironmental variable الىlocal variable .ولكن عند اعادة التشغيل فان هذه المتغيرات ترجع الى القيم األصلية

لعرض جميع المتغيرات الموجودة نستخدم االتي environmental variableو local variableيعمل على عرض جميع المتغيرات سواء setاالمر -1

Page 90: Linux Admin I II

RHCSA/RHCE Egypt ®

shell variable متغيرات النظام 89

صبحي طيبه دد. محم

environmental variableيعمل على عرض envاالمر -2 exportingيعمل على عرض جميع المتغيرات ال export –pاالمر -3

غير متاح. حيصبوأول ما تنشا المتغير الخاص بك فاعلم انه سوف يكون متاح ألي مستخدم يستعمل نفس الشل ولكن عند انتقالك الى شل اخر تعنى (+) و on تعنى الوضعية في حالة )-( حيث ] set)-> [+/(<option أيضا للتحكم في وضعية الشل وتكتب هكذاتستخدم -: setالمر ا

الخلفية.البرامج التي تعمل في وتعنى منع الشل من تبليغك عن انتهاء أحد (set +m) مثال off الوضعية في حالة الرموز وذلك كاالتيويمكن تغير الوضعية عن طريق اسمها بدل من (set –o) ويمكن أيضا عرض جميع وضيعات الشل عن طريق االتي

(set [-/+]o <set_name>) تعنى (-) حيث on تعنى (+) و off وset_name عن الناتجةأسماء الوضعيات (set – o) . الذى يقوم بعرضه وتوضيح p-shoptΔ او shopt نستخدم االمر الحالية وضعيات الشلالستعراض أي set نفس االمر shoptاالمر

off وتعنى shoptΔ-u وكذلك وعند تفعيل تكتب هكذا on تعنى shoptΔ-s كاالتي هلعكس تأثير ه األوامر المستخدمة مع (using parameters in shell script)كيفية الحصول على معطيات خارجيه لملف السكريبت

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

بسيط كاالتي وتم ذلك عن طريق انشاء سكريبت i love youمن جملة i وهيفما ذا حدث نجد ان السكريبت اخذ اول كلمه فقط , 2, 1, 0ترمز الى n حيث {n}$او n$سطر الشل يسجل في متغير في (positional parameter) كلمهوالذي حدث هنا ان كل موضع

وهكذا ويمكن ان نستغني عن االقواس وتستخدم فقط في التفرقة بين باقي سطر السكريبت 3 teba.sh/.ال يستخدم ألنه يرمز الى اسم السكريبت مثال من المثال السابق {0}$ويجب ان نالحظ ان

فقط على الشاشة وسوف نقوم بإدخال والرابع والثالث األولحيث نالحظ من ملف السكريبت الذي أنشأناه ان سوف يقوم بطباعة الموضع i love youوتكون النتيجة i hate love youالسطر التالي له

نستفاد من هذه الميزة اننا يمكن اخذ معطيات على حسب وضعها في سطر الشلحيث وتعنى جميع المواضع التي يوجد فيها معطيات *$ان نستخدم جميع المعطيات نستخدم التالي أردنا إذاولكن

وتستخدم لعد المواضع المتاحة {#}$التي يمكن تسجيلها نستخدم ولمعرفه عدد المواضع وهكذا {2}$و {1}$فهذا يعنى استخدام أي متغير موجود وليس فقط المواضع مثل {-:}$عند استخدام

PATHالمتغير PATHيستخدم لتحديد المسارات للملفات التنفيذية وذلك عند عمل ملف تنفيذي فإننا نضع مسار الملف التنفيذي مع مسارات

Page 91: Linux Admin I II

RHCSA/RHCE Egypt ®

command line expressionاستخدام الرموز مع الباش شل 90

صبحي طيبه دد. محم

بدون إعادة بنائه من جديد كاالتي: PATHوذلك عن طريق إضافة مسار إضافي للمتغير

COMMAND LINE EXPRESSIONاستخدام الرموز مع الباش شل

عدة عرض وقد تم بالفعل .سطر األوامرفي ) (wild cards) ثابته(متغيرات ذات قيم يستخدم رموز خاصه باش شل، فإن الماتنفيذ أمر قبل .مع المتغيرات والمستخدمة (file globing) الرموز المستخدمة في كتابة االسماء مثل ،منهأنواع .الباشالرموز المستخدمة مع أنواع الجدول التالي يسرد

! الرمز - ويقوم بعرضها تم شرحه فيما سبق history اليحتوي على ملفات

{ } الرمز -

) يعمل على توسيع كلمه واحده الى عدة كلمات واستبدال احد العناصر او المصفوفات (توسيع االقواس brace expansionيسمى األكثر (رمز التوسع) brace expansion يستخدم. cat , bat , ratالى الكلمات التوسع في{c,b,r} التعبير، فإن على سبيل المثاللكل كلمه .مكونات المسار أو، prefixes ،postfixes الملفات التي لديها إنشاءأو شارة الىلإل شيوعا

أشائمها سابقا الذيإلنشاء مجلدين ومجلدين اخرين بداخل المجلدين brace expression، يستخدم في األمثلة التالية

عمل وذلك لعدم وجود مساره رنجد ان امللف التنفيذي ال PATHال متغ

مل على كل الملفات التنفيذية التي تع لقد قام بعرض جميع المسار التي تحتوي

قمنا بإضافة مسار اخر يحتوي على الملف التنفيذي المراد تشغيله

نجد االن ان البرنامج يعمل عند كتابته

Page 92: Linux Admin I II

RHCSA/RHCE Egypt ®

command line expressionاستخدام الرموز مع الباش شل 91

صبحي طيبه دد. محم

~ الرمز -الخاص بالمستخدم الحالي وتكتب أيضا home وتعنى مجلد ال ~وتكتب tilde expressionيسمى

~username وتشير الى مجلد ال home التاليالخاص بمستخدم معين كما في المثال.

variable expansionرموز المتغيرات - {var_name}$او var_name$شرحت فيما سبق مثل

arithmetic expansionالرياضية التعامالت - ى سطر، *، و/ عل-فقيرة إلجراء العمليات الحسابية الرقمية. العوامل الحسابية مثل +، عادة ما يعتبر الباش شل بيئة

األوامر ال تعتبر معامالت رياضيه. يستخدم االتي ألجراء العلميات الحسابية الباش شل

.جمله رياضيه في بناء يستخدم $((...))-1 .رياضيا تعامل ، *، و / -معيار الرياضية مثل +، الأنها أعداد صحيحة ، وثانيا ، على متغيرات الأوال، يتم التعامل مع

256وتعطى نتيجة ((8**2))$والرمز ** تعنى اس مثال الباش شل سوف يعمل على استبدال القيم الموجودة بالنتيجة عن حاصل حسابهما. arithmetic operaفي قسم ال man bashويمكن الوصول اليها عن طريق االتي ، Cلغة البرمجة ب ها الخاصالحسابية هي نفس العوامل

الجدول التالي يوضح بعض المعامالت الحسابية الخاصة

تعنى ازاحه للشمال مهم جدا >>تعنى ازاحه لليمن و <<وتعنى معامل أزاحه بمقدار بت حيث =<<او =>>حيث نالحظ العالمات وهذا يعنى اننا قمنا بإزاحة بمقدار خمس خانات لليمين أي حذفنا اخر خمس خانات ووضعنا خمس اصفار < 510010010<للمبرمجين مثال

Rshو Lshوترمز لها في الحسابة الخاص بالمبرمجين الى والشمال العكس 00000100في اول خمس خانات فيصبح الناتج حتى نتعامل معه كاالتي: binaryحيه ونالحظ فيه تحويل الرقم ال امثله توضي byteوليس bitتعمل على المقارنة | او &المعامل

& example | example True & True = True 1 & 1 = 1 7&5=5 True | True = True 1 | 1 = 1 8 | 7 = 15 True & False = False 1 & 0 = 0 111 & True | False = True 1 | 0 = 1 1000 | False & True = False 0 & 1 = 0 101 False | True = True 0 | 1 = 1 0111 False & False = False 0 & 0 = 0 101 False | False = False 0 | 0 = 0 1111

Page 93: Linux Admin I II

RHCSA/RHCE Egypt ®

command line expressionاستخدام الرموز مع الباش شل 92

صبحي طيبه دد. محم

brackets $[1 + 2]طريق عن-2

exprعن طريق االمر -3

وتسمى (back slash) \نالحظ انه عمل خطا ألنه اعتبر العالمة* تعنى عدد ماال نهائي من الحروف واألرقام ولتفادي ذلك نستخدم العالمة expr 5 \*2مثال *\والتي تلغى الناتج من العالمة * وتصبح هكذا escape character عالمة ال

الباش شل يدعم فقط حسابات االرقام الصحيحة فقط حوظهمل bcعن طريق االمر bash calculatorأله الحاسبة الخاصة بالباش -4

bc –q إللغاء الشاشة التعريفية باله الحاسبة

-بالصيغة األتية: scriptفي bcويستخدم االمر

.أكثر دقة الحسابيةإلجراء العمليات باش في bc يتم استخدام األمر command substitutionنواتج األوامر -

.سطر األوامراستخدام النتائج في و فرعي شل في األوامر للمستخدمين بتشغيل يسمحولكن حديثا `command`كاالتي (back tick) هو وضع االمر بين عالمة تنصيص مائله command substitution ةقديما كان صيغ

يفترض أن يتم. أوال يتم تنفيذ ما استبدال ماتستخدم لتقييم ما بداخلها إذا كان هناك تنفيذ أو و (subcommand)$ت صيغتها كاالتي حاصب بنتيجة التنفيذ $او اقواس بداخلها، ثم يستبدل ما بداخل عالمة التنصيص

- pathname expansion (file globing) quotingو expansionpreventingمانع الرموز -

إعادة ،expansionالتوسعات من العديد من أنواع مختلفة لتنفيذ على لوحة المفاتيح المختلفة الموجودة عالمات التنقيط الباش شل يستخدم

وغيره كأنها أسماء فقط وليست متغيرات &و *وتستخدم حتى تتيح استخدام بعض الرموز مثل وأنواع أخرى. ،redirectionتوجيه عالمة تنصيص مزدوجة escaping 2-double quoting-1الشل من قبل تفسيره من الرموز لحماية ثالث آلياتشل الباش يوفر

Page 94: Linux Admin I II

RHCSA/RHCE Egypt ®

command line expressionاستخدام الرموز مع الباش شل 93

صبحي طيبه دد. محم

3-single quoting عالمة تنصيص

Backslash ( \ ) لجعل الرمز الذى يلى اعالمه غير فعال ويعتبر كانه حرف Quoting prevents expansion

o Single quotes (') inhibit all expansion لمنع جميع الرموز o Double quotes (") inhibit all expansion, except: التالي ذكره المنع جميع الرموز ما عاد

$ (dollar sign) - variable expansion ` (back quotes) - command substitution \ (backslash) - single character inhibition ! (exclamation point) - history substitution

تستخدم مع األوامر back quotesيستخدم كمانع الرموز ولكن single quotes الملحوظه Back quota `...` single quota '...'

SHELL CUSTOMIZATIONاعداد الشل - shell builtin

.األمر على انها الكلمة األولى يعامل فإن الباش شل سطر األوامر كتابةعند شل ال ن قبلم يتم تنفيذهاولكن التحميل،كبرامج نظام الملفات لم تكن موجودة في أن األوامر، وهذا يعني داخليا بعض األوامر ينفذ شل والباش built-ins’ shell تسمى هذه األوامرنفسه

كاالتي helpعن طريق استخدام االمر shell built-in’s اللمعرفة

ALIASESاالمر

يستخدم ،األوامروسيله إلنشاء أسماء مستعارة عن . وهي(alias )built-in commandوفحصه باستخدام االمر aliasesيتم انشاء االمر يستخدم lsهذا االمر إلعادة تسمية أسماء التطبيقات واستخدامه يعنى عمل اسم مختصر ليه مكان االسم األصلي يعنى مثال االمر

Page 95: Linux Admin I II

RHCSA/RHCE Egypt ®

command line expressionاستخدام الرموز مع الباش شل 94

صبحي طيبه دد. محم

فانه يعرض الملفات lsولذلك عند كتابة االمر dirوذلك اننا نخليه له اسم اخر وليكن aliasesلعرض محتويات مجلد فمن الممكن ان نعمل له aliasNAME=VALUEفانه هوا االخر يقوم بعرض الملفات وصيغته كاالتي dirوأيضا عند كتابة االمر

alias –pنكتب االمر aliasesولرؤية األوامر المعمول لها

عند إعادة تشغيل الجهاز فسوف يلغى كل ما عمل ولتثبيت ذلك فننا نضعه في ملفات أي انه local variableيعتبر مثل aliasولكن نجد ان etc/skel/.bashrc/المستقبلين نضعه في نولكى يتم تأثيره على المستخدمي non-login shellمثال لل ./~ bachrcالبدء aliasيستخدم إللغاء تأثير unaliasاالمر

ان يكون كل امر في سطر لوحده. لألبد تاالسكرباولكن في ; العالمةمن امر في سطر واحد عن طريق أكثريكمن استخدام

SHELL PROMPTالمحث

والذيالمحث األساسي .نوعين من المحث وأشهرمواقف مختلفة أربعلتعبير عن (prompt)يستخدم الباش شل أربع أنواع من المحث من الكتابة ينتهيواالمر لم RETURNيخبرنا انه على استعداد لتلقى االمر والمحث الثانوي عندما يضغط المستخدم

.capitalونالحظ ان الحروف PS2و PS1ويمكن تغير شكل المحث عن طريق المتغير يدل على إمكانية إدخال سطر أوامر. . المحث ] #[~ root@localhost] [يرى المستخدم محثا shellعند بدء عمل ال

home تعنى ال ~. والعالمة root الللمستخدم # للمستخدم العادي ولكنها تكون$ فيها هو shell promptالمبدئ

Page 96: Linux Admin I II

RHCSA/RHCE Egypt ®

command line expressionاستخدام الرموز مع الباش شل 95

صبحي طيبه دد. محم

PS1والجدول التالي فيه كل اإلمكانيات التي تستخدم لتغير المحث مع االمر 07 \aوكوده ASCIIرمز الجرس في d\ التاريخ في الصيغة اليوم الشهر السنة

033 \eوكوده escرمز مفتاح الهروب DNS \hاالسم األول للمضيف في DNS \Hفي FQDNاالسم الكامل للمضيف j\ عدد الوظائف التي ينفذها الشل االن

l\ (terminal) االسم األساسي للشاشة الطرفية ASCII \nرمز السطر الجديد في enter \r رمز مفتاح االدخال s\ اسم الشل

t\ (HH:MM:SS)ساعه 24الوقت بنظام ال T\ (HH:MM:SS)ساعه 12الوقت بنظام ال @\ (am , pm)ساعه ولكن بصيغة 24الوقت بنظام ال u\ اسم المستخدم الحالي

v\ اصدار الباش شل V\ مستوى الباش شل وتاريخ إصدارهw\ اسم المجلد الحالي W\ (cwd)االسم القاعدي للمجلد الحالي

!\ history numberعدد األوامر التي تم تسجيلها #\ رقم االمر لهذا االمر$\ (root)معناه $ للمستخدم الحالي و # للمستخدم الجذري nnn\ االوكتالأحرف معبره عن قيمة

\\ الفاصل ]\ بداية السلسلة الحرفية كتابة البرمجة بداخلها ولن تظهر [\ نهاية السلسلة الحرفية كتابة البرمجة بداخلها ولن تظهر

BASH SHELL FLAGS AND SHELL OPTIONS

رات الشلاإلعداد سلوك الشل باستخدام خي (built-in command)يوجد امرين من النوع single letter flagsيستخدم لتعديل سلوك الشل باستخدام setاالمر يستخدم إلعداد خيارات الشل shoptاالمر

وقد شرح فيما قبل set shell flagاالمر - shell flags (unset)إلغاء أو (set) لتعين يتم استخدام األمر، عادة كما هو الحال، سطر األوامر عند استخدامها مع-1 (local $ environmental variable)عند استخدامه بدون أي وسائط فانه يعرض جميع المتغيرات وقيمتها -2

shopt shell optionاالمر - shoptولتفعيلها او الغاءها نستخدم االمر bash optionالباش يستخدم أيضا مجموعه ثانيه من المتغيرات التي تستخدم في االعداد تسمى

shopt -s optionname sets the option optionname shopt -u optionname unsets the option shopt optionname displays the current option state shopt displays all shell options

[root@localhost ~]# echo $PS1 [\u@\h \W]\$ [root@localhost ~]# PS1="[\u@\V \W]$" [[email protected] ~]$

لعرض شكل المحث المستخدم

لتغير شكل المحث

Page 97: Linux Admin I II

RHCSA/RHCE Egypt ®

96 Standard I/O and Pipes

صبحي طيبه دد. محم

مصدري تنفيذي السكريبت ملف SOURCING SHELL SCRIPTSجعل

- sourcing the scripts وهذا ما يسمى .مباشرة تمت كتابتها عن هذا الملف كما لو رامر معب ومن ثم تنفيذ، في ملف واحد عدة أوامرجمع يتيح الباش شل للمستخدمين

sourcing. األمر المستخدم لهذا هوsource مثال لذلك هو انشاء ملف السكريبت اسمهprompts وذلك لتغير المحث

Standard I/O AND PIPES .وجهة واحدةكتابة المعلومات إلى و، من مصدر واحد لقراءة المعلومات تميل الشل القائمة على البرامج .المفاتيحلوحة الى يتم توصيلهاعادة ما و Standard In (stdin) يشار اليها على انها لقراءة ما تميل الشل القائمة على البرامج terminal display ليرتبط عادة و، Standard Out (stdout)يشار اليها على انهاالتي جهةال الكتابة تكتب إلى برامج

.تصاميم في مجموعات على هيئة ثالثويونكس)، البرامج عامتا تكون متوفرة في لينكس (امكانية انهم يتوقعون أن يكون للمستخدم .Xليتم تشغيلها في بيئة رسومية هاتم تصميم برامج programs)(graphicalرسومية برامج-1

مثل القوائم المنبثقة واألزرار، إلدخال المستخدم. رسومية،استخدام الماوس، واستخدام مكونات من الشاشة االستفادة . (Text console)النص وحدة تحكم استخدام قائمه على الشاشة برامج (screen programs)برامج الشاشة -2

virtual consoleتير منال و مناسبة للو، ماوس أنها ال تحتاج إلى .متطورة بطرق الشاشةيعيد رسم النص و موضع والتعامل مع بأكملها، .الشاشة القائمة على البرامج هي أمثلة على، مستعرض ويب ،nanoو vi مثل

، الشاشة إعادة رسم امكن إذا نادرا ما عرضها،تعمل على المدخالت و عيجمت على تعمل برامج ) programs)terminal منالتر برامج-3و lsمثل simply commandsالبسيطة البرامج تسمى وغالبا ما، بالرجوع عن فعل االمر ال يسمح الطابعة التي مباشرة إلى الكتابة مثل

grep وuseradd وغيرها .معرفة مسبقا، هذه هي علمياتلها ثالثة shell عملية ال تتعامل معهاكل الملفات التي لذلك

$ dosomething< inputfile >outputfile .0 (standard input STDIN)تستخدم متحكم الملف رقم أو الواجهة النصية عادة تكون موكلة إلى لوحة مفاتيح: الدخل القياسي .1 (standard output STDOUT)متحكم الملف رقم تستخدم terminalموكلة عادة إلى شاشة :الخرج القياسي .2 (standard error STDERR)تستخدم متحكم الملف رقم terminalعادة ما يكون موكال إلى شاشة: الخطأ القياسي

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

اآلليات الثالثة التالية: shellوأيضا، توفر ال فالتر منالبافتراض أن التعامل مع أجهزة الدخل/الخرج والملفات يتم بنفس الطريقة في يونكس، –: (redirection). إعادة التوجيه1

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

يمكن استخدام الخرج القياسي لبرنامج كدخل برنامج آخر باستخدام األنابيب. –: (Pipes)االنابيب. 2يمكن للمستخدمين تشغيل عدة برامج في نفس الوقت، مشيرين إلى أنها ستنفذ في الخلفية او في المقدمة، مع –. تزامن برامج المستخدم: 3

.خرىوالبرامج األ لشلل في الخلفية، بينما نتفاعل مع االسماح للعمليات الطويلة بالعمتحكم حصري بالشاشة. وتتكون طريقة أخرى من .غير االفتراضية يمكن لبرنامج استقبال دخل وخرج من ملفات أو أجهزة أخرى–: (redirection). إعادة التوجيه1

commandoperator_file_name

Page 98: Linux Admin I II

RHCSA/RHCE Egypt ®

97 Standard I/O and Pipes

صبحي طيبه دد. محم

واحد مما يلي operator file nameحيث يكون . STDINيستقبل إدخاال من ملف• >:

.مع الكاتبة على الملف ومسح محتوياته STDOUT يرسل خرجا إلى ملف•<:

ث).يدحلف ولكن المحافظة على محتوياته (توهنا مع الكتابة على الم تعيد إنشاء الملف) <تعني إضافة الخرج (حيث الشارة المفردة •<<: إلى ملف. STDERRعباره عن األخطاء فقط ويرسل خرجا وه: 2•<

•&>2>&1 or :يرسل خرجا إلى ملف ويتكون من األخطاءSTDERR رج نفسه + الخ(STDOUT).

يستقبل إدخاال من مجموعه من السطور تقوم بكتابتها مثال.• >>: #mail –s “please call” [email protected] <<END > hi > please give me a call > END

والذي يعد dev/null/في بعض األوقات تحتاج ان تعمل إعادة التوجيه الى ملف تريد ازالته فتقوم بالتوجيه الى هذا المسار نولك ملحوظه: غير قابله للكتابة فيه فتقوم بإزالته يدويا. dev/مثل سلة المهمالت في الويندوز ولكن في بعض التوزيعات تجد ان (..)فانه يأخذ اخر امر فقط لذلك تقوم بتجميعهم في مكان واحد باستخدام ;أيضا قد تحتاج لتوجيه أكثر من امر فاذا كتبت أكثر من امر بفاصل

مع مالحظه المسافة حولين العالمة {.…}والتي يعمل على تجميع النتائج في ملف واحد كل على حده او باستخدام semanticوتسمى { ls; pwd ;file }او (ls; pwd ;file) –مثال syntacticوتسمى

cat /etc/jana 3>file1.txt 4>file2.txt 5>file3.txt$ويمكن التوجيه ألكثر من ملف

. سلسله من أوامر عديده ونقل بياناتها بعمل –: (Pipes). االنابيب 2command 1 | command 2 | command 3

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

Page 99: Linux Admin I II

RHCSA/RHCE Egypt ®

98 Standard I/O and Pipes

صبحي طيبه دد. محم

والذي يقوم بوظيفتين في نفس الوقت بنسخ الناتج الى ملف وعرض الناتج على الشاشة مثال كاالتي pipesوالذي يستخدم بكثره مع teeاالمر $ uniq|tee /tmp/x.x|awk-ftransform.awk

ستعود فورا بينما يستمر تنفيذ shell في أخره في الخلفية، والواجهة النصية للسيعمل أي أمر يتم تنفيذه بوجود & :. التزامن في الخلفية3وخياراته، الذي ستسمح لنا بمراقبته. ولدينا أيضا أمر القتل، الذي يسمح لنا بإنهاء العمليات psالبرنامج. يمكننا تتبع عمل األوامر عبر أمر .التي ما تزال تعمل أو التي دخلت حالة الخطأ

األوامر المهمة بالنسبة للباش شل بعضن سوف نتعامل مع اال التي توضع معه يتم عرضها على الشاشة المدخالتوجميع in command-builtيعتبر من النوع - :echoاالمر -1

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

مثل ما يتم مع باقي األوامر أي بمعنى انها تأخذ في االعتبار الرموز وال echoالت التي توجد مع االمر ان الشل تعمل على تحليل المدخ أوالwild cards .وغيره

فانه يتم تجاهل المسافات بينهم كاالتي: echoعند تحليل الشل للمدخالت التي أعطيت مع االمر ثانيا

مع اعتبار القواعد الخاصة بهم التي (’.………‘)او (”.……“)يتعد بالمسافات ويعتبر جميع الرموز حروف نستخدم echoولجعل االمر تم شرحها من قبل.

ولكن يتم عرض المدخالت مع التحكم الكامل echoونفس وظيفة االمر in command-builtيعتبر من النوع - :printfاالمر -2 …printfFORMAT[ARGUMENT] وصيغته تكون كاالتي: في طريقة العرض

حيث نجد ان يتكون من اثنين من Cمثل لغة library callويحتوي على built-in commandمن النوع printfحيث نجد ان االمر .المدخالت حيث المدخالت األولى توضح شكل عرضه على الشاشة اما المدخالت الثانية ما يتم عرضه

حيث نالحظ من المثال السابق العالمة % والحرف الذي يأتي بعدها يعتبر وصف لما هو سوف يطبع على الشاشة. ون االتيوهذه الحروف قد تك

%f وتعنىfloating أي رقم حقيقي %c تعنىchar أي حرف واحد %s تعنىstring أي حرف واحد او اكثر %d تعنىdecimal %o تعنىoctal %x تعنىhexadecimal %u تعنى رقم صحيح

التي كتب cكما هيا و janaوالتي كتب s اوذلك ألنها تعبيرات رقميه ما عاد janaحيث نالحظ ان جميع التعبيرات رفضت التعبير عن اسم

ولكن نالحظ أيضا انه يأتي قبل المحث وذلك لعدم اخباره بانه يأتي بسطر جديد ويمكن فعل نفس هذا الشكل ان يأتي jحرف واحد فقط وهو n–ولكن نستخدم معه الخيار echoقبل المحث مع االمر

مدخل األول التي يتم عن طريقها في التحكم في طريقة الكتابة على الشاشة في ال printfبعض الخيارات التي تأتى مع االمر n\ وتعنى النزول الى سطر جديد t\ وتعنىTAB b\ وتعنىbackspace c\ يطبع كل شيء في سطر واحد ويمسح ما بعده

Page 100: Linux Admin I II

RHCSA/RHCE Egypt ®

99 Standard I/O and Pipes

صبحي طيبه دد. محم

بعض العالمات المستخدمة (right align)بيكون من اليمين الى الشمال -بحيث الوضع االفتراضي من غير العالمة left alignيبدا من الشمال الى اليمين مع االرقام - إعطاء القيم سواء موجب او سالب +

وتعبر عن اقل مساحة ممكنه يمكن ان يكتب فيها الناتج ولكن إذا كان الناتج يتكون 0عباره عن أي رقم ما عدا (field width) عرض الحقل –فانه يستبدل الناقص بمسافات تبدأ من اليمن في الوضع االفتراضي ويبدأ من الشمال عند استخدام العالمة field widthمن عدد اقل من

(.) Precision والرقم الذى يأتي بعدها يعنى اكبر مساحه ممكنه للناتج اذا كان معs وc للحروف وg وتعنى اقل عدد من األرقام ملألرقا uو oو xو dمثل األخرى flagesمع ال

المثال التالي يقوم بشرح ما تم ذكره

ويبدأ الكتابة من الشمال JANAكلمة ل 10اعطينا مساحة قدرها -2 ويبدأ الكتابة من اليمين JANAكلمة ل 10اعطينا مساحة مقدارها -1وذلك 2قام رواقل عدد من اال 10تعنى اقصى عدد 10.5d%اما عدد للخاناتاقل 5و عدد للخاناتتعنى اقصى 10فان 5.10s%اما هذا

بين رقمين الرمز.عند استخدام

أي مدخالت او معامالت سوف يقوم بقراءة بدون readوعند كتابة االمر in-builtمن األوامر من النوع يعتبر- :readاالمر -3 REPLYالمدخالت التي يدخلها المستخدم ثم يسجلها في متغير داخل الشل اسمه

من قيمه مدخله بواسطة المستخدم كاالتي أكثرويمكننا تحديد أسماء المتغيرات ووضع كاالتي p–اما إذا اردت ان يقوم الشل بعرض رسالة قبل ادخال المستخدم القيمة نستخدم الخيار

OPEN FILE & FILE DESCRIPTERفتح الملفات وواصفات الملفات

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

proc/به عن طريق الخاص file descriptorو ال FD (file descriptor) يسمىاخر دليل فرعي لديه عمليةل الفرعي والدليل PID، واسمه proc/تحت دليل فرعي لديها عملية كل تجد لينك لكل عملية ملف مفتوح proc/pid/fd/المسار في

Page 101: Linux Admin I II

RHCSA/RHCE Egypt ®

100 Standard I/O and Pipes

صبحي طيبه دد. محم

التي تستخدم في السكريبت: مقارناتال [ ]بين مباشرة expressionأو باستخدام التعبير test expressionsبالنسبة للحالة، يتم استخدام

test األمر وقد تم تصميم .رسائل أخرى أي دون انبعاث، المناسب return value (exit status) ويضع الملف،جود تحقق من وي .سمات الملفو، األعداد الصحيحةمقارنة السالسل، تصميمه ايضا ل وتم. سكريبت باشال في مشروطال األمرمثل الستخدامها

تعنى خالف ذلك 0صحيح وغير القيمة مفهذا يعنى ان التقيي 0فاذا كان يساوى return valueونالحظ انه ال يعطى نتيجة ولكنه يعتمد على يمكننا تجميع الحاالت المتاحة كما يلي:

المقارنات الرقمية-1 eq- =وتعنى يساوى ge- أكبر من او يساوى gt- أكبر من فقط le- أصغر من او يساوى lt- أصغر من ne- ال يساوى

مقارنة سالسل المحارف النصوص-2 =: =وتعنى يساوى =! يختلف عن ىال يساو n- ذو طول أكبر من الصفر

z- الطول يساوى صفر او المدخلة فارغه < أكبر من > أصغر من >\او <\وذلك حتى ال يحدث إعادة توجيه وتكون كاالتي \من يجب ان تسبق بعالمات المانعة مثل مالحظه العالمة الخاصة بأكبر من او أصغر

مقارنة الملفات -3 d- مجلد f- ملف عادى r- قابل للقراءة s- ليس فارغا w- قابل للكتابة x- قابل للتنفيذ

O- الحاليملك للمستخدم G- يقع في المجموعة التي تحتوي على المستخدم المالك المتغيرات الثنائية بين التعبيرات-4

! notلتعبيرات النفي OR -oتعنى او AND -aتعنى و اذا ( )اهم المميزات للمتغيرات انها ممكن تستخدم كمصفوفه أي مكن وضع اكثر من قيمه لمتغير واحد وذلك بوضع بين ومن- ملحوظه:

.ل كل قيمه على حده كأنها مصفوفه اردنا ان تعام

نى التحكم :كاآلتي SCRIPTINGلب

ى قيمة معينة فسيتم تنفيذ األمر.تقدر التعبير، وإذا تم الحصول عل: if … then. البنية1 , عدا ذلك سينفذ command 1تقيم التعبير، وإذا تم الحصول على قيمة المطلوبة فسيتم تنفيذ األمر: if … then … else. البنية2

. command 2االمر

Page 102: Linux Admin I II

RHCSA/RHCE Egypt ®

101 Standard I/O and Pipes

صبحي طيبه دد. محم

الناتج

.اإلضافية ifوهيا نفسها سابقتها مع بينة : if … then … else if … else. البنية3 If [expression]

then commands

elif [expression] then commands else commands

fi تعتمد الشرطية في هذه الحالة فان القاعدة يتم تنفيذها أوال و [ ]من غير commandعباره عن أوامر expressionومن الممكن ان تكون ال

انه يعطى نتيجة أخرىفإما ان اما اذا كان غير هذا باقي االمرفانه يفعل exit status = 0فاذا كان االمر صحيح يعنى ال exit statusعلى :ذلكومثال على لى الشرط او االمر التاليغير قادر على التنفيذ او االنتقال ا

المثال األول كان االمر صحيح فنفذ االمر:#!/bin/bash # testing the if statement if date then echo “it worked” fi

فنجد انه تخطى االمر وانتقل الى الشرط التالي: ني االمر كان خطأالمثال الثا#!/bin/bash # testing a bad command if asdfg then echo “it did not work” fi echo “we are outside of the if statement”

IF … THEN البنيةويمكن ان ترى هذه الصيغة على if command; then commands fi

:IF … THENبعض األدوات المتقدم المستخدمة مع - Double parentheses (( expression )) في المقارنات تستخدم للمعامالت الحسابي هو. - double Brackets [[ expression ]] تستخدم في المقارنات بين النصوص . fiال تحتاج ان تنتهى ب elifولكن fiتحتاج الى ان تنتهى ب else ifملحوظه -

لالختيار المتعدد بناء على قيمة الخيار. هي بنية select case . البنية4 ولكن توفر الكثير من الوقت اختيارات if statementهي مثل switch caseفي مجال البرمجة تسمي

ثالث. ءبشيلم تكن أيا منهم فتكون وإذا noبـ أو yesإما بـ اإلجابةوتكون مستخدمأني أريد أن أسأل سؤال ما ل مثال: :التاليكما syntax)ويكون تركيب الجملة (

case string1(variable) in str1) commands;; str2) commands;; *) Default commands;; esac

$ ./test1 Sat Jan 23 14:09:24 EDT 2011 it worked $

$ ./test2 ./test2: line 3: asdfg: command not found we are outside of the if statement $

Page 103: Linux Admin I II

RHCSA/RHCE Egypt ®

102 Standard I/O and Pipes

صبحي طيبه دد. محم

سيحدث حينها الجواب بالتأكيد فماذا Capital Yكتبته scriptفي ال كما small yقد يتساءل البعض ماذا لو كتبت مثال بدال من الحرف الـألن نظام اللينكس حساس جدا لمثل هذه األشياء ولتفادي هذه المشكلة يمكنني ادخال نظرا small yإنه سيعتبر هذا جواب خاطئ ولن يعتبره

أكتبها scriptوهكذا ولكن كيف يمكنني كتابتها في ال y small , Y Capital , yes , YESكافة األشكال التي قد يأتي فيها الجواب مثل . pipe أي أفصل بينهم ب (y | Y | yes | YES)علي الشكل التالي

يظهر تساؤل أخر وهو أن الجميع يعلم إن في أي نظام عند أدخال رمز خاطئ فأن النظام يطلب منا أدخال الرمز الصحيح وكأنه يعيد علينا بمجرد أدخال الرمز الخاطئ فما الحل هنا. تغلق scriptالسؤال من جديد ولكن في الحالة السابقة فإن ال

كما في الصورة. while statementو case statementالحل هو في المزج بين

(loop)كبديل عن كل متغير في قائمة :forحلقة .5 .كل تكرار في اختالفات طفيفة، وعادة مع لتكرارها سلسلة من األوامرتسمح ل (loops)الحلقات (loop)من خالل حلقة دورة (Iteration)التكرار .قيمة مختلفة يأخذ، المتغير تكرار للحلقة لكلو، (Iteration)مكرر يشار إليه على أنه باستخدام متغير هذه االختالفات يتم تنفيذ، عادة

في الباش شل وتكون صيغتاها كاالتي: c ولكن بنظام لغة ال forاستخدام الحلقة for ((

variable assignment ; condition ; iteration

process ))

Page 104: Linux Admin I II

RHCSA/RHCE Egypt ®

103 Standard I/O and Pipes

صبحي طيبه دد. محم

: عند تحقق الشرطwhileحلقة .6

متحقق نفذ الشرط الشرط طالماwhile [ expression ] do commands done

Infinite loopأي الى ما ال نهاية ويسمى x=0هذا السكريبت يقوم بطباعة هذه الجملة مادامت قيمة طريقتين هناك : Loop لكسر هذه

1) Break done وذلك بعد كتابة الكود وقبل continue هو break الوعكس

2) let x=$x+1 : الشرط وبالتالي يخرج يتحققاي اجعل قيمة المتغير قيمة المتغير القديمة واضف اليها واحد وبهذا ال كيفية أخذ قيمة من المستخدم

قيمة من المستخدم ووضعها في متغير أخذتعمل علي read في نفس السطر Input تعمل علي اخد - n

whileعكس إلى أن يتم تحقق الشرط until. حلقة 7 until [ expression ] do commands done

functions. اإلعالن عن وظائف 8fname ( ) { commands }

أو باإلعالن المتضمن الستدعاءات fname2 ( arg1, arg2, … argN ) { commands }

1 - 10 2 - 9 3 - 8 4 - 7 5 - 6 6 - 5 7 - 4 8 - 3 9 - 2 10 - 1

1 2 3 4 5 6 7 8 9 10

Page 105: Linux Admin I II

RHCSA/RHCE Egypt ®

مقدمه 104

صبحي طيبه دد. محم

مقدمه -: الملفات وأنظمة االقراص

ويعامل (partition) أي أقسامص الصلب الى عدة أجزاء تسمى بارتشن م تشغيل حديث بانه يتيح تقسيم القرفي األقراص الصلبة مثل أي نظا أي تقسيم الهارد ديسك. partitioningهارد ديسك جديك منفصل عن االخر وتسمى هذه العملية كأنه بارتشنكل

ليتم وذلك له، وصل بعملية القيام علينا فسيكون إليه، الوصول يمكن معينة ملفات نظامله و وسائط تخزينيه مثل الهارد ديسك لدينا يكون عندما .إقالع/تشغيل بدء كل مع ليتم الضبط هذا برمجة تم أم فقط، المرة لهذه ذلك تم سواء ،(mount)النظام في تضمينه عند (dmesg)النظام إقالع معلومات استخدام يمكننا النظام، في الموجودة) التخزين أجهزة وأ (األقراص عن معلومات على للحصول proc/partition/او استخدام ملفات منها، المتاح اكتشاف partedاو (cfdisk, sfdisk)األخرى أشكاله من أي أو fdiskمرألا استخدام يمكننا القرص، بتقسيم هيكليته لتغيير أو جهاز هيكلية لمعرفة

التي تستخدم في هيكلة الوسائط التخزينيةكل له مشكالته ونقاط قوته وغيرها fdiskالكبرامج الهناك العديد من 1-cfdisk متطلبات صارمه في صناعة البرنامج جميل لديه partition table (سنتكلم عنه فيما بعد) وينتجpartition table ذات كفائه

fdisk .عالية ويفضل استخدامه عن ال2-fdisk يتميز بوجود مشاكل كثيره فيه وميزته الوحيدة انه يدعمBSD disk label و(other non-DOS partition Table) تجنبه 3-sfdisk واجهة المستخدم سيئة جدا ولكنه يعطى نتائج ادق واقوى من ال خاص بالهاكرز fdisk وcfdisk .وتذكر انه قوى جدا في نتائجه

أيضا. gpt حيث انها يعطى إمكانية تغير حجم األقسام وكذلك نظام الملفات التي توجد فيه حاليا ويتعامل مع ال partedاما االن فيوجد االمر - باستخدام االتي: مختلفةال الخاصة بالوسائط التخزينية المعلومات على الحصول يمكننا

يشترط ال .اضمه يمكن التي لإلزالة القابلة األجهزة أو )(bootاإلقالع عند (mounted) للضم الجاهزة األجهزة /etc/fstabيعرض االمر -1 وامر الضم.أ باستخدام الحاجة عند البقية وصل يمكننا .اإلقالع عند تظهر أن نريدها التي تلك فقط بل لإلزالة؛ القابلة األجهزة كل تظهر أنمثل وهمية ملفات أنظمة أو ةحقيقي أجهزة كانت سواء( اللحظة تلك في المضمومة الملفات بأنظمة األمر هذا يخبرنا-: mountاالمر -2

(/proc/ ملف من أيضا المعلومات هذه على الحصول ويمكننا./etc/mtab .المتاحة والمساحة المستخدمة المساحة من قبالتحق لنا ويسمح التخزين، ملفات بأنظمة األمر هذا يخبرنا- :h- dfاالمر -3 proc/partitions/عن طريق ملفات بروك:ملفات -4

(HARD DISK) القرص الصلب)(الهارد ديسك

الفصل الوسائط

التخزينيه

Storage Device

15000والهاردات الخاصة بالسيرفرات بتوصل سرعتها الى 7200معظم الهاردات سرعتها بتكون

Page 106: Linux Admin I II

RHCSA/RHCE Egypt ®

مقدمه 105

صبحي طيبه دد. محم

يعنى بدايته من السيكتور كذا الى السيكتور كذا scheme of partitionيحتوي على ال partition table ملحوظه

؟ device rawال ما هو

التي خرجت من مصنعها ولم يتم استعمالها بعد. او مستخدم يعنىنظام تشغيل أيلم يتعامل معها من قبل التي الصلبة الخاماألقراص هو

للمستخدم (األجزاء البرمجية)؟) بالنسبة HARD DISKمما يتكون القرص الصلب (

يدعمه الذي(األشهر) Intel/IBM/PC/DOSيتكون القرص الصلب من عدده أجزاء اعتمادا على نظام التقسيم المستخدم، في نظام التقسيم واحد حتى أو ثالثة أو بإثنين االكتفاء اقسام فيزيائية ال يمكن الزيادة عليها ولكن يمكن أربعمن ولينكس وماك يتكونكل من ويندوز

(partition)، وMBR وInode table أبل ألجهزة الماك القديمة وتقسيموهناك أنواع أخرى من التقسيم مثل تقسيمsun وتقسيمgpt .االحدث

-أنظمة التقسيم المستخدمة مع القرص الصلب: LBA (Logical block address) Intel/IBM/PC/DOS نظام التقسيم-1 تكون فيه القرص الصلب من يحاليا المستخدم BIOS البيوس هوأشهر نظام تقسيم يدعمه كل من الويندوز ولينكس وماك و وهو

(MBR, PARTATION, Inode table) Master boot record هو ؟ MBRال ما هو-1يوجد قبل وهو .)byte 512جزء صغير جدا (بايت أي انه 512) موجود في الهارد ديسك والسيكتور عباره عن sectorاول سيكتور ( هو .boot sectorويطلق عليه ايضا partition الموجود على الهارد ديسك أي انه ليس جزء من ال partition ال كل

- ويحتوي على:1- Partition table (64byte) 2- Magic No. (2byte) 3- Boat loader (446byte)

2-table Inode كاالتي: (meta data)ويحتوي على معلومات partitionويتكون قبل كل MBRثاني جزء بعد ال

يفينتمي اليها الملف، تاريخ انشاء الملف، اخر تاريخ قراءه، اخر تاريخ تعديل التياسم الملف، المستخدم صاحب الملف، المجموعة الملف، واهمها المكان الحقيقي للملف على الهارد ديسك (كل المعلومات عن الملف). فيالملف، الصالحيات الموجودة

3-Partition فيزيائية للقرص الصلباألقسام ال وهي.

-اإلمكانيات الخاصة بهذا النظام:

تيرا. 2وال تزيد عن ذلك لذلك ال يستخدم في األقراص الصلبة التي تزيد مساحتها عن tera)32 (2 2 = تيرا 2يعتمد مساحة تخزينيه حتى -1 اثنين او واحد).ولكن يمكن االكتفاء بثالثة او 4أي الحد األقصى (يدعم أربع اقسام فيزيائية ال يمكن الزيادة عليها -2

ولكن إذا اردت ان ازيد األقسام عن أربع اقسام فماذا نفعل؟ قسم رئيسي. primary-1-حيث نجد انه األقسام تنقسم الى نوعين:

2-extended كبيرا من األقسام عددا يحويقسم ممتد. حيث نجد ان هذا القسم له االمكانية ان . (logical partition) المنطقية

-أنك تقسم الهارد كاالتي: partitionفاذا اردت ان تزيد عن أربعة

Logical part

Page 107: Linux Admin I II

RHCSA/RHCE Egypt ®

partitioning تقسيم القرص الصلب 106

صبحي طيبه دد. محم

من أكثروهذا النوع يتيح لك عمل (extended) ممتد الرابع يكون قسموال (primary) الرئيسي من النوع (partition) اقسام تعمل اول ثالثة SCSI قسم بالنسبة لل 15و IDE or SATA partition بالنسبة لل قسم 63 لحد (partition)قسم

وهذا فقط (primary partition) قسم من النوع الرئيسي واحد هحتى لو كان في دائما 4يأخذ الرقم (extended) قسم الممتدونالحظ هنا ان ال .5بدأ بالرقم ي (logical part) قسم المنطقيوال .النوع ما هوا اال وعاء يحتضن فيه األقسام المنطقية

تتكون منالجديد (BIOS)البيوس هوو EFI (Extensible firmware interface)نظام التقسيم -2 (GPT, PARTATION, Inode table)

-اإلمكانيات الخاصة بهذا النظام: تيرا. 2لذلك يستخدم في األقراص الصلبة التي تزيد مساحتها عن 2)73(يعتمد مساحة تخزينيه حتى -1 اقسام فيزيائية. 128يدعم -2

)HARD DISK)( : - IDE | SCSI | SSP | SATA | SAS)الصلبةاألقراص أنواع 1- IDE (PATA)

(a,b,c,d) الموجود في الجهاز وتأخذ هذه االرقام H.Dالى رقم ترمز xحيث hdxويرمز له في اللينكس ب (primary , secondary)وهما االقراص الصلبة النوع من ) يوجد مخرجين لهذاmother boredفي اللوحة االم (

Primary secondary

master slave master slave hda hdb hdc hdd

االخرين يستخدم في االستقبال مما يؤدى الى 24من يستخدم في االرسال وال parallel )48 pin (24وهذا النوع يستخدم كابالت من النوع .بدوره يؤثر على سرعات ارسال البيانات من والى الهارد ديسك والذيمجال مغناطيسي

2- SATA (serial) (a,b,c,d) الى رقم الهارد الموجود في الجهاز وتأخذ هذه االرقام ترمز xحيث sdxويرمز له في اللينكس ب

(sda, sdb, sdc, sdd, sde -------------------------------------------------and soon) 3- Other (SCSI, SSD, SAS, FLASH DRIVE, CD-ROM)

(a,b,c,d) الى رقم الهارد الموجود في الجهاز وتأخذ هذه االرقام ترمز xحيث sdx كل هؤالء يرمز لهم في اللينكس ب(sda, sdb, sdc, sdd, sde -------------------------------------------------and soon)

وهذه الخاصية تتيح ازاله الهارد ديسك والجهاز يعمل. (hot removable)يوجد بعض الهاردات التي تحتوي على خاصية -ملحوظه: dev/sda/ مثال dev/جميع الوسائط التخزينية يتعامل معها اللينكس كأنها ملفات وتخزن في المسار التالي

PARTITIONINGتقسيم القرص الصلب

)rebootلذلك فال بد من االتي اما إعادة تشغيل الجهاز( قراءتهال يستطيع kernelجديد فال partitionعملت إذا -ملحوظه: االمر.) عن طريق force kernel readingمن جديد ( partition tableعلى قراءة ال kernel او اجبار ال

#partprobe/dev/sda :لعرض المعلومات عن جميع الهاردات الموجودة في النظام نستخدم التالي

.به kernel الفان أي تعديل يقوم به يقوم بتبليغ partedبالتعديالت التي قام بها اما ال kernel الال يستطيع اخبار fdiskاالمر -1#fdisk [options] [device]

fdiskمع االمر l–يستخدم الخيار يستخدم لعرض جميع الهاردات وذلك

ومعلومات لالموجودة على نظام التشغيوذلك لجعل u–ويستخدم .عنها

وذلك c-المعلومات تقرا بطريقه سهله و DOS compatibility modeلغلق

لذلك تستخدم كاالتي:#fdisk-cul

fdisk أشهر طريقه ولكن مشكلته انه

MBR متكامل مع نظام يعنى ال يستخدم مع الهاردات التي

تيرا 2تزيد مساحتها عن

Parted MBR, GPTيتعامل مع

وفيه من نوعين 1- CLI (parted)

2- GUI (gparted, qtpated)

Page 108: Linux Admin I II

RHCSA/RHCE Egypt ®

partitioning تقسيم القرص الصلب 107

صبحي طيبه دد. محم

fdiskتعريف القوائم الناتجة من االمر 1-Device والتي تشير الى األقسام عن طريق اسم لكل قسم مثل/dev/sda1 و/dev/sda2 و/dev/sdb مثال. 2-Boot يستخدم لتعريف القسم الذي يتم اإلقالع منه(bootable partition) امام القسم* ويتم تميزه بوجود. 3-start and end بداية ونهاية السلندر(cylinder) للقسم الواحد. 4-Blocks مساحةpartition الباستخدام نظام block وحجمblock 1024الواحد bytes. 5-Id عباره عن رقمين من النوعhexadecimal يستخدم لتعريف نوع القسم(partition id no.). 6-System مثلId ولكن يعبر عن نوع القسم باالسم. لعرض جميع األقراص الصلبة المتوفرة وصيغته: l–ويستخدم معه أيضا partedاالمر -2

#parted[options][device]

CREATE PARTITIONتقسيم القرص الصلب

ثم اسم الهادر ديسك المراد تقسيمه عن طريق كتابته كآالتي: fdiskنبدأ تقسيم الهارد ديسك باستخدام االمر fdiskاالمر -1

fdiskفتقوم بعرض جميع الخيارات المتاحة المستخدمة مع االمر mنقوم بكتابة الحرف

خيارات متقدمة wالخروج مع الحفظ

nجديد نستخدم partitionإلنشاء

dمعين نستخدم partition لحذف

o نستخدم partition table (MBR – GPT)إلنشاء pالتي تم إنشائها نستخدم partition table لعرض تفصيلي عن ال

qالخروج مع عدم الحفظ

tنستخدم partition الخاص بال F.Sلتغير نوع ال

wالخروج مع الحفظ خيارات متقدمة

Page 109: Linux Admin I II

RHCSA/RHCE Egypt ®

partitioning تقسيم القرص الصلب 108

صبحي طيبه دد. محم

fdisk عن طريق استخدام االمر partitionم االن بإنشاء نقو

sfdiskاالمر -2 gptولكن يتميز بالقوة ويعتبر مهم جدا بالنسبة للهاكرز ولكنه ال يدعم fdiskيستخدم هذا االمر في تقسيم الهارد ديسك مثل االمر

:هذا االمر له أربع استخدامات اساسيه المتوفرة partition عرض قائمه بمساحات ال-1 المتوفرة على الهارد ديسك الواحد partition عرض قائمه بال-2 partitions يعمل على فحص ال-3 partition (repartitioning) اهم وأخطر واحده يعمل على إعادة انشاء ال-4

كآالتي s–وذلك باستخدام الخيار partition عرض قائمه بمساحات ال -1#sfdisk-s[device]

فقام بعرض جميع المساحات deviceقام بعرض مساحة فقط اما عند عدم تحديد أي device حيث نالحظ من المثال السابق عند تحديد ال المتوفرة االن.

nجديد نستخدم partitionإلنشاء المراد انشائه partition نقوم بتعين نوع ال

المراد انشائه partition نقوم بتحديد رقم ال المراد انشائه منه partition ور تبدأ مساحة النقوم بتعين اول سيكت partition نقوم بتحديد حجم ال

pقبل انشائه باستخدام partition ض تفصيلي عن البعر

wالخروج مع الحفظ

Page 110: Linux Admin I II

RHCSA/RHCE Egypt ®

partitioning تقسيم القرص الصلب 109

صبحي طيبه دد. محم

l–المتوفرة وذلك باستخدام الخيار partition عرض قائمه بال -2

V– وذلك باستخدام الخيار partition يعمل على فحص ال -3

repartitionاو partitionإنشاء -4من مداخله (partitioning)لتقسيم ا التي تريد استخدامها في عملية لقراءة المواصفات (<sfdisk <device#)يستخدم الصيغة .القرصعلى ذلك على حسب المواصفات المدرجة (partition table)ومن ثم إلى تغيير جداول التقسيم ،(standard input) القياسية

ويعتبر هذا االمر مهم جدا بالنسبة للهاكر إلمكانيه استخدامه في السكريبت وقوة في انشاء جداول التقسيم sfdiskبعض الخيارات المستخدمة مع االمر

-T لعرض قائمه بأنواع أنظمة التشغيل المتاحة -g[device] عرض التصميم الداخلي للهارد ديسك

-Nnumber اذا اردت احداث تغير معين على قسم واحد دون الهارد ديسك كله # sfdisk /dev/hdb -N5 -Anumber inactive وباقي األقسام active لجعل قسم معين

لك تقوم بعملية التقسيم كآالتي: sfdiskشكل البيانات المدخلة الى االمر <start> <size> <type [E,S,L,X,hex]> <bootable [-,*]> <c,h,s> <c,h,s>

<start> و<size> البد من ادخال بيانتهما وفى بعض االوقات<type> في الفصل بين كل حقل واخر ),(وتستخدم المسافة او

L is (LINUX_NATIVE (83)) (default) , S is LINUX_SWAP (82), E is EXTENDED_PARTITION (5), and X is LINUX_EXTENDED (85).

sfdiskامثله على انشاء األقسام مع االمر

واحد يحتوي على كل المساحة المتاحة partitionعمل بفي هذا المثال قمنا وتكون التعبيرات األتية sfdiskمع االمر u–عند تحديد الحجم للتغير نوع الحجم لطريقه سهله نستخدم الخيار

-uM قياس الحجم بالميجا -uC قياس الحجم سلندير (القياس االفتراضي) -uB قياس الحجم بالبلوك –uS قياس الحجم بالسيكتور -uS, -uB, -uC, -uM: accept/report in units of sectors/blocks/cylinders/MB

Page 111: Linux Admin I II

RHCSA/RHCE Egypt ®

partitioning تقسيم القرص الصلب 110

صبحي طيبه دد. محم

ميجا واستخدمنا وحدة القياس ميجا الستخدام 50 (dev/sdd1/)حيث مساحة األول (partition 5)اقسام 5في هذا المثال قمنا بعمل عدد ميجا ومساحة الرابع 200 (dev/sdd3/)ميجا ومساحة الثالث 50 (dev/sdd2/)ومساحة الثاني sfdiskمع االمر uM–الخيار

(/dev/sdd4) 2 جيجا ومساحة األخير(/dev/sdd5) اره عن باقي المساحةعب.

ميجا من 50عباره عن القسم الثاني. OS/2 Boot Managerميجا من النوع 1عباره عن القسم األولفي هذا المثال قمنا بإنشاء االتي: ميجا من النوع 20والذي انشانا منه ثالث اقسام األول عباره عن extendedوالقسم الثالث الى هو عباره عن DOS partitionالنوع

DOS partition ميجا ونوعه 16والثانيswap يشغل المساحة الباقية. والثالث لعرض قائمة بجميع أنظمة التشغيل والرقم الكودى الخاص به T–ويمكن معرفة أنواع األقسام عن طريق الخيار

بطريقه تفصيليه. extendedلعرض جميع األقسام التي تكون من النوع x–ويمكن استخدام الخيار حفظ الوضع القديم للهارد ديسك وذلك للحماية partitionواالقسام (partition table)بإمكانك قبل البدء في تتغير جداول األقسام -ملحوظه:

-فاذا حدث خطا بإمكانك استرجاع الوضع القديم ويتم كآالتي: #sfdisk/dev/hdd-O/hdd-partition-sectors.save (file_name)

ثم إنشاء قسم جديدحيث قام بحفظ الوضع القديم وجدول األقسام ونظامهم

ثم بعد ذلك حفظ هذا الشكل القديم المكون من ثالث اقسام وقمنا بتغير dev/sda/حيث من المثال السابق نالحظ جدول األقسام للهارد ديسك :كآالتي O–بدل من I–الى قسم واحد فاذا أردنا استرجاع النظام القديم نقوم باستخدام الخيار

نفس التقسيم في cولكين كونقله الى هارد ديسك اخر أي يمكننا جعل التقسيم لهارد ديس (partition table)ويمكننا اخذ شكل جدول األقسام وتتم كآالتي: bالهارد ديسك وليكن

Page 112: Linux Admin I II

RHCSA/RHCE Egypt ®

partitioning تقسيم القرص الصلب 111

صبحي طيبه دد. محم

d–األول وتتم االتي باستخدام الخيار كللهارد ديس (partition table) ره من شكل جدول األقساماخذ صو-1#sfdisk-d/dev/hda>/hda.out

اخذ هذه الصورة كمعطيات واعطائها الى الهارد ديسك الجديد-2#sfdisk/dev/hda<hda.out

لذلك ظهرت اداه أخرى هي نفس األداة ولكن gpt ولكننا نجد أيضا انه ال يتعالم مع نظام ال sfdiskلقد قمنا االن باالنتهاء من شرح االمر sgdiskأيضا اسمها gpt تتعامل مع ال

kpartx (partx)نستخدم االمر partition mapلعملهم من اجل تحسين األداء او ويعتبر مأي فتح منافذ لجهاز ما وليكن هارد ديسك على الكيرنل multipathمن طريق للدخول أكثروذلك لعمل

image الفشل ويستخدم أيضا مع لةفي حا

partedاالمر -3فقط وبعد كتابة االمر نجد ان المحث تغير الى partedويبدأ استخدامه بكتابة االمر gptويتميز هذا االمر بانه يدعم نظام الملفات (parted) وهذا يعنى ان التطبيقparted .جاهز ليتلقى منك المعطيات التي تريد إدخالها

helpولمعرفة جميع الخيارات المتاحة وطريقة استخدامه نكتب كلمة

partedعن طريق االمر partitionسوف نقوم االن بإنشاء

Page 113: Linux Admin I II

RHCSA/RHCE Egypt ®

(File system) تأنظمة الملفا 112

صبحي طيبه دد. محم

(FILE SYSTEM) الملفات أنظمة

.الملفات ألنظمة مختلفة أنواع سنجد لينكس،/جنو بنظام يعمل جهاز كل في األحدث أو ، 2.4النواة حتى مستخدما كان ما وهو 2xte القياسية األنظمة مثل ،لينكس/بجنو المرتبطة األنظمة-1-ومن هذه األنواع:

يسمح مما الملفات، نظام يدخل بما سجلة بوجود يسمح مما journalingالتسجيل ميزة مع ext2لنظام تحديث وهي ext4 او ext3مثل Reiserمثل الملفات، أنظمة من أنواع أخرى وهناك .أخطاء حدوث حال في أسرع باستعادة

FAT16المختلفة األنظمة إلى الوصول MSDOS،VFAT ،NTFS :لينكس/جنو غير بيئات مع التوافقية-2 .HFSplusو HFSمع ماك مثل أخرى بيئات مع توافقية أيضا هناك .NTFSو FAT32و

.UDFو ISO9660أنظمة مثل- CDs/DVDs الضوئية األقراص مثل – الفيزيائية وسائطبال المرتبطة األنظمة-3 Reiserfsو XFSو JFS2،األخرى يونكس أنظمة في المستخدمة الملفات أنظمة-4

.SAMBAو NFS تقليدية أكثر الشبكة ملفات أنظمة-5 /sys/و /proc/مثل أنظمة الملفات الوهمية-Coda. 7و GFSمثل: الشبكة في الموزعة األنظمة-6

partitionبها الملفات داخل ال وتخزن التي ترتب الطريقةهذه األنواع ترمز الى (name and ID)يحتوي على حاجتين file systemلكل نوع من أنواع ال

ext4 support to 8 tera in LBA system (MBR) -: االتينستخدم system) (fileملفات وألنشاء نظام

oΔcd.isoΔcd_dir-#genisoimageمثال HFSو Jolietوالضوئية تلألسطوانا ISO9660إلنشاء نظام ملفات genisoimageاالمر ونجد انه يستخدم عن (create partition)وسائط تخزينيه سواء حقيقيه او وهميه أليستخدم إلنشاء ملفات النظام نو mkfsاالمر

وصيغته: bin/وال يوجد في المسار sbin/طريق أي مستخدم لذلك يوجد في المسار

mkfs[-t fstype][fs-options]filesys(device) [blocks] ext2ولكن إذا لم يحدد فان نظام الملف االفتراضي الذي يحدده هو (file system)يستخدم لتحديد نوع نظام الملف t–مع الخيار يعمل على فحص الهارد ديسك قبل بناء نظام الملفات فيه c–مع الخيار

device_nameثم selectنبدأ االن عملية انشاء القسم عن طريق استخدام كلمة -1

MBRوليس gptولكن من النوع (partition table)الخطوة التالية انشاء جدول اقسام -2 وتكون الصيغة كآالتي: partition الخطوة التالية انشاء ال-3

mkpart (primary/extend) (fs type) (start) (end) 4-نقوم بحفظ السابق عن طريقprint

partitionطريقه أخرى إلنشاء قسم

quitنكتب كلمة partedللخروج من االمر

Page 114: Linux Admin I II

RHCSA/RHCE Egypt ®

(File system) أنظمة الملفات 113

صبحي طيبه دد. محم

ext4 partitionإلنشاء مثال #mkfs-text4/dev/sda or #mkfs.ext4/dev/sda

وفيما يلي قائم بأسماء أنظمة الملفات المتاحة

-كاالتي: ext2مثال اخر إلنشاء نظام التشغيل من النوع #mkfs.ext2/dev/sda or #mkfs-text2/dev/sda or mke2fs/dev/sda

Page 115: Linux Admin I II

RHCSA/RHCE Egypt ®

mounting media انشاء نقطة ضم ألنظمة الملفات 114

صبحي طيبه دد. محم

. ext2ويجب ان نالحظ انه عند عدم تحديد نظام الملف فانه يحدد تلقائيا الى mke2fsوالجدول التالي به اهم الخيارات المتاحة مع االمر

dumpe2fs/dev/sda1# بعد إنشائها وتستخدم كاالتي: (file system)يستخدم لفحص أنظمة التشغيل dumpe2fs االمر

MOUNTING MEDIAالملفات ألنظمةنقطة ضم انشاء

في .بأنفسنا إنشاؤها يمكننا أو على حسب التوزيعة بطريقه اليه mount point انشاء نقط ضم االن في معظم توزيعات جنو/لينكس يقوم بعملنقطة /mnt/او كمجلدات فرعيه داخل /cdrom/، /win/، /floppy/مثل root (/) الجذريمن المجلد فرعية كمجلدات إما توجد العادة،

.صارت التوزيعات مؤخرا تفضله الذي /media/او مجلد /mnt/cdrom/الضم المعيارية وتظهر كاالتي نظر منه على لا أستطيعبعمل شباك يعنى (access on device)أرى محتويات وسيط تخزيني انى أقدر mountمعنى كلمة .ان استخدم محتوياتها أستطيع لكي mountان اعملها فالبد dev/المسار التالي يف موجودة وسائطوكل الالوسيط محتويات -بأكثر من طريقه: (mount)نقطة ضم يمكن عمل

)fstabاو الملف mountباألمر ( device name الوسيطاسم باستخدام-1 )fstabاو الملف mount(باألمر labelباستخدام -2

) fstabاو الملف mount(باألمر UUIDباستخدام -3 automounter باستخدام ال-4

fstabاو الملف mountاالمر عن طريق باستخدام اسم الوسيط -1

ونوع ملف (mount point)الضم نفسها ومسار نفطةعمل له نقطة ضم الذي(اسم الوسيط -يعطيك المعلومات التالية: mountواالمر من حيث هل هوا للقراءة فقط ام للقراءة والكتابة). mountال عونو )(file systemبهالنظام الخاص

اسم الوسيط التخزينى)( device name ال مباستخدا (mount point)لعمل نقطة ضم #mount[options]device _namemount_point #mount-t(file system type)Device( اسم الجهاز ( Directory(mount point نقطة الوصول التي اتعامل بها)

OPTIONS الوصف الخاص به -a قراءة ملف يعيد/etc/fstab خطا رسالةحدث خطا يعطى وإذا ليعيد تحديث نقاط الضم -v يريك ما يحدث من عمليات عن تنفيذ االمرmount (verbose) -s يعمل انشاء نقطة ضم من غير تحديد نوع نظام الملف(file system) -r يعمل على انشاء نقطة ضم لوسيط معين(device) ولكن يكون التعامل معه للقراءة فقط -w لوسيط معينيعمل على انشاء نقطة ضم(device) ولكن يكون التعامل معه للقراءة والكتابة -L عن طريق الانشاء نقط ضم باستخدام label -U عن طريق الانشاء نقط ضم باستخدام UUID -o ) إلضافة خيارات أخرى ومن هذه الخياراتro للقراءة فقط وrw للقراءة والكتابة وloop (لعمل ضم للوسائط الوهمية

)Check=none (يعمل إلنشاء نقطة ضم بدون أي فحص -l إلضافةlabel أي يعادل له نقطة ضم سوف نعملللجهاز الذيe2label

-tΔF.S لعمل نقطة ضم مع تحديد نوع نظام الملف(file system = F.S) وإذا استخدمno قبلF.S فانه تعنى جميع االنواع ما عدا هذا mount -a -t nomsdos,ext يعنى انه جميع أنواع أنظمة التشغيل ماعدا هذين النوعين

(block size)يعمل على تخير حجم البلوك

الذي فسد ءيعمل على فحص البلوك الردي

inode على تخير حجم اليعمل

Page 116: Linux Admin I II

RHCSA/RHCE Egypt ®

mounting media انشاء نقطة ضم ألنظمة الملفات 115

صبحي طيبه دد. محم

optlist]O-[t type]-[a-mount# هذه الصيغة كثيرا تكتب في سكريبت التشغيل(boot script) والتي تعملmount كل ل مثال a–للحد من تأثير O–ويستخدم etc/fstab/أنظمة التشغيل في الملف

#mount-a-Ono_netdev وتعنى عملmount الخاصيةما عدا التي تحمل الموجودة األنظمةلكل _netdev #mount –a –t ext2-O_netdev وتعنى عملmount ألنظمة التشغيل من النوعext2 والتي تحمل الخاصية_netdev فقط fstabاو مع الملف –oسواء مع الخيار (Mount Option)الجدول التالي يتناول خيارات نقطة الضم

Mount Option Description

async Data is read and written asynchronously. sync قراءة البيانات وكتابتها بشكل غير متزامن وعكسه تتم

atime الرقم االينود (inode no.) تكتب هكذا هيتم تحديثه في كل مره يتم الدخول على الملف وإلغنائnoatime

auto البحث في المجلد/etc/filesystems عن نظام الملفات او التنسيق المناسب لل partition ترتب عادة بمحرك (removable device)او القابلة لإلزالة (floppy)األقراص المرنة

defaults rw, suid, dev, exec, auto, nouser, and async. وتشمل االتي

dev يسمح للوصول الى(character & block device) ةأي انه يقرأ او يفسر األجهز (device) وعكسهnodev

exec يسمح لملفاتbinary (compiled program) وعكسه (البرامج) ليتم تشغيلها على نظام التشغيل هذاnoexec

suid يسمح بالصالحيات من النوعsuid وsgid التي توجد على نظام التشغيل هذا وعكسه على الملفاتnosuid

nouser وتعنى ان المستخدم الجذريroot لعمل هو الوحيد الذي له الصالحيةunmount وعكسهuser تعنى الكل

remount يعيد القراءة نقاط الضم من جديد في ملف/etc/fstab

ro تعنى قابل للقراءة فقط

rw والكتابةتعنى قابل للقراءة

device[directory | umount[ وصيغته mountعكس االمر الضم وهوإلغاء نقط

:نقطة ضم لو عملت-ملحوظه (mount) لوسيط تخزين (device)نقطة الضم في نفس (mount point) وسيط تخزيني على يحتويالذي وضع أخيرا. الذيالكتاب فوق كتاب فالظاهر لك هوضعت كتاب الجديد كأنك و الوسيط التخزينىقديم فالذي سوف يظهر اخرولحل هذه المشكلة تشغيل كل ما عمل من نقاط ضم سوف يلغى لو اعملت إعادة أنك (mount)وأكبر مشكله في الضم

.mount ضملتثبيت ما قمت به من عمليات ال وذلك etc/fstab (file system table)/االعداد تعديل في ملف نعمل

(mount configuration file)ملفات االعداد الخاصة بعملية الضم 1- /etc/fstab ه.نقاط ضم عند بداية التشغيل بطريقه اليسواء وسائط تخزين حقيقيه او وهميه التي سوف يعمل لها على كل الملفات يحتوي 2-/etc/mtab المضمومة باألنظمة قائمةعلى يحتوي (mount)تنفيذ االمر يمكن أو إليها، الرجوع يمكن والتي معينة، لحظة فيmount

بدون أي خيارات معه -: etc/fstab/شرح ملف

.dev/sda1/مثل (device name)اسم الوسيط -1 .(mount point)نقطة الضم -2 .(file system type)نوع ملف النظام -3

(device)اسم الوسيط التخزين Mountpointنقطة الضم Fstype Option

Checkorder

Dump

Page 117: Linux Admin I II

RHCSA/RHCE Egypt ®

secure erase الحذف االمن 116

صبحي طيبه دد. محم

وقد شرحت# mount-ooptionوالتي يمكن كتابتها داخل الملف او عن طريق االمر (option)الخيارات المتاحة معه -4 5-Dump تستخدم من قبل user 0ن الرقم هو اإذا ك .ة األتيةالمحدد الرقامويستخدم ااالحتياطية. لتقرير أين ستوضع النسخة ولكن 1وهو مثل 2وأي شيء اخر يأخذ الرقم بعمل نسخة احتياطية. Dump سيقوم 1وإذا كان الرقم الملفات،نظام Dump سيتجاهل

فارق األولوية6-Check order مر التستخدم من قبل ا fsck نظام 2و 1و 0لتحديد أي نظام ملفات سيتم فحصه. المدخالت المتاحة هي

نظم الملفات .2خرى التي تريد فحصها يجب أن تحمل الرقم الوكل نظم الملفات ا ،1لى بالرقم عالسبقية االالملفات الجذر يجب أن يحمل ا .fsck لن يتم فحصها باألداة 0المحددة بالرقم

labelباستخدام ال سيستخدم اسم mountولو عملت devices وسيطسيحافظ على اسم ال devices وسيطوهذه الطريق تستخدم لتفادى مشكلة تغير مكان ال

label ولن يستخدم ترتيب الdevice نفس من عيوبه انه ممكن اثنين يعملوا ولكن label #e2label/dev/sda1 data or #mount-l/dev/sda1 data

e2label/dev/sad1# معين deviceالخاص ب labelالستعراض ال findfsLABEL# معين labelالخاص ب deviceال الستعراض

Syntax: findfs LABEL=<label>|UUID=<uuid> عمل له الذي label الاسم هي data والي) Label=dataاالتي ( device name تكتب في خانة fstabفي ملف ال

UUID [universal unique identified]باستخدام -2 يأخذ رقم معين ومن المستحيل تواجد رقمين متشابهين partitionل formatكل مره تعمل

blkid# معين نستخدم االمر التالي partition ل UUIDلمعرفة ال partition الخاص بال UUIDنعمل نسخ لرقم .UUID=NO. (NOاالتي ( device name تكتب في خانة fstabفي ملف ال

غير مستخدمه ولمعرفة ذلك نستخدم االمر التالي: device تأكد ان ال umountملحوظه قبل عمل #fuser [options] MOUNT_POINT | FILE SYSTEM OPTIONS الوصف الخاص به

-c يعمل على فحص كل الوسائط التي تحتوي على نقاط ضم(mounted) -k إللغاء جميع العمليات التي تستخدم وسيط(device) محدد -m العمليات التي تستخدم وسيطلعرض جميع(device) محدد -u لعرض الuser id -v تنفيذ االمر ديريك ما يحدث من عمليات عن

lsof-mdevice #lsofdevice# ممكن تستخدم االمر أكثرولمعلومات .mount iso imageنقطة ضم للوسائط الوهمية للعم

#mount-oloopmage-namemountpoint cdrecordلنسخ أسطوانة نستخدم االمر

SECURE ERASEالحذف االمن

ارجاعها بأي إلزالة فان هذه الملفات من السهل من المعروف انه عند إزالة أي ملف من القرص الصلب بأي امر من أوامر ا PATAقامت كل من األقراص الصلبة من النوع 2000لذلك سنه (RECOVERY TOOLS)برنامج استرجاع الملفات

recoveryمنه بمعنى عدم القدرة على استرجاعها بأي برنامج أباستعمال تطبيقات تعمل على إزالة الملفات بطريق SATAو .secure erase وفكرته انها تعمل إعادة الكتابة على الجزء التي تم إزالة الملفات منه ولماذا نحتاج ال

وذلك لحساسية المعلومات. recoveryإلزالة الملفات بطريقه نهائية مع عدم القدرة على ارجاع هذه الملفات بأي برنامج -1 (magnetic trace)له مرئيةيؤدى الى ترك بعض الملفات الغير قديعلى كل سيكتور مما يدويةعند أعداه الكتابة بطريقه -2

بأي هاكر. اوالتي يمكن استرجاعه -: (secure erase)البرامج المستخدمة في اإلزالة األمنه

.األمانة لإلزالة HDDErase األداةنستخدم DOS البالنسبة لنظام -نستخدم الطرق األتية: لينكس/بالنسبة ل جنو -: كآالتيالمسح االمن وصيغته (root user)الجذري فقط مويستخدم مع المستخد hdparmاألداة -1

1-#hdparm--user-masteru--security-set-passpassword/dev/sda لعمل باسورد للحماية 2-#hdparm--user-masteru--security-erasepassword/dev/sda (or --security-erase-enhanced password)

فقط 2للهارد ديسك ولكن يمكن االستغناء عنه واالعتماد على السطر لتعين رقم سرى 1وال بد من السطر ترمز الى اسم المستخدم uحيث NULLكلمة password ونضع مكان ال

وهذه األداة ليست فقط لإلزالة األمنه للملفات على االقراص الصلبة ولكنها تستخدم أيضا للتعامل مع برنامج الخاص -: hdparmشرح االمر ومن األشياء األخرى التي تقوم بها هذه األداة التحكم في نظام توريد الطاقة فقط SATAو PATAوتدعم (firmware) باألقراص الصلبة (read only flag)جعل القرص الصلب للقراءة فقط noise reduction خيار التفعيل او الغاء ،(power option)الخاص بالقرص

انها اداه تقوم بالتحكم الكامل في القرص أي والقرص الصلب لالكير نبين وهو يعتبر أداة الوصل وإعطاء معلومات كامله عن القرص الصلب .ووضع المدخالت الخاصة به الصلب

Page 118: Linux Admin I II

RHCSA/RHCE Egypt ®

secure erase الحذف االمن 117

صبحي طيبه دد. محم

-وصيغته: #hdparm[flags ][device] ..

1-(#hdparm-I /dev/sda) عن معلومات كامله عن الهارد ديسك أي يعمل له فحص ويعطيك تقرير عنه لللحصو 2-(#hdparm-i /dev/sda) بعرض معلومات عن الهارد ديسك ولكن بطريقه مختصره ميقو 3-(#hdparm) عه جميع الخيارات المتاحة م ضيعر 4-(#hdparm-t--direct/dev/sda) سرعة القراءة لدى الهارد ديسك سلقيا

5-(#hdparmtT/dev/sda) Tو (device read timing) لفحص سرعة القراءة tلفحص القرص الصلب من حيث سرعة القراءة حيث hdparm –tTيستخدم االمر

.cache (cache read timing) لفحص سرعة القراءة من ال

.يجب تكرارهم أكثر من مره حتى نحصل على نتيجة صحيحه الى حد كبير 5و 4ونالحظ في المثال 6-(#hdparm-d1/dev/sda) DMA للهارد ديسك وتعنى تشغيل ال

إذايله ولتشغ .للذاكرة الجهاز وتستخدم في زيادة سرعة جهاز الكمبيوتر الصلب بدون أي وسيط صللقرمباشر اتصال طريقة هي DMAال .المتوفرة DMA ال ألرقامترمز xحيث hdparm-dxنستخدم االمر كان متوفر في القرص الصلب

7-(#hdparm-S24/dev/sda) (120sec=5*24)تستخدم في حفظ طاقة الجهاز أي انه سوف يجعل الهارد ديسك في وضع الخمول إذا قضيا بعض الوقت بدون استخدام

8-(#hdparm/dev/sda) بعرض إعدادات الهارد ديسك ميقو 9-(#hdparm–X66 /dev/sda)

لزيادة السرعة وتستخدم األرقام األتية معه وأي خطاء فيه سوف يجعل الجهاز في وضع التهنيج d–وكثيرا تستخدم مع

Page 119: Linux Admin I II

RHCSA/RHCE Egypt ®

118 swap

صبحي طيبه دد. محم

34 is used to select multiword DMA mode2 transfers 66 is used to select UltraDMA mode2 transfers (for systems which support UltraDMA burst timings) 68 is used to select UltraDMA mode4 transfers (for systems which support UltraDMA burst timings) 10-(#hdparm–M254/dev/sda)

سرعة التحكم في محركات القرص الصلب الحديثة لديها القدرة علىحيث نجد ان acoustic management AAMللحصول على واعداد هو االعداد األكثر هدوء 128القيمة . 254الى 0من الضجيج الناتج بهم. القيم الممكنة هي بين للحد (HEAD movement) الرأس ةحرك

بعض محركات األقراص لديك مستويين فقط (هادئ / سريع)، في حين أن ضوضاء.تعتبر األسرع ولكنه األكثر 254 والقيمةألبطأ وبالتالي اخيارات، إيقاف، هادئة، وسريعة. وقد تم 3. في الوقت الراهن، معظم محركات دعم سوى 254و 128آخرين قد لديهم مستويات مختلفة بين

.الوقت الحاضر، على التوالي في 254و، 128، 0تعيين هذه القيم 11-(#hdparm-m16/dev/sda)

" من معلومات محرك MaxMultSect. تحقق من اإلعداد "(االفتراضي) بدال من واحد I / O خالل المقاطعةيسمح بنقل قطاعات متعددة هي قيمة جيدة لمحاولة األولى، إال إذا 16 القيمةللعثور على القيمة القصوى. I–الذي حصلت عليه عن طريق الخيار األقراص الخاص بك

.8-4من القيمكان لديك محرك ويسترن ديجيتال ثم ينبغي أن نحاول 12-(#hdparm-c3 /dev/sda) 0 to disable 32-bit I/O support 1 to enable 32-bit data transfers 3 to enable 32-bit data transfers with a special sync sequence

وتعنى دخول القرص الصلب مباشرة في وضع الخمول يعنى اغالقه. hdparm-yاالمر power management stateتعرض حالة منظم الطاقة hdparm-Cاالمر

عندما تتعامل مع هذا االمر فكون حذرا ألنه من األوامر التي ممكن تحدث تلف في األقراص الصلبة ان لم تكون بعلم كامل عنه ملحوظه etc/hdparm.conf/وملف االعداد الخاص به موجود في

ddΔif=/dev/zeroΔ of=/dev/sdaΔbs=1kΔcount=512#االمر -2 من الهارد ديسك؟ MBRكيفية حذف ال

نستخدم االمر التالي:#ddif=/dev/urandomof=/dev/sdabs=1kcount=512

أي يعيد الكتابة عليها MBRالى متخزن عليها 512وفكرة االمر انه يعمل ملف ذو مساحة وهميه في اول مساحة في الهارد ديسك if = input file of=output file

أي أفضل من السابق وصيغته ويستخدم إلزالة محتوى ملف معين ايضا shredاالمر -3 #shred [option(s)] file(s)_or_devices(s)

وليس داخل النظام (boot disk)تكون موجده في Darik’s Boot and Nuke(dban.org)االداه -4 -الخاصة بالقرص الصلب: SMARTخاصية ال . متوفرة SUSEو Red Hatفي توزيعة

.smartmontoolsفي توزيعة اوبنتو نعمل على تنزيل التطبيق smartdالمسئولة عنها services ال

SWAP يلجأ اليها التي االفتراضية الذاكرة)ب .RAM نفسه للجهاز الفيزيائية الذاكرة) أ :لدينا أن نتذكر أن علينا النظام، بذاكرة األمر يتعلق عندما

في أنظمة swap spaceفان نظام التشغيل يلجا الى استخدام الذاكرة الوهمية والتي تسمى RAM الفيزيائية عند امتالء الذاكرة نظام التشغيلفي أنظمة التشغيل األخرى التي توجد في القرص الصلب والتي يقوم نظام التشغيل بوضع virtual memoryالتشغيل لينكس وتسمى

واسترجاع هذه RAM فيها حتى يتم تفريغ ال RAM الفيزيائية تطبيقات التي تعمل في الوقت الحالي وال نحتاج لها االن وتملء الذاكرة الاو (swap partition)قد تكون عباره عن قسم كامل في الهارد ديسك (swap space)التطبيقات عن االحتياج لها وهذه الذاكرة االفتراضية

. (swap file)ملف عباره عن Swap partition هو األكثر شيوعا ولكنه األكثر صعوبة في االعداد عند تثبيت نظام التشغيل

Swap file هو اقل كفائه ولكن يتميز بسرعة وسهولة اعداده RAMوممكن تكون ملف او مجلد ومساحتها يجب ان ال تقل عن ضعف الذاكرة swapيكون اسمها (virtual memory)والذاكرة الوهمية

RAM*2المستخدمة = :المفيدة واألوامر الطرق من العديد لدينا الذاكرة، معلومات الختبار

proc/swaps/إيجاد حجمه او بتفقد ال fdiskويمكننا عبر االمر swap يظهر ال etc/fstab/: ملف -

Page 120: Linux Admin I II

RHCSA/RHCE Egypt ®

119 swap

صبحي طيبه دد. محم

.المستخدمة الذاكرة وكم نسبة عن خيارات مع لدينا، التي العمليات بمعرفة لنا يسمح- :psاالمر - للذاكرة. استخدامها حسب العمليات فرز له يمكن .معينة زمنية مدة خالل للتحديث قابل ps اصدار متغير من ال- :topاالمر -لتكون m–ويستخدم معه الخيار االفتراضية الذاكرة حجم أيضا يقدم .للذاكرة العامة الحالة عن تقريرا يعرض-: freeاالمر -

البيانات سهلة القراءة.

.به المرتبطة واالستخدام االفتراضية الذاكرة حالة عن تقريرا يعرض-: vmstatاالمر -

topوغيرها) مثل ال swap (الذاكرة وال مختلفة بمعامالت بيانات بفرز تسمحموجود في بعض التوزيعات - :dstatاالمر -

يقوم بعرض استخدامات الكيرنل للذاكرة- :slabtopاالمر - sysstatيعتبر المراءة بالنسبة للنظام كله يأتي مع التطبيق -: sarاالمر -

#sar 10 5 ثواني خمس مرات 10تعنى عرض اداه النظام بمعدل كل #sar –B to see paging #sar –r to see ram usage #sar –W to see swap activity كل ذلك يخص الذاكرة #sar –q to see run queue #sar –u traditional cpu usage #sar –w كل ذلك يخص البروسيسور

swapنأتي االن الى طريق انشاء الذاكرة سوف تحتاج الى األوامر التأليه: swap وعند انشاء ال swapإلنشاء ال mkswap االمر swapoffوعكسه االمر swapلتفعيل الذاكرة swapon االمر ألنشاء ملف بمساحه معين dd االمر

fileعن طريق ملف-partition 2عن طريق -1وتتم بطريقتين partitionعن طريق -1

partitionانشاء –أوال وذلك باستخدام swap من النوع ال swap المخصص إلنشاء ال partition الخاص ال F.Sجعل نظام الملفات –ثانيا

:partedاو fdiskاو sfdisk عن طريق ال swapاو عن طريق تغير نوع نظام الملفات الى النوع كما يلي mkswapاالمر

swaponباستخدام االمر swap تفعيل ال –ثالثا

Page 121: Linux Admin I II

RHCSA/RHCE Egypt ®

LVMمدير االقراص ال منطقية 120

صبحي طيبه دد. محم

:لفص ال-ملحوظه partition المخصصة لل swap نستخدم االمرswapon-s او/proc/swaps

swapنظام الملفات نوعه F.Sويكون تحت بند fstabنعمل على تسجيل ما قمنا به في ملف –رابعا /dev/sde1 swap swap defaults 0 0

عن طريق ملف-2 باستخدام االمر التالي: swapfileه ننشأ الملف أوال وليكن اسم –أوال

#ddif=dev/zeroof=/swapfilebs=1Mcount=2012 وذلك باستخدام االمر كما يلي: swap المخصص إلنشاء ال swapfileالخاص بالملف الذي قمنا بإنشائه F.Sجعل نظام الملفات –ثانيا

#mkswap/swapfile swaponباستخدام االمر swap تفعيل ال –ثالثا

#swapon/swapfile swapon-sنستخدم االمر swap المخصصة لل partition ولفص ال swapنظام الملفات نوعه F.Sويكون تحت بند fstabنعمل على تسجيل ما قمنا به في ملف –رابعا

LVMال منطقية قراصاال مدير . صويرجع استخدامه الى سهولة ادارته لألقرا (advanced partition management)يعتبر شكل من اشكال ادارة األقسام المتقدمة

من مساحة تخزين في مكان واحد أكثروالتي تتيح تجميع Logical Volume Manager – LVM منطقية أقراص مدير لينكس في يوجد من مملوك يونكس نظام (وهو HP-UX في المستخدمة التخزين مدراء وسائط من طورت فكرة على مبنيمرونة من التقسيم التقليدي أكثرHP( و إصداران اآلن هناكLVM2 المضافة المزايا من عدد بسبب ااألكثر استخدام هو.

:التالية الرئيسية العناصر من بالعادة LVMتتكون معمارية .حدات التخزين المنطقيةو ،مجموعات الوسائطالفيزيائية وحدات التخزين :طبقات منفصلة ثالث األقراص في يعامل

آخر يظهر عنصر أي أو أقراص من أقسام أو صلبة أقراص وهي :Physical Volumes – PV الفيزيائية الوسائط-1فإنها تقسم الى أجزاء صغيره VG) وعند اضافتها الى hardware RAIDو software RAID مثل ال( النظام في صلبكقرص

ميجا 4 ا االفتراضيةوالتي تكون مساحته PEsاو physical extent بالتساوي تسمىتحوي التي اإلدارية الوحدة وهو .العليا الطبقة في العنصر هذا :Volume Groups – VG الوسائط مجموعات-2 الفيزيائية الوسائط في المتاحة البيانات PVاو فيزيائية LVمنطقية وسائط كانت لدينا سواء التي الموارد

المنطقي الوسط يظهر الفيزيائية القرص على األقسام تعادل هذه: Logical Volumes – LV المنطقية الوسائط-3LV ملفات نظام يحوي أن فيزيائيا ويمكن قسما تماما يعادل وخام كتل كجهاز.

األقراص واألقسام من كبير عدد من تتكون أن يمكن والتي( المتاحة التخزين مساحة مع التعامل منطقية وسائط باستخدام يمكننا بتطويع لنا عمليات تسمح وعبر أكثر مناسبة محددات عبر المساحة ندير أن ويمكننا تظهر، التي االحتياجات على بناء أكبر، بمرونة )المختلفة .لحظة أي في تظهر التي االحتياجات لتناسب المساحة :يلي بما المنطقية الوسائط إدارة لنا تسمح

(resize)الموجودة الوسائط بعض إزالة أو جديدة، فيزيائية وسائط بإضافة وذلك المنطقية، والوسائط المجموعات تحجيم إعادة-1 LVM2((snapshot)في كتابة أو/و وقراءة LVM1في فقط الملفات (قراءة لنظام لقطات أخذ-2 3-RAID0 غير موجودة في 5او 1المستويات المنطقية الوسائط علىLVM فاذا كانت ضرورية إذا نستخدم ال RAID ثم

كطبقه فوقيه عليها. LVMنستخدم اليجبرك على استخدام مساحات متساوية.-4 وفي المنطقي، القرص إنشاء (3 ثم VGالمنطقية المجموعة إنشاء (2و PVفيزيائية وسائط إنشاء (1 :علينا يتوجب أساسية، وبشكل الملفات. نظام واستخدام إنشاء النهاية،

Page 122: Linux Admin I II

RHCSA/RHCE Egypt ®

LVMمدير االقراص ال منطقية 121

صبحي طيبه دد. محم

يتم استخدامه عند التعامل مع physical extend ال (physical extend – logical extend) الوحداتيحتوي على نوعين من LVMونجد ان logical extendوال (logical volume)يتم استخدامه عند التعامل مع الوسائط المنطقية logical extendوال (volume group)مجموع الوسائط

physical extendلل (map)ويعتبر البوابة -نتبع اآلتي: LVMإلنشاء األقراص المنطقية

ولكنه يتعامل مع وسائط الفيزيائية. partition ال يتعرف على ال LVM لكل قرص صلب ولكن اعلم ان ال partitionانشاء -1 الى وسائط فيزيائية. partition انشاء الوسائط الفيزيائية عن طريق تحويل ال-2 عن طريق تجميع األقراص الصلبة مع بعض. VGانشاء مجموعة الوسائط -3 والتحكم فيه وإمكانية الزيادة والنقص والتعامل مع على انه قرص صلب واحد. LVانشاء القرص المنطقي -4

(8e) (Linux LVM)ويكون له نظام ملفات من نوع (partitions)اقسام ثالثة أنشأنا وقد ،أقراص صلبه منفصلة ثالثة لدينا: مثال-1

بمعنى إعادة تهيئة القرص الصلب فيزيائية، وسائط ثالثة وسوف نقوم بتحويلها الى ،(Linux LVM)من النوع منفصلة أقراص على (partition)أقسام ثالثة لدينا: االن-2

-كالتالي: pvcreateباستخدام االمر PV (physical volume)الى وسائط فيزيائية (partition)بمعنى نقوم بتحويل األقسام

القرص الفعلي من (one partition)أو قسم واحد (one physical disk)تقتصر على قرص فعلي واحد (PV)القرص الفيزيائى للعرض باختصار pvsبالتفصيل او يستخدم االمر PVلعرض جميع األقسام التي من النوع األقسام الفيزيائية pvdisplayيستخدم االمر

pvcreateوالحظ أيضا ان جميع البيانات الموجودة سوف يتم فقدانها عند تشغيل االمر فان VGال وبمجرد انشاء vgcreate االمرباستخدام volume group (VG)األقسام في قسم واحد وانشاء مجموعة وسائط تجمع هذه-3

االتي: ويمكن تغيرها باألمر 4Mوالمساحة االفتراضية لها PE (physical extend)تنقسم الى مجموعات تسمى ال PVالوسائط الفيزيائيه #vgcreate-sPhysicalExtentSize [bBsSkKmMgGtTpPeE]VG_namePV_path B=byte M=mega T=tera (#vgcreate –s 8M vg0 /dev/sdb1 /dev/sdc1 /dev/sdd1)

.لعرضهم باختصار vgsبالتفصيل او VGلعرض جميع األقسام التي من النوع vgdisplayيستخدم االمر -كالتالي: lvcreateباستخدام االمر LV المنطق الوسيط ننشئاالن -4

-n = --name المنطقيلتعين اسم الوسيط -L= --size لتعين حجم الوسيط المنطقي -lPE_vol PE لتعين الحجم عن طريق

Page 123: Linux Admin I II

RHCSA/RHCE Egypt ®

LVMمدير االقراص ال منطقية 122

صبحي طيبه دد. محم

جيجا 3تعنى 3Gميجا و 30تعنى 30Mويكون حساب المساحة االفتراضي بالميجا ولكن يمكن التحكم في ذلك .للعرض باختصار lvsبالتفصيل او الوسائط المنطقية LVلعرض جميع األقسام التي من النوع lvdisplayيستخدم االمر

dev/vg0/lv5/االن انشاءنا وسيط منطقي اسمه له ننشىء نظام ملفات-5

الرسم التالى يوضح طريقة فعل ما سبق

إمكانية التحكم في حجم القرص سواء بالزيادة او النقص فكيف ذلك؟ (logical volume)من مميزات األقراص المنطقية األقراص المنطقية RESIZING LOGICAL VOLUMEتغير مساحة

والتي lvreduceوتقليلها عن طريق االمر lvextendيمكن زيادتها باستخدام االمر (logical volume)األقراص المنطقية كال الحالتينفي lvresizeوايضا يمكن استخدام والتي تحدد المساحة الجديدة. --sizeاو –Lيستخدم معهم الخيار

يمكن ext3 ،ext4و ext2 نظام الملفات التي لديها وحدات التخزين المنطقيةجميع (لتفعيل الحجم الجديد resize2fsثم بعد ذلك نستخدم االمر ) resize2fs مع األمر تغيير حجمها

أوال. unmountedعمل يجب وحدة تخزين منطقية تقليل حجم أنه من أجل تذكرLVM الوسائط بتغيير مجموعات يسمح لك(volume group) إتالف البيانات محركات دون إضافة وإزالة عن طريق.

لذلك .حياتها وصلت إلى نهاية، والتي / dev/sdb1يسمى SCSI محرك أقراص على التي تحتوي وحدة تخزين منطقية افترض أن لديك وتتم كاالتي: / 1edev/sdيسمى وأحدث أكبر وأسرع SCSI محرك أقراصب مبادلتهاتقوم ب قد قررت أن

Page 124: Linux Admin I II

RHCSA/RHCE Egypt ®

LVMمدير االقراص ال منطقية 123

صبحي طيبه دد. محم

:االتيكثم اضافته pvوتتم عن طريق تحويله أوال الى قرص فيزيائي vgنقوم اوال بإضافة القرص الصلب الجديد الى مجموع الوسائط -1

حتى االن ألنه مازال لديه بيانات dev/sdb1/ولكن مع ذلك ال نستطيع إزالة القرص القديم vg0الى مجموع الوسائط هاالن قمنا بإضافت-2الى وحده أخرى موجودة في نفس مجموع dev/sdb1/لذلك يجيب علينا الحصول على البيانات الموجودة على وحدة التخزين المراد نقلها

كاالتي pvmoveوتعتبر هذه العملية عمليه معقده ولكنها تتم عن طريق االمر vgالوسائط

pvmove يستخدم في نقل الphysical extent من قرص صلب الى قرص صلب اخر #pvmove/dev/sdb1/dev/sde1

vgreduce/dev/vg0/dev/sdb1#عن طريق االتي VG من ال dev/sdb1/ثم نقوم بإزالة القرص -3 pvremove/dev/sdb1#عن طريق االتي الى قرص عادى pvثم بعد ذلك نحوله من -4

) 20G )resizeالى 12Gكيفية زيادة المساحة من

نضيف القرص الصلب الجديد المراد دمجه لزيادة المساحة-1 كما ذكرنا من قبل (physical volume)تحويله الى وسيط فيزيائي -2 كما ذكرنا من قبل vgextendباستخدام االمر old volume groupاضافته الى مجموعة الوسائط السابقة -3

نقوم بإضافة المساحة الجديدة-4#lvextend--size+8G/dev/vg0/lv5 or #lvresize-L20G/dev/vg0/lv5

ليتقبل المساحة الجديدة باستخدام االمر التالي (logical volume) القرص المنطقي تحديث-5 #resize2fs/dev/vg0/jana

8G (resize)الى 20Gنعمل االن على تقليل المساحة من unmountلكن عند تغير المساحة فمن الشروط عمل

umountنعمل الغاء للنقطة الضم -1 #umount/backup

اذا كان كل شيء سليم ال يعمل شيء اما اذا كان e2fsckΔ-fعن طريق االمر F.Sالملفنتأكد من عدم وجود مشاكل في نظام -2 (force check)يوجد أي خطا سوف يعمل فحص

#e2fsck-f/dev/vg0/jana عن طريق االتي 8Gالى 20Gتصغير الحجم من -3

#resize2fs/dev/vg0/jana8G ليتقبل المساحة الجديدة باستخدام االمر التالي (logical volume) تحديث القرص المنطقي-4

#lvreduce--size-12G/dev/vg0/jana or #lvresize-L8G/dev/vg0/jana #mount/dev/vg0/jana/backup

كاالتي لهما بخطوه واحده وهييمكن استبدا 4و 3الخطوتين

#lvreduce-r--size-3G/dev/vg0/jana

resize to volumeو resize to Inode tableهذه الخطوتين من اجل عمل Resizing the root partition

قد يكون هذا بسيط لبعض وحدات أي ال يكون قيد االستخدام. umountالبد من عمل partition/LVM لقبل تغير الحجم الذي يحتوي على نظام التشغيل الذي يتم تشغيله، وهو بشكل عام ال يمكن إلغاء ،(root partition) يالجذر للقسمالتخزين، ولكن بالنسبة

التمهيد "االنقاذ" استخدام قرص نظام التشغيل قيد التشغيل. الطريقة المعتادة لاللتفاف على هذا هو عندما يكون (unmount)استخدامه "rescue" disk/CD/DVD، مقيم في نظام الذاكرة، وليس في حاجة أو تحميل وحدة التخزينتشغيل صغير عمله كأنه نظام يبداالذي.

. وقبل التقليص يجب تقليص إضافية LVMالجذر لتحرير بعض المساحة إلنشاء وحدة تخزين القسم أريد أن يتقلص حجم في المثال التالي .mountبحيث يكون غير معمول له rescue modeولعمل ذلك يجب ان ندخل في وضع نظام الملفات أوال حتى ال يحدث فقد للبيانات

rescue-modeنبدا االن يوضع أسطوانة لينكس ونختار -1 shell start shellلكل شيء حتى نصل الى الشاشة التالية نختار skipبعض تحديد اللغة وعمل -2

Page 125: Linux Admin I II

RHCSA/RHCE Egypt ®

LVMمدير االقراص ال منطقية 124

صبحي طيبه دد. محم

الذاكرة ال تقوم بتحميله على الهارد ديسكملحوظه ال تقوم بتفعيل أي شيء عند الدخول الى شل حتى يعمل على تحميله على عن طريق vgويستخدم هذا االمر لتفعيل vgchange –a yويتم ذلك عن طريق كتابة االمر التالي LVM نبدا االن بتفعيل أدوات ال-3

كاالتي: yesوتعنى y ثم يتبعه ب a–الخيار

المتوفرة لديه. VG للكل ا mappingسوف يقوم الكير نل بعمل VG بمجرد تفعيل ال-4 lv_swapو lv_rootفنجد انه يحتوي على root partitionالذي يحتوي على VGبعد ذلك نقوم بعرض محتويات

حتى تظهر هذه الرسالة ويصبح كل شيء سليم انتقل الى الخطوة التالية e2fsck –fنقوم بفحصه عن طريق -5

أوال وانتظر حتى تتم العملية resize2fsالى الحجم الجديد عن طريق lv-root نقوم بتغير حجم ال-6

lvreduceنقوم االن بتقليص الحجم بعد تقليص حجم نظام الملفات عن طريف -7

وعند بدء التشغيل نجد ان النظام سليم 15Gنالحظ االن ان العملية تمت بنجاح وتم تقليص الحجم الى -: logical volumeأنواع األقراص المنطقية

1-LVM1 :- وتتيح فقط مدير األقراص المنطقية األساسية فقط 2.4متاحه مع لينكس كيرنل النسخةbasic LVM

2-LVM2 :- وتدعم مدير األقراص المنطقية األساسية 2.6متاحه مع لينكس كيرنل النسخةLVM1 مع بعض اإلمكانيات األخرى ومن هذه اإلمكانيات ما يلى:

1-snapshots بما يحتويه من بيانات الى وسيط تخزيني اخر ويفضل ان تكون مساحته أكبر logical volumeخاصيه تتيح لك عمل نسخ لقرص منطقي

(active)في حالة العمل ومستخدم االن LVويكون القرص المنطقي backupمن حجم البيانات ويستخدم في عمليات النسخ االحتياطية

Page 126: Linux Admin I II

RHCSA/RHCE Egypt ®

LVMمدير االقراص ال منطقية 125

صبحي طيبه دد. محم

LVM1 تتيح لك عملsnapshot ولكنه قابل للقراءة فقط(read only) .أي ال يمكن التعديل فيه LVM2 تتيح لك عملsnapshot ولكنه قابل للقراءة والكتابة(read/write) .أي يمكن التعديل فيه

#lvcreate--snapshot or #lvcreate-s 2-stripping

تلف عن ريدتخوخاصية كتابة البيانات عن طريق توزيعها على األقراص الصلبة الفيزيائية بطريقه متساوية وتودى الى تحسين األداء وهي 3-Mirroring

األخرى. LVMو األساسية LVMخاصيه تتيح لك بعمل نسخه للبيانات وحمياتها من التلف او الفقدان وتم عن طريق كتابة البيانات في Logical volume Volume group Physical volume

lvcreate vgcreate pvcreate Create

lvdisplay - lvs vgdisplay - vgs pvdisplay - pvs Inspect - Display

lvchange vgchange pvchange Modify

lvck vgck pvck check

lvextend vgextend - extended

lvreduce vgreduce - reduce

lvremove vgremove pvremove remove

lvrename vgrename - rename

lvscan vgscan pvscan scan

lvresize = lvextended & lvreduce ويوجد أيضا اداه في البيئة الرسومية إلنشاء األقراص المنطقية عن طريق

system Administration Logical Volume Management yum install system-config-lvmهذه األداة غير متوفرة ويتم توفيها عن طريق االتي

طريقه انشاء قرص منطقي عند تثبيت نسخة اللينكس باستخدام .نظامال عند تثبيت وحدات التخزين المنطقية لالستفادة من يسمح للمستخدمين إنتربرايز لينوكسريد هات لالمثبت الخاص

باستخدام الخطوات التالية: logical volume وحدات التخزين المنطقية، يتم إنشاء اناكوندا المثبتفي القرص

LVM physical volumeواختيار الحوار باستخدام معيار الفيزيائية أكثر من وحدات التخزين أو واحد، يتم إنشاء أوال

Page 127: Linux Admin I II

RHCSA/RHCE Egypt ®

RAID برمجيات 126

صبحي طيبه دد. محم

واختيار باستخدام مربع الحوار VGيتم اضافتها الى مجموع الوسائط PVالفيزيائية وحدات التخزينمن أو أكثر واحد، ثانياLVM Volume Group ووضع اسم مجموع الوسائط وتحديد مساحة الPEs (physical extend size)

الخاص الحوار في إطار "add" اختيار عن طريق VGوسائط ال داخل مجموعة وحدات التخزين المنطقية أو أكثر من واحد، يمكن إنشاء ثالثا .F.S نظام الملفات نوع (mount)الضم نقطة وحجم، ل، اوحدة تخزين منطقية عند إنشاء أيضا يتم تحديد volume groupب

RAID برمجيات

Disk expensiveRedundant Array of Inهو اختصار الى من العديد لدينا عندما يكون وانتشارا استخداما الدائم التواجد ذات التخزين أنظمة أكثر أحد RAIDمستويات باستخدام األقراص ضبط

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

.والتطبيقات للنظام المتاحة األقراص لهذه النطاق عرض بزيادة األقراص، نظام أداء لزيادة المصممة األنماط حلول هناك حيث ،)المكتبيةاألجهزة في بالظهور بدأت فقد هذا رغم( الشركات خوادم في رئيسي وبشكل العتاد، في RAIDإيجاد اليوم يمكننا أو والمرئيات، الصوتيات كتشغيل بكثرة، تستخدم األقراص التي للتطبيقات الخصوص، وجه على .المتطلبات هذه لتلبية متاحة مختلفة عتاديه .الضخمة البيانات قواعد في يطلق األقراص من مجموعة على ريد مستوى كل يطبق تقديمها يمكن التي الممكنة)، اإلعدادات (أو المستويات من بمجموعة ريد يأتي متساوية. بسعات أقراصا تكون ما عادة والتي) RAID arrayاو RAID disk matrix(ريد مصفوفة أحيانا عليها

بسعة مجموعتين استخدام يمكن أو للقرص، جيجا 100بسعة أقراص أربعة استخدام يمكن مصفوفة، حالة في المثال، على سبيل تكون أن المجموعات أو لألقراص يمكن ال العتاد، مشغالت حاالت بعض في 70)واآلخر جيجا 30بسعة أحدهما لقرصين (جيجا 100 .مجموعة أو قرص أصغر بحجم المصفوفة حجم تحديد يتم لكنو ذلك، يمكن أخرى حاالت في مختلفة؛ بأحجام لينكس زفي ريد هات انتر بري RAIDيستخدم لتعريف مصفوفة etc/raidtab/الملف

.hardware RAID الويفضل hardware RAIDو software RAID الهما RAIDويوجد نوعين من الريدويتميز بالسرعة (H.D)مسئول عن توزيعة القرص الصلب (RAID controller) عباره عن كارت اسمه hardware RAID ال

العالية وذلك بسب تقليله الضغط على البروسيسور ولكن من عيوبه غالى الثمن.

Page 128: Linux Admin I II

RHCSA/RHCE Egypt ®

RAID برمجيات 127

صبحي طيبه دد. محم

(streaming – duplication – mirror)يوحد منه أنواع مختلفة على حسب وظيفته RAID controller ال

المفاهيم بعض كل تكون قد ال – الحاالت بعض في – أنه نتذكر أن علينا( RAID في المستويات بعض عن األساسيةة على تعتمد وقد المستخدمة، نفسها هي المصطلحات :) حدة على مصنع كل

1-(RAID0) (stripping) :-

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

بين ستقسم والكتابة القراءة خيارات وأن يعنى زيادة في سرعة الكتابة عليه األداء هو الحالة هذه في يزداد ما .من عيوبه عند تلف قرص واحد سيؤدى الى تلف البيانات كلهاو المختلفة األقراص

2-(RAID1) (mirror) :-

مصفوفة باسم (تعرف أكثر أو قرصين من مجموعة في تماما مطابقة (مرآة) نسخة تنشأ على الحصول في فائدته القراءة ولكن يقل في أداء الكتابة واألهم أداء يزداد في الحالة في هذه مفيد ريد .ريد) المعلومات المثال) سبيل على قرصين حال (في أنه باالعتبار آخذين األقراص، أحد في األخطاء مع تسامح

وكل أيام الساعة مدار على المتاحة كالبيئات الدائم، التواجد ذات لألنظمة يكون مالئما ما عادة .نفسها موجودة يدعم كان العتاد أيضا (إذا الممكن من اإلعداد هذا يجعل .الموارد إلى ماسة بحاجة فيها نكون األسبوع والتي

القرص إزالة ذلك فيمكننا األقراص، أحد في خطأ اكتشفنا فإذا .النظام عمل أثناء األقراص باستبدال )ذلك .النظام إيقاف دون مكانه آخر ووضع

3-(RAID2) :-غير مستخدم وغير مهم للمعرفة فقط

bitبت ثنائية أجزاء إلى مقسمة فالبيانات هنا، أما المتتالي؛ للتوزيع كتل إلى البيانات تقسم الذكر، سابقة األنظمة في حيث يوفره، أن يمكن الذي األداء من العالي المستوى رغم بكثرة، مستخدم غير النوع هذا (parity)البيانات لتصحيح مكررة اكواد وتستخدم سيكون بت، 32 أنظمة في فمثال التكرار لحساب منها والعديد البيانات، بت لكل واحد ليعمل، األقراص من كبير عدد إلى افتراضيا يحتاج .قرص 39 استخدام علينا

4-(RAID3) :-مستخدم وغير مهم للعلم فقط غير بكثرة مستخدم غير النوع وهذا (parity blocks) التصحيح لكتل وقرص (bytes)الثمانيات على تعتمد تقسيمة يستخدم

مشابه له أيضا لكنه يقسم لبيانات على RAID 4 .متزامنا وصوال توفر ال فهي وتوزيعها البيانات حجم على اعتمادا أنها حيث ◌ .أيضا .)بايت( الثمانية الوحدة مستوى على التقسيم من بدال ،مستوى الكتل

5-(RAID levels 1+0 & 0+1) :-عن هعبارRAID0 وRAID1.

RAID1+0=RAID10 RAID0+1=RAID01

Page 129: Linux Admin I II

RHCSA/RHCE Egypt ®

RAID برمجيات 128

صبحي طيبه دد. محم

6-(RAID5) (stripping with distributed value) :- بيانات وتوزع الكتل، مستوى على التقسيم يستخدم لبساطة نظرا بكثرة يستخدم .األقراص على (for recovery) التصحيح

مع العتاد، في بسهولة الحسابات هذه عمل وإلمكانية نظام التصحيحويسمح بفقدان واحد 3اقل عدد من األقراص الصلبة هو جيدة أداء مستويات

raid6و وذلك للحفاظ على امن المعلومات من التلف(السماح للخطأ) فقط .السماح للخطأ)(قرص صلب 2 نيشبه تمما ولكن يسمح بفقدا

-عام: بشكل RAIDيخص فيما االعتبار بعين اخذها علينا التي النقاط بعض هنا .أقراص فشل عند سليم بشكل النظام بالعمل يستمر أن الممكن من المستويات بعض تجعل حيث أطول، لمدة يعمل النظام إبقاء علىيساعد -1 .تتحسن بأن المتتالية لعمليات القراءة البيانات تقسيم يسمح حيث مرآة، فيها التي األنظمة في خاصة التطبيقات، أداء يحسن أن يمكن-2 البيانات من المشاكل األخرى كالفيروسات او األخطاء العامة او الكوارث. RAIDال يمحى -3 استعادة البيانات ليست سهله.-4 لها التطبيقات هذه مكتب، ألن سطح تطبيقات كانت وإن حتى العادية، المستخدم تطبيقات أداء يزيد ال العادة في فهو أخرى، ناحية ومن-5

من البيانات. وقليل RAMبالذاكرة تتصل مكوناتحالة في .آخر إلى من نظام القرص بنقل ببساطة وذلك البيانات، نقل السهل من ريد، دون طريقة؛ بأي يسهل أو يتحسن ال المعلومات نقل-6

RAID .من المستحيل تقريبا اجعل كل مساحات األقراص الصلبة واحده. RAIDعند تطبيق تقنيه -ملحوظه: إلى إضافة مفعلة md (multiple disk)وحدة تكون وأن النواة، في لدينا متوفرا ريددعم يكون أن يجب لينكس، في ريدبرمجيات الستخدام مصفوفات لتنفيذ المفضلة الطريقة في دبيان. modconfمثل بريد المرتبطة المتاحة المشغالت الى انظر الحالة على اعتمادا المشغالت بعض .المصفوفات هذه وإدارة بإنشاء األداة هذه لنا تسمح mdadm أداة عبر أو أثناء التثبيت، إما يتم لينكس، يوفرها ريد عبر برمجية ريد

-:(RAID)خطية مصفوفة إنشاءطريقة .partedاو fdiskعن طريق االمر Linux raid autoقرص ونجعل نظام الملف الى النوع ننشأ-1 . RAIDخطيهنستخدم االمر التالي إلنشاء مصفوفه -2

#mdadm[mode]<raiddevice>[options]<component-devices>

Basic create mode option -l<number> or --level=<number> ) 01, 5, 1, 0مستوى الريد ( -n<number> or --raid-devices=<number> عدد الهارد ديسك المشترك في عملية ريد -x<number> or --spare-devices=<number> spare عدد الهارد ديسك المشترك في عملية

RAIDامثله لطريقة استخدام على اثنين من الهارد ديسك RAID1في المثال التالي تم انشاء نظام ريد من النوع

على ثالث من الهارد ديسك ولكن بصيغه أخرى RAID5في المثال التالي تم انشاء ريد من النوع

RAIDتمثل اسم القرص الصلب الجديد نوع dev/md0/حيث level=5 نوع ال RAID المستخدم خمسه(RAID5)

raid-devices=3 تعنى عدد األقراص الصلبة لعمل منظومةRAID لقد تم االن انشاء المصفوفة وتعامل االن كوحده واحده بمعنى كأنها قرص صلب جديد (نحدد له نظام الملف ونعمل له نقطة ضم)

D–or mdadm detail--mdadmاالمر proc/mdstat/ويمكن أيضا استخدام ملفات البروك RAID الطريقة السهلة للحصول على معلومات عن مصفوفة ال

Page 130: Linux Admin I II

RHCSA/RHCE Egypt ®

RAID برمجيات 129

صبحي طيبه دد. محم

تحديد نظام الملف له-3

mount/dev/md0/backup#-كاالتي: (mount point)نعمل له نقطه ضم -4 من اجل انشاء نقطة الضم اليا fstabاو اضافته الى ملف

نظام التشغيل عن طريق االنكونداويمكن أيضا انشاء المصفوفة ريد عند تثبيت

ماذا تفعل إذا حدث تلف الحد األقراص الصلبة؟ -مثال نفعل االتي: sda3وليكن القرص عن العمل: sda3للقرص الصلب RAID نستخدم االمر االتي لإليقاف ال-1

Page 131: Linux Admin I II

RHCSA/RHCE Egypt ®

130 quota الحصص

صبحي طيبه دد. محم

#mdadm/dev/md0-f/dev/sda3 #cat /proc/mdstat لمعرفة حال المصفوفة ريد

RAIDنستخدم االمر التالي إلزالته من نظام التشغيل ومن المنظومة -2 #/mdadm/dev/md0-r/dev/sda3

بدل القرص التالف عن طريق االمر االتي sde1نعمل اضافه للقرص الصلب الجديد وليكن مثال-3 #mdadm/dev/md0-a/dev/sde1

من جديد.RAIDيعنى يبدا بناء ال RAID recoveryويعمل synchronizationيبدا نظام التشغيل بعمل -4 RAIDبعض اإلمكانيات التي تتيح لنا من خالل التطبيق

#mdadm--scan لفحص المصفوفة ريد #mdadm--stop(-S) إليقاف المصفوفة ريد عن العمل #mdadm-A--scan اعادة تشغيل الريد من جديد #mdadm--removeraid_name إلزاله نظام الريد بالكامل ولكن يجب إيقافه أوال كما ذكر من قبل

ملحوظه boot partition الفقط دميستخ basic partition وRAID1 partition(software RAID) فقط وذلك الن الgrub ال يفهم يفهم جميع انواعه. GRUBفال hardware RAIDغير هذين االثنين اما ال

QUOTA الحصص

أوال الحصة أستخدمها؟أن يمكننيمدير نظام، فماذا تعنى وكيف ألي، أعتقد أنه ال غنى عنها quotaالـ باسمأو ما يعرف الـحصة-تعريف: يمكن تطبيقها على كال من quotaعبارة عن قيود أقوم بوضعها على مستخدم معين أو حتى مجموعة كاملة، لذلك الـ هي quotaأو الـ

على نهائيا، أو فرض قيد معين تجاوزهاتخدم معين ال يمكنه الـمستخدمين الفرديين، أو المجموعات أيضا، فأحيانا نود تحديد مساحة معينه لمس المجلدات.فقط وال تطبق على F.Sالملفات ةمأنظوتطبق على .quotaالـ باسمما يعرف استخداممجموعه معينه، لذلك نلجأ إلى

. نهائيا تجاوزهاتحديد مساحة معينه لمستخدم معين ال يمكنه هو : limitation storageالكيفية عمل او عن طريق تحديد المساحة التخزينية لكل (Inode)يتم ذلك بطريقتين اما عن طريق تحديد عدد الملفات المتاحة لكل مستخدم او مجموعه

.(disk block) مجموعهمستخدم او .(Inode)وعدد محدد من الملفات (disk block) التخزينيةملحوظه أي وسيط تخزينه له عدد محدد من المساحة

hard limit الثانية وتسمى ال والمرحلة soft limit تتم في مرحلتين المرحلة األولى تسمى ال quota وال ؟ soft limitوالـ hard limitما هو الـ

hard block limitالبعض يسميهأو كما hard limitالـ .افية لهاإض مساحة أيا، لن يستطيع إضافة نهائيتهيمكن أن يستغلها المستخدم وال يمكن تخطيها، فإذا وصل المستخدم إلى مساحةأقصى وهي

soft block limitالبعض يسميهأو كما soft limitالـ حة المسموح بها، وبخصوص فترة حالة تجاوز المستخدم المسا فيبالضبط ولكن مع إمكانية اضافة فترة سماح hard limitتعتبر مثل الـ

soft limitحددتها له التي المساحةالسماح يجب على المستخدم خالل فترة السماح مسح الملفات الزائدة والرجوع إلى ا كن يومان فإذ، الدقائق، اليوم، الشهر) ولتبالثوانيوتحديد فترة السماح له (يمكن تحديدها soft limitيحدث دائما، أقوم بتحديد الذيوبالطبع

، لذلك عند تحديد فترة السماح hard limitفترة السماح ال يمكنه مهما حدث أن يتخطى الـ فيوهو مازال soft limitتخطى المستخدم الـ ال يمكن أن يتجاوزها المستخدم. مساحةأقصى هي، soft limit، وإن لم يتم تحديد فترة السماح، أصبحت الـ hard limitيجب تحديد الـ وإذا .الكيرنل داخل يجب أن تكون موجودة، لذلك فنظام الملفات المستخدم إلىفيها يكتب في كل مرة أن تفحص يجب quota ونظرا الن ال أكثر من ذلك فقط. من إنشاء يمنع المستخدم، بل إزالة البياناتيقوم ب لن فإنه ،(hard limit) الحصة تم تجاوز قد ان المستخدم وجد الكيرنل

-الى مرحلتين: QUOTA وتقسم ال (implement in kernel) في الكيرنل مختزنه ألنها تكون F.Sعلى نظام الملفات QUOTAاالعداد وهيا اعداد ال - (data base for quota)تطبق على المستخدمين والمجموعات وفى هذه الحالة تخزن في قاعدة بيانات - -تتم في الخطوات األتية: quota ولعمل ال quota (mount with quota support) انشاء نقط ضم تدعم ال-1 quota (create dB for quota) انشاء قاعدة البيانات لل-2 (switch on quota (kernel)) في الكيرنل quota تفعيل ال-3 quota (change/set quota) التعديل في ال-4

yum install quota# موجودةلم تكن إذا على النظام RPM quotaتثبيت حزمة الـ أوال: fstabوالتعديل في ملف mountعن طريق االمر quotaانشاء نقطة ضم تدعم ال-1

fstabالتعديل على ملف على ملف نظام معين، والتعديل يكون بأحد الطريقتين، إما اضافة quotaيجب التعديل على ذلك الملف حتى يمكننا استخدام الـ

usrquota: قد أخبرنا النظام بذلك الخيار أننا سوف نقوم بتطبيق الحصص على المستخدمين فقط وبالتالي grpquota: أننا سوف نقوم بتطبيق الحصص على المجموعات فقط على ملف النظام ذلك. النظامهنا أخبرنا

Page 132: Linux Admin I II

RHCSA/RHCE Egypt ®

131 quota الحصص

صبحي طيبه دد. محم

على كال من المستخدمين والمجموعات، وتتم إضافة تلك quotasوبالطبع يمكن اختيار الخيارين معا، لنعبر بذلك على استخدام الـ هكذا ، ويكون شكل السطر بعد التعديدmountالعمود الخاص بخيارات الـ فيالخيارات

/dev/sdc1 /opt/company_data ext4 defaults,usrquota,grpquota 1 2 لذلك الملف هكذا mountإعادة عمل ثم

#mount-oremount/mnt/exmple Mountاستخدام االمر

#mount-ousrquota,grpquotadevice_namemount_point

ينوهما ملف quota ata base)(create quota dالبيانات الخاص بالانشاء قاعدة -2aquota.user الحصص الخاصة بالمستخدمين الفرديين في: والذى يمكننا من التحكم

aquota.group الحصص الخاصة بالمجموعات في: والذى يمكننا من التحكم اآلتي) نقوم بكتابة grpquotaو usrquotaالخيارين etc/fstabملف / فيولعمل ذلك وإنشاء ذلك الملفين (وبالطبع هذا لو كنا قد حددنا

#quotacheck-cvug/mnt/example تعنى مجموعه. gستخدم وتعنى م uتعنى اظهار ما يحدث من عمليات اثناء االنشاء و vكان غير موجود و إذاترمز الى انشاء الملف cحيث

overwriteللكاتبة على الكتابة القديمة m–ويمكن استخدام

setenforce0# غير متاح وذلك عن طريق االتي: selinuxتأكد من جعل quotaعمل ال قبل-ملحوظه: بمعنى انه سوف ينبهك فقط ويعطيك رساله تحذيريه ولكنه لن يمنعك permissive الى enforceمن حالة ال selinuxوهذا يعنى تحويل ال

#chcon--reference/home//data/ journal quotaاو استخدام ال /data/وجعلها لل home بالالخاصة security policy التعنى عمل نسخه من

quotaلتفعيل جميع األقسام التي تندرج تحت ال a–ويمكن استخدام الخيار سوف نعمل عليه الذيعلى ملف النظام quotaتفعيل الـ -3#quotaon/mnt/example

اآلتي:نقوم بتنفيذ g-وللمجموعة بالخيار u–بالخيار للمستخدمين quotasالـ للمستخدمين، لتحديد quotaالـ تحديد-4#edquota-uuser-name سوف تقوم بنقلك الى صفحه أخرى والتي يتم فيها كتابة المعطيات كاالتي

يمكن تحديد جميع القيود من خالله، هكذا الذي aquota.user وهنا يظهر لنا الملف :اآلتيأنى أريد تحديد أفرضوهنا فيكون الملف بعد التعديل هكذا ميجا 50 حوالي soft limit الـ ميجا 100 حوالي hard limit الـ

اآلتيلتحديد فترة السماح نقوم بكتابة #edquota-t

اآلتيفيظهر لنا

ف ونقوم بالخروج.لمونحفظ ال .minutes، hours، daysكما نريد، سواء block grace periodنقوم بتحديد setquotaاو يوجد طريقه أخرى وذلك كتابة المطلوب كله في سطر األوامر مع االمر

#setquota-u<username><soft-blocks><hard-blocks><soft-inodes><hard-inodes>quota_partition #setquota-uneo300007000000/home

Page 133: Linux Admin I II

RHCSA/RHCE Egypt ®

132 ACL (access control list)

صبحي طيبه دد. محم

quotacheck-amvug#: وتحديث مدخالتها نستخدم االتي quotaلفحص ال /repquotaΔ/data#نستخدم االمر التالي quota اليندرجوا تحت الذيتعرف معلومات عن المستخدمين تريد انلو

quota ahmed#المخصصة له باستخدام االمر QUOTA اليمكن للمستخدم معرفة edquota-upuser1user2user3#لمستخدم الى مستخدم اخر : quotaاالمر التالى يعمل على اخذ اعدادات لل

ACL (ACCESS CONTROL LIST)

) حيث تصريحات الملفات SELinuxو( (ACL)) و file permissionس يوجد ثالث طرق لحميات الملفات (التصريحات في لينكfile_premession تعتبر الطريقة االفتراضية لحماية الملفات وACL حيث يمكن صاحب الملف من إعطاء تصاريح خاصه الى خاصه من

يتم التحكم فيه عن طريق سطر األوامر ويعتبر األفضل واالسهل في حماية الملفات. SELinuxالمستخدمين ولكن

؟ACL (Access Control List)لماذا

ال تزالو التعامل معه، ليسهل بسيطا بما فيه الكفاية يميل إلى أن يكون القياسية يونكس (permission)تصريحات او اذونات نموذج .هذه الحاالت للتعامل مع ACL قوائم تم إنشاؤها؛ لذلك ال يمكن التعامل معها أنه هناك حاالت .الحاالت لتلبية معظم مرنة بما فيه الكفاية

كون لكن افتراضيا، يوجميع المستخدمين اآلخرين. ب الخاصةكان هناك وقت حيث يمكن للمستخدمين الوصول إلى الملفات :ACL توضيح للعلى ولكن ،ACLقبل أن تتمكن من تكوين قوائم وذلك . أي التي يملكونها الخاصة بهم المجلداتفي او اذونات تصالحيالدى المستخدمين

تحتاج إلى تعيين شيء أنا أول ف، اعطى اذونات لمستخدمين اخرين او مجموعات اخرى على المجلد الخاص بيسبيل المثال، عندما أريد أن إعطاء عولكن نجد ان محدود اإلمكانيات فانه ال يستطيع فانه ال يستطي (chmod 701 /home/jana#)األذونات المناسبة مع األمر التالي:

.ACLأخرى وهكذا فهو محدود اإلمكانيات لذلك نستخدم مستخدمين صالحيات معين ومستخدمين صالحيات .الخاصة بهذا الملف يستخدم لعرض صالحيات يونكس القياسية getfaclفان االمر ACLوعند تنفيذها على ملف ال يملك

للملف. aclلكي يضيف setfaclويمكن أيضا استخدام االمر على الجانب االخر تسمح للمستخدم ، physics_themeالملفعلى كتابة الو لقراءةا physicالجروب عضاءأل تسمح الثالثة التالية األوامر

bob المستخدم و، على نفس الملفكتابة و ال عالقة له بالملف بالقراءةالذيventura بالقراءة فقط بالملفذات صلة أيضا الذي ليس له.

أنواع من الصالحيات 3على هذا الملف نجد انه يقوم بعرض الصالحيات التي تطبق على هذا الملف ونجد هنا getfaclنكتب االمر وعندما

Page 134: Linux Admin I II

RHCSA/RHCE Egypt ®

133 ACL (access control list)

صبحي طيبه دد. محم

getfaclالجدول التالي لفهم ناتج االمر

والتي يستخدم في تعديلها m–مع الخيار setfaclوالتي يتم انشائها باستخدام االمر acl (file system acl)نظام الملفات من النوع والتي التأليه للصيغة وتكون هذه المدخالت مطابقة، مفصولة بفواصلمن المدخالت قائمة يمكن تحديدإلزالته و x–أيضا ويستخدم الخيار

تتمثل في الثالث الحقول: (u|g|o|m)الحروف االولى ويمكن ان تكون مختصره باستخدامثل نوعية االدخال ماالول ي الحقل-1 المستخدمين والمجموعات وإذا حدد يحدد لمجموعه او مستخدم معين وإذا لم يحدد وترك مع فقط ذات الصلة هوالحقل الثاني -2

فارغا يرجع الى المستخدم او المجموعة المالكة للملف. حيات التي تريد تطبيقها.لالحقل الثالث والذي يضم الص-3

ACLالمجلدات و

(default acl) االفتراضية ACL قوائمو ،(standard ACL) القياسية ACL قوائم: ACL قوائم مجموعتين من ديهال المجلدات .أعاله كما هو محدد بالضبط، نفسه المجلدلوصول إلى ل التأهل معيار (standard ACL)القياسية ACL قوائم

تكون موروثة والتي سوف ACL قوائم إنشاءيتم بدال من ذلك، ولكن على المجلدات ال تنطبق (default ACL)االفتراضية ACLقوائم

Page 135: Linux Admin I II

RHCSA/RHCE Egypt ®

(miscellaneous filesystem management commands) التطبيقات األخرى لتحسين ومتابعة أداء األقراص 134

صبحي طيبه دد. محم

ويكتب ، رابع حقل مع إضافة القياسية، ACL قوائم تماما مثل االفتراضية ACL قوائم يتم تحديدو .المجلدضمن ملف تم إنشاؤه من قبل كلdefault اوd مثال توضيحي على ذلك

ls -ldولكي تراه تستخدم sgidلن يريك getfaclملحوظه االمر

.معقولة بطرق، الملفات ACL قوائم الستيعاب األوامر التالية .القياسية بعد الصالحيات "+" عالمة بإلحاقيقوم ACL قوائمصالحيات الملفات وإذا كانت تحتوي على ls-l األمر

وإذا لم يمكن يعطيك رسالة تحذيريه.الخاص به ACL يعمل على نقل الملفات مع المحافظة على قوائم ال mvاالمر ACL قوائمللمحافظة على Pعلى نقل الملفات ويستخدم الخيار يعمل cp األمر

غالبا غير مهم، ألنه . وهذاacl (acl mount)مع خيار EXT3الملفات معتمدة فقط إذا تم تركيب نظام الملفات ACLكن على علم بأن قوائم ويمكن عمليه محدد كخيار افتراضي. ACLنظام الملفات مع خيار EXT3، المثبت تلقائيا يقوم بإنشاء 5في ريد هات إنتربرايز لينوكس

fstabمثل المثال التالي او التعديل في ملف mountيدويا باألمر

fstabفي ملف aclشكل السطر الذي يدل على ان نظام الملفات يحتوي على قوائم /dev/sdc1 /opt/company_data ext4 defaults,acl 1 2

- :ويوجد منها نوعينFile based ACL وتكون قائم على الملفات مثل الصالحيات التي ذكر شرحها من قبل التي يمكن تغيرها عن طريقchmod

Network based ACL .وقائم على صالحيات المستخدمين على الملفات عن طريق الشبكة االنترنت File based ACL

-تتم في الخطوات األتية: ACL ولعمل ال ACL (mount with ACL support) انشاء نقط ضم تدعم ال-1 (switch on ACL (kernel)) في الكيرنل ACL تفعيل ال-2

yum install acl# موجودةلم تكن إذا على النظام RPM aclتثبيت حزمة الـ أوال: fstabوالتعديل في ملف mountعن طريق االمر ACL انشاء نقطة ضم تدعم ال-1 سوف نعمل عليه الذيعلى ملف النظام ACLتفعيل الـ -2

# setfacl-mu:user01:rwx/opt/backup/file1 setfacl-xu:user1/opt/backup/file1# كاالتى: mبدال من xنستخدم aclمستخدم من قائمة لحذف

setfacl-b/opt/backup/file1# كاالتى: bفيمكن حذفهم جميعا مره واحده باستخدام aclواذا كان لديك اكثر من قوائم

(miscellaneous filesystem management commands)التطبيقات األخرى لتحسين ومتابعة أداء األقراص

fsckاالمر -1الخاصة بنظام الملفات. مع مرور الوقت مع عيوب البنيةعلى عدد كبير من البيانات التي توضح يحتويحيث نجد ان أنظمة الملفات -مقدمه:

القرص او أخطاء الكيرنل قد يؤدى الى تلف في هذه البيانات التي توضح بينية أنظمة الملفات.ويعنى fsckات قد يؤدى هو االخر الى تلف في هذه البيانات، لذلك تم انشاء التطبيق وأيضا عند غلق الجهاز قبل الغاء نقطة الضم للنظام الملف

(File System ChecK) .والذي يستخدم في فحصه أنظمة الملفات واصالحها

Page 136: Linux Admin I II

RHCSA/RHCE Egypt ®

135 Autofs (Automount)

صبحي طيبه دد. محم

mkfs (fsck.<version>)ويستخدم مثل االمر

فانه يحاول تحديده اليا (.)او مع t–ثم نوع نظام الملفات ولكن عند عدم تحديد نظام الملف سواء مع الخيار t–ويمكن أيضا استخدام الخيار ولكن هذا محفوف بالمخاطر لما تعرض له هذا نظام الملفات من الضرر.

#fsck.ext2 = #fsck-text2 = #e2fsck فاذا وجد مشكله التي يمكن إصالحها بدون خطر فقد البيانات فانه يقوم بإصالحاتها اليا. ولكن إذا كان فيه امكانيه فقد fsckوعند تنفيذ االمر

البيانات فانه يتوقف ويصدر الى المستخدم رسائل تخبره عما إذا كان ينبغي تطبيق اإلصالح ام ال. تعنى نعم أي نفذ بدون أي أسئلة. والتي y–مع الخيار fsckفي الواقع غالبا ما يأتي االمر . fsckوالذي يتم تخزين الملفات التالفة الناتج عن معالجة االمر lost+found/فانه يتم انشاء مجلد ext2عند انشاء نظام الملفات مثال

بطريقه اليه عمل فحص ألنظمة التشغيل في مرحلة اقالع نظام التشغيل. fsckيقوم االمر tune2fsاالمر -2

أي ادخال تحديثات على نظام الملفات. ext3او ext2 تم انشائه من قبل كالذي ملفات نظام لت المامع دخالإل tune2fs استخدام األمر يتم .(unmount)الغاء نقطة الضم له ، يجب tune2fsمن قبل االمر ملفات النظام تشغيل قبل

.tune2fsتعديلها بواسطة األمر لنظام الملفات لادراجها التي يمكن امالتيسرد الجدول التالي بعض المع

tune2fsعن طريق االمر ext4الى ext2يمكن تحويل نظام الملفات من AUTOFS (AUTOMOUNT)

تشغيلالإعادة أو التشغيل إيقاف أو umountه عن طريق االمر بإلغائ حتى تقوم مفعل يبقى ،partitionعلى mount تشغيل األمر بمجردوالذي بدوره automountingويوجد طريق أخرى عن طريق االستعانة بال etc/fstab/بالملف اولحل هذه المشكلة فقد استعانالجهاز

وعلى أساس مؤقت. والذي يعمل على انشاء نقاط ضم على حسب الحاجة autofs daemonيستخدم السيرفر يتم انشاء نقاط الضم بداخله. misc/والمجلد

(etc/auto.master, /etc/auto.misc, and /etc/auto.net/)ملفات االعداد الخاص به تكون االتي RHELوفي نظام

/etc/sysconfig/autofs Main config file for the service /etc/auto.master Master map file

االعدادات التاليةويستخدم etc/sysconfig/autofs/هو automounter وملف االعداد الخاص بالDEFAULT_TIMEOUT=300 DEFAULT_BROWSE_MODE="no" واذا فعلت تسمح للمستخدم بالبحث في نقاط الضم المتاحة حاليا

etc/init.d/autofs status/ #نستخدم االتي autofs سللتأكد من عمل السيرفي

Page 137: Linux Admin I II

RHCSA/RHCE Egypt ®

136 Autofs (Automount)

صبحي طيبه دد. محم

(map file)وتسمى automountيوجد أربع أنواع من الملفات التي يستخدمها لعمل 1-Master :ملف ريعتبmap العلى باقي أنواع ملفات يحتوياالفتراضي والذي map 2-special : بعمل األجهزةوالتي نسمح لمجموعه منmount لها بطريقه اليه. 3-direct : والتي تحتاج الى إعادة التشغيل قبل عملMount. 4-indirect : والتي تعملmount .لمجموعه من األجهزة تحت مجلد مشترك لهم

etc/auto.master/الملف -1يعتبر ملف االعداد etc/auto.misc/التصريحات مع ثالث أوامر افتراضيه األول يشير الى ان الملف من سلسلهونجد انه يحتوي على

automount a network directoryالى hosts يسمح لك بتخصيص ال hostsواالمر (indirect map)ويعتبر misc/الخاص بالمجلد (jana /etc/auto.jana/)في هذا الملف مثال mapويمكن إضافة أكثر من net/في المجلد

etc/auto.misc/الملف -2 مع التوضيحات في هذا الملف automount ريد هات يعمل على توضيح األوامر الخاص بالحيث نجد ان

auotmount ل عباره عن االمر األول الخاص بالحيث نجد السطر األوcd -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom

وحيث نجد ان هذا الملف يستخدم الصيغة األتية:[Relative pathname] [Mount options] [Location]

بعبارة وهذا االمر خاص باألقراص الضوئية . autofs السرفيس تفعيلوذلك عند األمر نشط بشكل افتراضي، ان هذا د، نجRHELفي مع األمر automounterمن خالل ملفاتهيمكنك الوصول إلى نجد انه dev/cd/أخرى، إذا كان لديك قرص مضغوط في محرك األقراص

ls /misc/cd وautomounter بالوصول إليه باستخدام نظام الملفات يقومISO9660 . وتكون الخيارات األتية ))RO) ؛(nosuid) ،(nodev((. ثانيه قبل عمل 300ونجد انه ينتظرautomount وذلك كما عرفنا في الملف/etc/sysconfig/autofs

automountوالتي تعطيك إمكانية #ولكي تصبح جاهزة تزيل #ويوجد بعض األوامر األخرى التي تكون غير مفعله ويسبقها

خاص باألقراص الضوئية

NFS directoryخاص bootبالهارد ديسك الذي يحمل ملفات تشغيلخاص

floppy الخاص باألقراص

SCSIمن النوع بالهارد ديسكخاص

او الهارد الذي يمكن ازالته slave الموصلة ك IDEمن النوع خاص باألقراص

Page 138: Linux Admin I II

RHCSA/RHCE Egypt ®

137 Autofs (Automount)

صبحي طيبه دد. محم

company_data -rw,sync rhel01:/opt/company_data NFSنظام ملفات من خالل الشبكة من النوع mountهذه الصيغة تعمل على

* -rw,sync &:/home&/ user home directoryلل mountتعمل على

ملحوظه: الindirect map تسمح بنوعين فقط من الwild cards هما(*,&) :direct mapامثله على

/usr/data -rw,sync rhel01:/opt/company_data تستخدم مجلد واحد يتشارك فيه indirect mapاما absolute pathnameتستخدم direct mapان indirect mapحيث الفرق بينه وبين

الجميع في وضع مساره فيه مثل السابق. etc/auto.net/الملف -3

ال يعمل مع هذا السكريبت لذلك تحتاج IPسيرفر ولكن يجب ان تالحظ ان NFS على مراجعة وقراءة الويعتبر ملف سكريبت الذي يعمل .net/والذي يجعله يتعامل مع المجلد etc/hosts/سيرفر او قواعد بيانات مسجله في الملف DNSالى

معلومات عن وحدات الهارد ديسكبعض الsector بايت 512اصغر وحد تخزين ومساحتها track مع بعض تسمى sector كل مجموعة cylinder الى تحت بعض مباشرة tracks ال

من أسطوانة وكل أسطوانة تملك وجهين أكثرغالبا الهارد ديسك يتكون من head * cylinder * track * sector = مساحة الهارد ديسك

Page 139: Linux Admin I II

RHCSA/RHCE Egypt ®

مقدمه 138

صبحي طيبه دد. محم

مقدمه

:لتركيبه عند تركيب الريد هات او أي نظام تشغيل لينكس او ويندوز فانه يعتمد على عدة طرق (boot.iso)عليه نظام التشغيل او ما يعادله usb او (CD\DVD)عن طريق قرص األسطوانة-1 automatedاو manualوالتي تكون اما يدوي (network)عن طريق الشبكة -2

:CD/DVDالتركيب عن طريق نجد انه عند تركيب ريد هات انتر بريز لينكس فانه يعتمد في األساس على المثبت اناكوندا الذي يعمل على تركيب نظام التشغيل ريد

:هات او ترقيه (تحديث) نظام ريد هات الحالي ونجد ان االنكوندا يتكون من مرحلتين (Anaconda Stage 1)المرحلة األولى من االنكوندا -1

ان المرحلة هو من هذه الغرضو (bootable media) لقابل للتشغيلال مع الوسيط لتتناسب اناكوندا المثبت المرحلة األولى من تم تصميم .التركيبمن الثانية المرحلة وتنفيذ، وتحميل، إليجاد ما يكفي من المعلومات جمعيعمل على المثبت

ويتم بدء عمل هذه المرحلة من واحد من الصيغ األتية:1-installation disk عن طريق األسطوانة التي تحتوي على توزيعة ريد هات 2-boot.iso image ميجا والتي يمكن نسخها الى قرص ضوئي 4وهو عباره عن ملف صغير مساحتهCD ويمكن ان تجد هذا الملف في

ه الريد هاتعمن القرص الضوئي الذي يحتوي على توزي images/المسار 3-diskboot.img والتي توجد أيضا في المسار/images بالولكنها خاصه usb 4-PXE (Pre eXecution Environment) الخاص بتركيب نظام التشغيل عن طريق الشبكة وهذا (Anaconda Stage 2)المرحلة الثانية من االنكوندا -2

(3G-2)التي تكون توزيعة ريد هات ونجد ان حجمه يتراوح بين rpmفي هذا المثبت نجد انه يتكون من مجموعه من التطبيقات من النوع بمجرد االنتهاء من المرحلة األولى يتم بدء المرحلة الثانية عن طريق واحد من األوضاع التأليه:

DVDعن طريق محتوى القرص الضوئي -1 HTTP serverعن طريق -2 FTP serverعن طريق-3 NFS serverعن طريق -4

الذي يحتوي على توزيعة ريد هات نجد االتي: DVD)\(CDعند عرض محتويات القرض الضوئي

1-(images/) حيث يحتوى على ملفات الimage التي تستخدم في انشاء(boot media) .والتي بدورها تستخدم في بدا تثبيت ريدهات 2-(Packages/) جميع ملفات توزيعة ريدهات والتي تتكون من تطبيقات من النوع المجلد االساسى الذى يحتوى علىrpm .والتي تخصها 3-(HighAvailability/ , LoadBalancer/ , ResilientStorage/ ) المستودعات التكمليه لتوزيعة ريد هات.repo 4-(README) ريدهات .ملحظات حول تثبيت توزيعة 5-(RELEASE-NOTES-en) .ملحخص عن التوزيعه والمميزات الجديده والتغيرات التي أحدثت بها 6-(RPM-GPG-KEY-redhat-release) عباره عن نسخه منGnu Privacy public key الىى يكملprivate key التي

تستخدمه ريدهات لتميز تطبيقاتها عن التطبيقات األخرى.7-(EULA) .الرخصه الخاصه التي تمنح للمستخدمين على استخدام ريد هات 8-(GPL) عباره عنGNU Public License .التي تتيح لك استخدام وتعديل ونشر التطبيقات التي تخص ريد هات 9-(repodata/) مجلد يحتوى على الملفات التي تستخدم عن طريقyum .لتثبيت التطبيقات

الفصل تركيب

نظام التشغيلInstallation Of RHEL

Page 140: Linux Admin I II

RHCSA/RHCE Egypt ®

مقدمه 139

صبحي طيبه دد. محم

DVDالخطوات لتركيب نظام التشغيل ريد هات عن طريق األسطوانة الضوئية له القدرة على متصفح ويب حيث نجد ان أي. curlاالمر الحصول على توزيعة ريد هات عن طريق شرائها او تحمليها ولتحميلها نستخدم -1

وقف لسبب ما الذيالتي تتيح لك استكمال التحميل lcur االمر، ولكن استخدام الملفات تحميل

-C - يرمز الى استكمال التحميل التي سبق إيقافه من قبل -O تعنى ان الملف الى حمل البد من ان يحمل نفس اسم الموقع الذى حمل منه `url` دهما داخل عالمة تنصيص واحده العنوان الذى سوف يتم التحميل منه والبد من وجو

.md5sum) باستخدام األمر finger printبصمةال(المعروف باسم MD5عن طريق حساب حملالملف الذى ويمكن التأكد من سالمة .الذى يوجد في الشبكة مع الملف الذى تريد تحميله وسوف يتم شرحه md5الخاص بالملف الذى تم تحميله وال md5وذلك بمقارنة رقم ال

:ليةاالتعلى توزيعة لينكس تظهر الشاشة يحتوي الذيوضع القرص الضوئي عند-2

او ترك الوقت االفتراضي على enter) تعتبر اول فرصه للتعامل مع اناكوندا حيث انه عن الضغط على boot menuنجد ان قائمة اإلقالع ( .اكوندابعض األوضاع األخرى التي تتوفر مع ان يلياالنتهاء فانه يستخدم الوضع االفتراضي الخاص به ولكن يمكن تغير سلوك اناكوندا وفيما

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

Page 141: Linux Admin I II

RHCSA/RHCE Egypt ®

مقدمه 140

صبحي طيبه دد. محم

األوضاع التي يتم فيها تركيب نظام التشغيل لينكس VNC (graphical mode)الوضع الرسومي (text mode)الوضع النصي

ي الوضع األولى يبدا ف المرحلة االنكونداعلى توزيعة اللينكس فان يحتوي الذي الضوئيعند وضع القرص االفتراضيحيث نجد ان الوضع ويبدأ ادخال المعطيات عن طريق الماوس. (X SERVER) الرسومي

فقط فان الوضع االفتراضي الذي يبدا boot.isoولكن عند بدء تشغيل االنكوندا المرحلة األولى من القرص الضوئي الذي يحتوي على الملف (text mode)به هو الوضع النصي

(graphical mode)الوضع الرسومي واستخدام الماوس ثم يبدا التركيب وتظهر الشاشة التأليه (video card)يعتبر الوضع االفتراضي ويدعم كارت الشاشة

Page 142: Linux Admin I II

RHCSA/RHCE Egypt ®

مقدمه 141

صبحي طيبه دد. محم

VNCوالوضع الترحيب التي تساوى الشاشة السابقة ولكن في الوضع النص شاشتا التاليتين هما الشاشتيناما

عن طريق vncviewerمثل ، VNC Client يمكن بدء عملها عن طريق بدء تشغيل اناكوندا، المرحلة الثانية من المثبت خرالجهاز االمن

.باستخدام عنوان محدد rpmمن النوع vncالتطبيق

nextفتظهر شاشة الترحيب األتية فنضغط على نبدأ االن تركيب نظام التشغيل وبدء المرحلة الثانية من االنكوندا

القرص الضوئي الذي يحتوي ويتم ذلك عند وضع على توزيعة ريد هات

ما " التخزين هو بشأنيكون اناكوندا يسأله سؤال أولهذه "؟عليها التثبيتيتم سوفالتي األجهزةهو نوع الصلبة االفتراضية تكون األقراص يمكن أن األجهزة

(Basic storage Devices)المتصلة مباشرة به المتخصصة أجهزة التخزين تكونأنها يمكن أن أو

(Specialized storage devices) ، ويمكن5 إنتربرايز لينوكس ريد هات ابتداء من .المتاحة iSCSI إلى مباشرة تثبيت المثبت

للوصول إلى آالت متعددة يسمح iSCSI بروتوكول تخزين شبكة

Page 143: Linux Admin I II

RHCSA/RHCE Egypt ®

مقدمه 142

صبحي طيبه دد. محم

ريد هات إصدار سابق من نكوندااال اكتشف إذا

القرص الصلب، فإنه على لينوكسإنتربرايز يسألك أي الخيارين تفضل احادث ترقيه لإلصدار س

او اجراء تثبيت (upgrade an existing) السابق .(Fresh installation) جديد لنسخه جديد

ولكننا هنا سوف نركز على اجراء تثبيت جديد fresh installation ثم نضغط[next]

اد كارت الشبكة الخاص سوف نقوم االن بإعد بالجهاز الذي يركب عليه لينكس

فقط ياألول تكوين شبكة االتصال شاشة يتم استخدام .للجهاز (host name) اسم المضيف لتحديد

الزر قمت بالنقر فوق ومع ذلك، إذاconfiguration Network يتم استخدام مربع ،

معلومات الخاص بتكوينال التالي لوضع الحوار الشبكة

له القدرة على اعداد اناكوندا حيث نجد ان المثبتفي (NIC)التي اكتشفها الجهاز بطاقات الشبكة كل

IP عنوان قد يتم تعيين ،NIC ولكل .التثبيتوقت أن يتم تكوينه اليا عن طريق يمكن أو، يدويا

للحصول على (DHCP)بروتوكول استخدام IP عنوان أو(wired) سلكياتصال قد يكون NIC وال

. (wireless)اتصال السلكي يدويا، فانه يمكن ليتم اعداده كارت الشبكة احتاج إذا addمربع الحوار عن طريق الضغط على فتح

إلى باإلضافة netmaskو IP وذلك لوضع عنوان تحديد يمكن DNSو default gateway ذلك، DHCP من قبل ليتم تكوينه تركه أو، يدويا

.الشاشتين التالية يتم فيها تحديد معلومات محددة مثل موقع الجهاز، والمستخدم الذي سيتم استخدام نظام التشغيل تشمل التوقيت المحلي، مثل إذا، ومتى، وكيف يتم تطبيق التوقيت الصيفي. يالمحلية. والتاوال يتم استخدامه لتحديد المعلومات

Page 144: Linux Admin I II

RHCSA/RHCE Egypt ®

مقدمه 143

صبحي طيبه دد. محم

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

PARTITIONING الصلب اعداد القرص

استخدام المساحة كلها في علمية التثبيت

استبدال لينكس قديم بجديد

partitionاعاده لتحجيم ال

يستخدم المساحة الخالية

Page 145: Linux Admin I II

RHCSA/RHCE Egypt ®

مقدمه 144

صبحي طيبه دد. محم

الحجم-3 (File system)نوع نظام التشغيل المستخدم -2 (mount point)نقط الضم -1حيث نجد ان االنكوندا يهتم boot loaderننتقل الى شاشة اعداد nextبعد االنتهاء من اعداد الهارد ديسك والضغط على الزر

.المحددة إلى نظام التشغيل BIOS مننقل السيطرة يستخدم ل.المستوى المنخفضمن النوع قابل للتنفيذ، برنامج صغير هو (boot loader) ال يل)التشغ بدأ فيلكي ي هاختيار يتم الذيفقط على نظامين تشغيل في جهاز واحد (واحد يحتويالتشغيل أي ثنائينظام عند تكوين

والتي ينتقل بنا الى اختيار التطبيقات التي تريدها وتحديدها التي سوف تعمل على نظام التشغيل nextثم بعد ذلك نختار الزر

Page 146: Linux Admin I II

RHCSA/RHCE Egypt ®

مقدمه 145

صبحي طيبه دد. محم

سوف االن وبعد االنتهاء من االعدادات م ث يتم تحميل نظام التشغيل على الجهاز

يعيد تشغيل النظام ثم ننتقل الى المرحلة التأليه والتي تتألف من بعض االعدادات

قبل ان يصبح نظام التشغيل جاهز

Page 147: Linux Admin I II

RHCSA/RHCE Egypt ®

146 Network Installation

صبحي طيبه دد. محم

kdumpالعمل صوره من الذاكرة على القرص الصلب قبل ان يموت. والتي بدورها تستخدم عن للنا في حاله حدوث تلف للكيرناليه توفر

طريق المطورين لحل المشكلة التي حدثت للكيرنل لتفاديها في المستقبل.ت ستخداماغرض اخر غير هذا ولكن بالنسبة لمعظم اال أليميجا بيت من الذاكرة الفعلية التي ال تستخدم 24وهذه االليه تدعم مساحة تخزين

الروتينية للينكس ليست هناك حاجه لتمكينه.NETWORK INSTALLATION

طريق الشبكة ولكن ما زالت المرحلة األولى من اناكوندا يتم تشغيل دا يتيح لنا تركيب نظام التشغيل عنحيث نجد ان المثبت اناكون ولكن المرحلة الثانية من االنكوندا تبدأ عن طريق الشبكة. boot.isoعن طريق سيكون بمثابة الجهاز الذي إلى (boot.iso)القرص المدمج محتويات يجب أن يتم نسخ، عن طريق شبكة االتصال إجراء تثبيت من أجلويتم تسهيل NFS بروتوكول أو HTTP أو FTP موصول باستخدام هذا الجهازيجب أن يكون و ،(installer server) التثبيت سيرفر

ألنه يتطلب متطلبات اقل وأسهل في االعداد. httpوالذي يفضل استخدام برتوكول kickstartالعملية عن طريق استخدام ملف كيفية اعداد السيرفر الذي يتم منه توزيع النسخ على باقي األجهزة بطريقه اليه من خالل الشبكة:

ونثبته فيه كاالتى: httpالذى يحتوى على التوزيعة ونستخدم بروتوكول RHEL01فر وليكن نعمل على تجهيز السير-1#yum install -y httpd

كاالتى: httpdنعمل على تفعيل السيرفس -2

كاالتى: httpوالتي سوف يتعامل معه عن طريق سيرفر redhatننشاء المجلد الذي سوف يحتوي على نسخة -3

ملفاته والتي من خالله يقوم ال apache server (http server)هو المجلد االفتراضي الذي يخزن فيه /var/www/حيث نجد ان المجلد client بالولوج الى هذا المجلد وبداخله انشاءنا المجلدpub .والذي بداخله يوضع ملفات ريد هات

كاالتى: /var/www/pub/ضعها في المجلد نضع أسطوانة ريدهات ونأخذ ملفات األسطوانة ون-4

وسوف kickstart ونضعه فيه ملفات ال kickstartبعد االنتهاء من نسخ الملفات ننشأ مجلد اخر مع محتويات أسطوانة ريد هات اسمه -5 :(/var/www/pub/kickstart/)نتعلم طريقة عمله فيما بعد ويكون المجلد كاالتى

Page 148: Linux Admin I II

RHCSA/RHCE Egypt ®

147 Network Installation

صبحي طيبه دد. محم

كاالتى: var/www/pub/kickstart/ونضعه في المجلد ف نتعلم فيما بعد كيفية صناعته وجاهز وس kickstartناخذ ملف -6

.firewallو selinuxوهو اعداد واالن قد أصبح السيرفر جاهز ولكن فاضل خطوات بسيطة فقطحتى أو جدار الحماية iptablesنغط شرح إعدادات األمان للنظام. ألننا لم حتاج فقط إلى بعض التعديالت علىن، السيرفرإلكمال إعداد -7

األوامر التي تحتاج إليها في الوقت الراهن. فننا سوف نشرح فقطاآلن، وتتم كاالتى: httpلعمل سيرفر port 80 ونجد هنا اننا سوف نحتاج الى ال

serviceعن طريق االمر etc/sysconfig/iptables/ثم قمنا بحفظه في الملف iptablesلل rules حيث االن قمنا بوضع ال

االن أصبح السيرفر جاهز للعمل االن ننتقل الى الجهاز الذي سوف يتم عليه التثبيت االن.

السطر التالي والذي فيه ونكتب tabاو Escفتظهر الشاشة األولى نضغط على ،boot.iso بواسطة القرص مضغوط تثبيتال عند بدء تشغيل تعريف للكارت الشبكة للجهاز الحالي ومكان السيرفر الذي سوف يتم منه التثبيت كاالتى:

لوضع اعدادات الشبكة التي سوف يتم من تثبيت نظام التشغيل tab بعد الضغط على linux askmethodكتابة او عن طريق على ملفات التوزيعة يحتوي الذيوالمسار IP اليتم التشغيل عن طريق الشبكة لكيالخاص بتكوين كارت الشبكة تمن اإلعدادا

االن نبدأ في تثبيت نظام التشغيل لينكس عن طريق الشبكة كاالتي Enterثم install or upgradeفتظهر لنا شاشه فيها العديد من الخيارات نختار boot.isoبعد ادخال أسطوانة -1 Enterثم skipنختار disk foundتظهر شاشه اخر عنوانها -2 نختار اللغة ثم لوحة المفاتيح-3 كاالتيعند التثبيت عن طريق الشبكة URLتظهر شاشه اخر نختار -4

Page 149: Linux Admin I II

RHCSA/RHCE Egypt ®

148 Network Installation

صبحي طيبه دد. محم

كاالتي Enterثم نضغط يتم االتصال بالشبكة لكيثم بعد ذلك ندخل اعدادات كارت الشبكة -5

كاالتي: Enterنضع اعدادات السيرفر التي سوف يتم التثبيت عن طريقه ثم نضغط -6

فيبدأ في تحميل الملفات ثم يبدا عملية التثبيت-7 عمل المثبت اناكوندا دالشاشات المتاحة التي يمكن التعامل معها عن

Installation Virtual Console Commands and Functions

Command Console and Function

CTRL-ALT-F1 Text installation display; if you're running in graphical mode

CTRL-ALT-F2 Accesses a bash shell prompt.

CTRL-ALT-F3 Lists the log of installation messages

CTRL-ALT-F4 Displays all kernel messages, including detected hardware and drivers.

CTRL-ALT-F5 Installation displays partition formatting

CTRL-ALT-F6 Graphical installation display; active only if installation in graphical mode

Interactive shell مزيد من التفاصيل عن ويمكن االطالع على عمل اناكوندا. دعن (CTRL-ALT-F2) بيتم استدعائها والتي ةالثاني وحدة التحكم على توجد

mnt/source/ان الملفات المصدرية الخاصة اناكوندا موجودة في دونج mnt/sysimage/ من خالل أو ،proc/من خالل الجهاز المحلي SCPو ifconfig ،ping ،FTP ،SSH بما في ذلك، الشبكات ادوات مجموعة من interactive shell كما يوفر

:وإذا حدث أي مشكله اثناء التثبيت فسوف نجد معطيات هذه المشكلة في االتي

Page 150: Linux Admin I II

RHCSA/RHCE Egypt ®

kickstart الملف 149

صبحي طيبه دد. محم

KICKSTARTالملف

(kick start script)سكريبت كيك ستارت ويتم كتابة عن طريق محرر نصي بسيط او التي تحدد تفاصيل التثبيت المطلوبة. ASCIIهو عباره عن ملف نصي من النوع االسكى كود

ويستخدم هذا الملف في تركيب نظام التشغيل مستخدما واحد من الوسائل التأليه. kickstart configuratorاستخدام األداة HTTP NFS TFTP CD-ROM

نجد ان هذا الملف يتكون من ثالث أجزاء هذا الملفالموقع التالي فيه شرح كامل عن جميع ما يكتب في

https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s1-kickstart2-options.html

(post section)األقسام األخرى -3 (package section)قسم التطبيقات -2 (command section)قسم األوامر -1 (command section)قسم األوامر -1

package%يبدا ب الذيويشمل جميع السطور حتى السطر بها البد ان تكون في نفس السطر. ةتبطمرسطر البد ان تكون عباره عن كلمات واضحة معترف بها مثل البرمجة واي معامالت األ هذه

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

(package section)قسم التطبيقات -2وتنتهي ب package%يستخدم لوضع جميع البرامج والتطبيقات التي سوف يتم تركيبها مع نظام التشغيل وتشمل جميع السطور التي تبدأ

character %حرف %)( ويتكون هذا القسم من السطور التي (عادة) تستخدم أحد الشكلين التاليين:

@ Component_Name or package-name لتحديد البرنامج عن طريق محتوى مجموعته، حيث يجب توخي الحذر من الكتابة (Component_Name@)يستخدم النموذج األول

أي كتابة االسم بشكل صحيح. capitalizedالصحيحة السم و المتاحة.يمكن استخدامه إلجراء تثبيت لجميع التطبيقات Everything @السطر

.ليتم تثبيته فرديا التطبيقاتلتحديد أسماء (package-name)يستخدم النموذج الثاني .أي تطبيق ضروري، سيتم تثبيت resolvedeps-- المعامل ةإضافيحتوي على package% سطرإذا كان

(post section)القسم االخير -3 post%ب تبدأوالتي تشمل جميع السطور التي مثل سكريبات محتوياته ويتم تنفيذ .اناكوندا بواسطة المثبت ال يتوقع المثبت حديثا والتي إلى الجهاز أي تخصيص ألداء قسمهذا ال ويستخدم .المثبت حديثا التي تعمل على محتوى الجهاز الباش شل

والتي تبدأ عن طريق االتي: kickstartولتسهيل ما سبق فيوجد اداه في الشاشة الرسومية التي تعمل على اعداد هذا الملف Application System Tools Kickstart

system-config-kickstartاو كتابة االمر

yum install system-config-kickstartوإذا كانت هذه األداة لم تتوفر على نظام التشغيل فيتم تثبيتها عن طريق االتي التعديالت مع عدد قليل من .حديثا المثبت على النظامroot/anaconda-ks.cfg/ إنشاء الملفب اناكوندايقوم سوفالتثبيت، إجراء عملية بعد

.بالمثلجديده آلة لتثبيت kickstart script أن تستخدم بمثابة يمكن، هذا الملف الطفيفة

Page 151: Linux Admin I II

RHCSA/RHCE Egypt ®

150 Automating KICKSTART

صبحي طيبه دد. محم

pykickstart حزمة، التي تقدمها ksvalidator تسمى kickstartاداه للتأكد من صحة الملف هناك، 5 لينوكس ريد هات في الجديد kickstartالملف اكتشفت في مشاكل لإلبالغ عن أي محاولةهذا األمر و

للمثبت اناكوندا لكي يستخدمه في عملية التثبيت؟ kickstartكيفية ارسال السكريبت يجد فيه هذا السكريبت. الذيوالمسار ، Kickstartللسكريبت جراء تثبيت إل اناكوندا لكي تخبر ks boot التالية واحد من المتغيرات يستخدم

• ks=file:/<file> ks=file:/mydir/ks.cfg • ks=hd:<device>:/<file> ks=hd:sda3:/mydir/ks.cfg • ks=nfs:<server:>/<path> ks=http:<server:>/<path> • ks=cdrom:/<path> ks for auto kfs from DHCP server

مثال السطر التالي سوف يخبر االنكوندا بتحميل السكريبت من الشبكةks=http://rha-server/pub/ist191-ks/student-ks.cfg

AUTOMATING KICKSTART

والتي بدورها تعتمد على (full automating)وتثبيت التوزيعة بطريقه اليه كامله kickstartهنا سوف نتعلم انشاء سيرفر (PXE boot –TFTP server)

1-SERVER TFTP كاالتى: syslinuxوتطبيق httpكما فعلنا من قبل مع tftpعمل على تثبيت تطبيق ن-1

نعمل على انشاء المجلدات األتية:-2

كاالتى: (initrd.img ,vmlinuz) من قبل وهم httpنقوم بنسخ بعض الملفات الموجودة في األسطوانة او التي نسخنها على سيرفر -3

لجعله كاالتى: (etc/xinetd.d/tftp/)سيرفر tftpفي ملف االعداد ftp بعد ذلك نعمل على بعض التغيرات وهي توضيح لمكان ملفات ال-4

نقوم بإعادة تفعيل السيرفر كاالتى:-5الن هذه الملفات تعمل على تغير المكان على حسب النسخه syslinuxالخطوه األخيرة نعمل على نسخ بعض الملفات الخاصة بالتطبيق -6

كاالتى:

Page 152: Linux Admin I II

RHCSA/RHCE Egypt ®

151 Automating KICKSTART

صبحي طيبه دد. محم

كاالتى: tftpboot/حيث المجلد الثانى يحتوى على الملفات االتيه سوف نقوم بنقلها الى المجلد

:كاالتى الحقفي وقت فيه موجودة سوف تكون PXEحيث قائمة ، وهو المكانdefaultأيضا إلى إنشاء ملف فارغ يسمى تحتاج-7# touch /tftpboot/pxelinux.cfg/default

حتى يصبح الشكل النهائي كاالتى:

سيرفر ننتقل الى الخطوة التأليه tftp الاالن قد انتهينا من اعداد 2-PXE boot

التأكد من تعيين اثنين من تحتاج إلى. PXE bootاستخدام لتكون قادرة على (األجهزة التي سوف يتم التثبيت عليها) client من اجل ال .األشياء بشكل صحيح

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

# yum install –y dhcp # rpm -qa | grep dhcp dhcp-4.1.1-12.P1.el6.x86_64

# service dhcpd restart Stopping dhcpd: [ OK ] Starting dhcpd: [ OK ] # chkconfig dhcpd on

:ويكون شكله االتي الذي قمنا بإنشائه من قبل defaultهي ادخال التعريفات األتية الى الملف PXE والخطوة األخيرة من اجل ال

Page 153: Linux Admin I II

RHCSA/RHCE Egypt ®

152 Hardware and Device CONFIGURATION التعامل مع األجزاء الصلبة

صبحي طيبه دد. محم

كاالتى: firewallنعمل بعض التعديالت األتية على

ونختار ال biosاالن وقد انتهينا من اعدادا السيرفر نذهب الى االله التي سوف يتم تثبيت التوزيعة عليه وذلك عند الدخول ندخل الى قائمة boot من خالل كارت الشبكةLAN سوف ترى قائمة ال توعند صحة اإلعدادا PXE

HARDWARE AND DEVICE CONFIGURATION األجزاء الصلبة التعامل مع

.دعم األجهزةل بالنسبةذات أهمية خاصة تعتبر تطور المصادر المفتوحةعيوب من نجد ان هناك مزايا و، رما قبل النش معلومات مطلعا علىليس و، األجهزةبائعي مع عالقات ليس لديها في كثير من األحيان مجتمع المصادر المفتوح ألن العيوب:غير معتمده من قبل انظمة التشغيل ذات تكون غالبا ما بعض األجهزة األخرى أو، بطاقة الصوت، الفيديو بطاقة من أحدث إصدارفنجد ان

.االتجاههذا عمل على تغيير، ريد هات مثل، لينكس مختلفة توزيعاتظهور النظام المفتوح ولكن مع رأكبهناك فرصة و، الجهاز الجديد من ميزات يريدون االستفادة مجتمع المصادر المفتوحة في، فان أي شخص في نهاية المطاف :المميزات

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

/https://hardware.redhat.com على األجهزة المعتمدة عن بقاعدة بيانات ريد هات تحتفظ

، يد هاتروايضا خدمات الدعم الفني ريد هات عهتوزي بشكل جيد من قبل تدعم التي وتحديد األجهزة للبحث وتساعد قاعدة البيانات .ريد هات رسميا من قبل غير معتمداألجهزة التي تعمل ولكنها وايضا معرفة عند اضافة جهاز او ازالة جهاز او معرفة مكونات الجهاز الحاليالكيفية

1-dmesg عباره عن هو و) (add new device) وضع أي قطعه جديد الى الجهاز الحالي د(وذلك عن األجهزة الجديد الكشف عن أول دليل على

.(boot)عند قيام النظام باإلقالع كيرنلال التي تنبعث من من الرسائل مجموعهتسمى و (dynamic kernel buffer) تخزين خاص بالكيرنل في منطقة، الكيرنل التي تنبعث من الرسائل وجميع، هذه الرسائل يتم تخزين

buffer dmesgوتكون موجودة في المسار . /var/log/dmesg على الكتابة تبدأ، وسوف الرسائل مع المخزن المؤقت استهالك مساحة ولكن عند ."المخزن المؤقت الحلقي" هوdmesg المخزن المؤقت

.أحدث منهاالقديمة برسائل الرسائل dmesgيتم عرضها عن طريق االمر dmesgمحتوى المخزن المؤقت

حيث نجد أن الكثير من تصميم يونكس التقليدية صمدت امام اختبار الزمن، ولكن في وقت مبكر من لينكس، لم تتوقع التطور السريع لألجهزة. lshalواالمر haldالبرنامج -2

(hot attached device)األجهزة المتصلةبالنظام فأنها تكون اولكن عند ارتباطه النظام،وجهاز البصمة، والتي ليست موجودة عند بدء تشغيل USBعن أجهزة، مثل عباره

haldو هذه األجهزة المتصلة، بالستيعا )2.6(كيرنل الحديثة من نواة لينكس مع اإلصداراتلعمل لمفعله وشغاله. وقد ذهب الكثير ")Hardware Abstraction Layer Daemon(" سيرفر)(طبقات األجهزة المذالة.

.، الستدعاء وعرض وضم هذا الجهاز الى نظام التشغيلD-BUS system message bus يتصل ب (hald) هذا البرنامج D-Bus APIs ، العديد من التطبيقات تتواصل مباشرة مع6في ريد هات إنتربرايز لينكس

) هو أبعد من نطاق عملنا، يمكن للمستخدم منHardware Abstraction Layerطبقة الخاصة باألجهزة المذالة (الفي حين أن تصميم lshal باستخدام األمر hald حاليا من قبل البرنامج باألجهزة المدارة عرض قائمة

Page 154: Linux Admin I II

RHCSA/RHCE Egypt ®

153 Hardware and Device CONFIGURATION التعامل مع األجزاء الصلبة

صبحي طيبه دد. محم

له –mأيضا في عرض أي تغير يحدث لألجهزة عن طريق إضافة الخيار lshalويمكن استخدام االمر .بثم حدث تحذير من مدير الطاقة عن نقص في طاقة البطارية الخاصة بالال USBانه تم توصيل ماوس من النوع ي يعكس الفي المثال الت

proc/المجلد -3 نع (option parameter) معظم أنظمة التشغيل تعطيك اإلمكانية في تغير أعدادها .بروك نظام الملفات هو األجهزة مورد لتحديد آخر

اما registry fileفي الويندوز عن طريقاما )proc، SysFs( في اللينكس يكون عن طريقنظام الملفات الوهمي وتكون طريق ما يسمى .nddعن طريق األداة Solarisفي ثم يقوم بعمل ، كيرنل نواة لينكس تنشأ عن طريقالذي ، (virtual file system)الوهمي نظام الملفات هو (proc)بروك نظام الملفاتو

ويعبر عن وظائف الكيرنل وأيضا تعبر عن متغيرات. proc/نقطة ضم له في المسار بتكون مساحتها صفر وذلك ألنها ليست ملفات فعليه ولكن عندم تطلب ملف معين فان مكونات الملف proc ومن المالحظ ان معظم ملفات ال

RAM ألنه يعبر عن ال proc/kcore/تنشا بواسطة برنامج خاص موجود في النواه الكيرنل والملف الوحيد الى مساحته كبيره هوا الملف .وعند فتحه سوف تجد كل العمليات الموجود على الرام 512كون فان مساحته ت 512لذلك عندما تكون الذاكرة مساحتها

؟(virtual File system)ما هو نظام الملفات الوهمي فان ، ما من البروكملف عند قراءةو .تخزينيهوسائط على أي ال وجود لهاعند تشغيل النظام proc/المسار تحت التي توجد كافة الملفات

فان الملفات بروك تصبح غير موجودة بأي شكل.، إيقاف الجهاز عند مثال، كيرنلال اليا. ولكن عند عدم وجودكيرنل تعمل على انشاءه ال ملفات البروك:

File name Content

/proc/cpuinfo معلومات عن البروسيسور(CPU) التشغيل.الخاص بنظام

/proc/interrupts معلومات عنIRQ (internet working service request) .ومن يستخدمه

/proc/ioports عرض قائمه بال (registered port) المستخدمة في(I\O) .التصالها باألجهزة االخرى

/proc/iomem األخرى المتصلة بنظام التشغيل ةخارطة عن ذاكره الجهاز وما تشغله الذاكرة من حيز لألجهز لعمل.

/proc/mdstat حالة ال RAID التشغيل لنظام.

/proc/meminfo الذاكرة.معلومات عن

/proc/kcore ويختلف عن باقي الملفات حيث انه الوحيد الذي له مساحة تخزين هذا الملف يعبر عن المساحة الكلية للذاكرة الفيزيائية.

/proc/modules نفس المعلومات التي ينتجها االمرlsmod .وتعبر عن األجهزة المتصلة بنظام التشغيل

/proc/buddyinfo الذاكرةالمعلومات المسجلة في هذا الملف تستخدم في فحص حالة تجزئة (memory fragmentation).

/proc/cmdline ه ند بدء عمليقوم بعرض جميع المتغيرات التي يتم تمريرها الى الكيرنل ع(boot time parameter)

/proc/swaps حالة ال swap partition.

/proc/version .رقم نسخة الكيرنل

Page 155: Linux Admin I II

RHCSA/RHCE Egypt ®

154 Hardware and Device CONFIGURATION التعامل مع األجزاء الصلبة

صبحي طيبه دد. محم

File name Content

/proc/scsi/* معلومات عن جميع األقراص من النوع ال scsi.

/proc/net/arp نفس ناتج االمرarp –a معلومات عن جدول ال) arp.(

/proc/net/dev .معلومات عن كل كارت شبكه متصل بالجهاز

/proc/net/snmp حالة البروتكوالت الخاص بالشبكة(snmp).

/proc/net/sockstat Statics on network socket utilization

/proc/sys/fs/* المستخدمة من الكيرنل وهذه االعدادات يمكن تغيرها فاحذر من تغيرها بدون علماعدادات أنظمة الملفات

/proc/sys/net/core/ netdev_max_backlog

عندما يستقبل الكيرنل حزمه من البيانات من خالل الشبكة أسرع من معالجة الكيرنل لهذه الحزمة فانه يضعه حزمه في هذا الصف ويمكن تعديل هذا 300الوضع االفتراضي انه يسمح ب .للمعالجةفي صف خاص

/proc/sys/net/ipv4/ icmp_echo_ignore_ all

ولكن ICMPرسائل البروتكول او يستقبل . وهذا يعنى ان الكيرنل سوف يستمع الى 0االفتراضي تساوى فهذا يعنى اغالق هذه الوظيفة من الكيرنل. 1عند وضعه القيمة الى

/proc/sys/net/ipv4/ icmp_echo_ignore_ broadcasts

ان يستجيب ويرسل ICMP يسمح للبروتكول. وهذا يعنى ان الكيرنل سوف 0االفتراضي تساوى broadcast address اوmulticast address فهذا يعنى اغالق هذه 1ولكن عند وضعه القيمة الى

الوظيفة من الكيرنل.

/proc/sys/net/ipv4/ ip_local_port_range

.61000الى 32768مقدار عدد البورتات التي تستخدم عند انشاء االتصال بالشبكة وتكون من

/proc/sys/net/ipv4/ tcp_syn_cookies

وعند تفعيلها تعمل على حماية النظام من onويمكن تغيرها الى واحد وتعنى offوتعنى 0االفتراض يكون SYN flood attack.

process id يوجد عدد كثير جدا من المسارات األخرى والتي يكون اسمها عباره عن ارقام هذه األرقام تعبر عن proc/ في المسار ملحوظه(PID) ة عن هذه العلميات وكيفه استخدامه للجهاز وهذه وبداخله يحتوي على المعلومات المتاح .عن العمليات التي تعمل على اللينكس

عند إعادة التشغيل فان هذه التغيرات ترجع الى procوكما ذكرنا من قبل ان أي تغيرات في ملفات ال .المعلومات مفيدة جدا للمبرمجين او sysctlاألداةاو تستخدم etc/rc.d/rc.localطريقتين. اما ان تضعها في الملف وضعها السابق ولكن لجعل هذه التغيرات دائمة فيوجد

kernel وتستخدم هذه األداة في عرض وتعديل قيم ال sysctl.confالملف Syntax: sysctl [options] Options: -e Ignores errors -w enables you to change a setting in the /etc/sysctl.conf file -p Loads settings from the /etc/sysctl.conf file -a Displays all settings currently available #sysctl –w kernel.hostname=jana.teba نالحظ ال يوجد مسافات بين = والباقي #echo “kernel.hostname=jana.teba” >>/etc/sysctl.conf

usbالمحركات الصلبة من النوع حيث يتم ، sdx أسماء لها كاالتي نالجهاز بتعي يقوم SCSI محركات أقراص ترى كأنها USB محركات األقراص الصلبة وتعتبر .أحرف صغيرة أو أكثر من واحد مع x استبدال ،الصلبالقرص اسم تساعد على تحديد الولكنها SCSI محرك أقراص كأنه floppyمن النوع USB محرك أقراص الىايضا وينظر

.التي اكتشف عن طريق النظامUSB من النوع جهزةاألعرض قائمة ل lsusb ويستخدم االمر

IDEاألجهزة من النوع والتي يشار قرصين كل منها يمكن إدارة متعددة، IDEديك ان تملك وحدات تحكم ل ألجهزة الكمبيوتر تسمح IDE bus بروتوكول . slaveو masterإليهم باسم

.secondaryو primaryويشار إليهم ، IDE وحدات تحكم تحتوي على اثنين من الشائعة أجهزة الكمبيوتر المكتبية من العديد

primary slaveو primary master يشار إليها باسم أن تكون متصال، IDE أربعة محركات أقراصب يسمحالذي هذا التكوينمما ينتج

Page 156: Linux Admin I II

RHCSA/RHCE Egypt ®

155 Hardware and Device CONFIGURATION التعامل مع األجزاء الصلبة

صبحي طيبه دد. محم

Secondary master وsecondary slave

SCSIاألجهزة من النوع .حرف صغيرةاال أو أكثر من واحد مع xحيث يتم استبدال ،sdx أسماء في شكل لينكس، يستخدم عادة

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

sdaسمه كان ا الذيالمشاكل ان هذه األسماء ال تكون ثابته بالنسبة للقرص الصلب حيث انه عند إعادة التشغيل نجد ان القرص أكبرولكن من UIDاو labelوهكذا لذلك يستخدم معهم sdbممكن يصبح

dmesgاو proc/scsi/لرؤية األقراص الصلبة عن طريق

SATAاألجهزة من النوع scsi تأخذ أسماء مثل ال

باألجهزة المتصلة الخاص لتعريفات KERNEL AND KERNEL MODULEالكيرنل وا

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

USB ،برامج تشغيل األجهزة يشار إلىوالذي كيرنل نواةالمن أكثر تخصصا جزء تستخدمأقراص، و device driver. نواة لينكس أسباب شعبية وواحد منلها. اتطيالمع عن طريق تمرير، وعادة (device driver)األجهزة برامج تشغيل العديد من اعداديتم

.للوحدات هو تصميمها(الكيرنل) :بإحدى طريقتين (device driver)األجهزةبرامج تشغيل ويمكن تنفيذ

– Static kernel image – Kernel module

The static kernel image باسم boot/هذا الملف يوجد في المسار ، إنتربرايز لينوكس ريد هات في .تشغيل نظام التشغيل تحميله عند يتم هو الملف الذي

vmlinuz version، حيث يتم استبدال version الكيرنل إصداررقم مع. برامج المتاحة، مثل أنظمة الملفات عمل قبل التشغيل،عملية يتم استخدامها أثناء التياألساسية برامج تشغيل األجهزةعلى يحتويوعادة ما

وذلك الن برنامج تشغيل األجهزة .األساسية الكيرنلصورة الىضافين مدائما يكون وحدة التحكم، وبرامج IDE تشغيل الجهاز (device driver) التشغيل ومعظم برامج التشغيل يةتحمل كأنها جزء من الكيرنل لذلك الطريق الوحيد إلعطاء معطيات لها يكون خالل عمل

(boot loader) مثلgrub اوlilo معامالت الى الكيرنل عن طريق سطر أوامر الكيرنلال تمريرتعطى إمكانية. proc/cmdline/ولعرض سطر أوامر الكيرنل التي سوف يتم التشغيل عن طريق نستخدم

يتم اعدادها خالل عملية التشغيل عن طريق سطر أوامر الكيرنل (static device driver)تشغيل األجهزة نفهم من ذلك ان برامج etc/modprobe.d/*.conf/يتم اعدادها من خالل (modular dives driver) ىاما برامج التشغيل االخر

Page 157: Linux Admin I II

RHCSA/RHCE Egypt ®

156 Hardware and Device CONFIGURATION التعامل مع األجزاء الصلبة

صبحي طيبه دد. محم

The kernel modules ج تشغيل برام مثل)، التشغيل نظامتشغيل من المراحل األولية خاللالتي ال يحتاج إليها ( االخرى برامج تشغيل األجهزة والتي تشمل

(وحدات الكيرنل) دائما ما توجد على هيئة ملفات تحت المسار kernel module وال .برامج تشغيل بطاقة الصوتالشبكة و واجهة/lib/modules/version الحيث يستبدل version الكيرنل.برقم اصدار

يستخدم لعرض قائم بجميع األجهزة المتعارف معها مع الكيرنل proc/modules/او lsmodاالمر

snd_hda_intelحيث نجد من المثال السابق ان الملف modules (independencies) ومن المهم معرفة الملفات التي يعتمد عليها ال snd_hda_codecو sndو snd_pcmأخرى Modules علىيعتمد modprobeاالمر

محمله فانه يعمل على تحميله رغيالمراد تحميله modules العليها التي يعتمد modules الكانت إذا ولكنmodule يستخدم لتحميل ال (dependency) بطريقه اليه ولكن هذا االمر ال يعرفdependency ولكنه يقوم بقراءة الملف

/lib/modules/kernel_version/modules.dep الذي يحتوي على قائمه بال dependency

r–من الذاكرة نستخدم هذا االمر مع الخيار modules وإللغاء تحميل ال

etc/modprobe.d/*.conf/نستخدم ملفات االعداد (modules)وإلعداد أي وحده .عند تحميلها إلى برامج تشغيل األجهزة المعامالت قد يتم تمرير، افتراضيا تعمل بشكل جيد (modules)وحداتال في حين أن معظم

اجل معامالت الوحدات. من etc/modprobe.d/*.conf/، يتم قراءة الملفالكيرنلقبل من "demand" في وحدةال وعند تحميل )،متوافقةبطاقة الصوت للسوند بالستر ( (device driver) الجهازبرنامج تشغيل ، الذي ينفذ sb kernel وحدة النواة، على سبيل المثال

N حيث يتم استبدال ،type=Nامل على شكل مع عن طريق تمرير كرت الصوت ع معين منانواتوقع إعادة تعديله أي تكوينه ليوالتي يمكن الكيرنل نواة يقوم كلما املالمع ذاهسيتم تعيين ،etc/modprobe.d/custom.conf/ للملف السطر المناسب إذا تم إضافة .عدد صحيحب

.sb kernelبتحميل

الخاصة وحداتال نظرا لطبيعةفي لينكس مثل أنظمة التشغيل األخرى قضيةالتعريفات لمكون معين في الجهاز ليست تثبيت: ملحوظه .لمعظم األجهزة المدعومة افتراضيا (modules)وحداتالنواة والحريات التي توفرها برمجيات المصدر المفتوح، يتم تضمين بال

Page 158: Linux Admin I II

RHCSA/RHCE Egypt ®

157 Hardware and Device CONFIGURATION التعامل مع األجزاء الصلبة

صبحي طيبه دد. محم

، وبالتالي فإن (modules)معينه وحده إذا تم الكشف عن (modules)لوحده معينه (device driver)يتم تحميل برنامج تشغيل الجهاز ه جدا في نظام التشغيل لينكس.لقلي هي الضائعة او المستخدمة لغير هدف معينالموارد /proc/sys/المسار

هي عباره عن ملفات للقراءة فقط وتمثل معلومات عن النظام ولكن هذه /proc/حيث انه من المعروف ان جميع الملفات التي توجد في المسار يحتوي على العديد من الملفات التي /proc/sys/وحيث نجد ان المجلد /proc/sys/القاعدة لها استثناء وهي الملفات الموجودة في المسار

يمكن فيها الكتابة /proc/sys/الملفات الموجودة في المجلد ث انحيعداد معين في النواه كيرنل.إيمكن التعديل فيها وكل واحد فيها يمثل sysctl مع األمر هذه الملفات هو لمعالجة، ولكن األسلوب األكثر شيوعا مباشرة والقراءة

الى الملف يشار، على سبيل المثال .للملفات بدال من المسار بفواصل اسم علي/proc/sys/ الملفات في الى يشار، sysctl عند استخدام/proc/sys/fs/file-max مع االمر، في وقت واحد فتحها يمكن الملفات التي الحد األقصى لعدد تملي التيsysctl كاالتيfs.file-max

PCI (PCI DEVICE)الوحدات من النوع

PCI bus اإلصدارمع متوافقةال األبنية في معظم دورا أساسيا يلعب x86 .أجهزة جميع PCI التكوينبروتوكول تتشارك جميعا في Device ID’sو hardwired Vendorب تعريف أنفسهم يمكن PCI األجهزةاو االعداد، حيث الجسور أيضا الشبكة، ولكنحدة تحكم و بطاقات الصوت مثل ،(expansion cards) المشتركة التوسع بطاقات PCI وتشمل أجهزة

(bridge) اجهزه ( تربط التيdevices( ناقل أخرى إلى PCI األولية. لعرض معلومات االعداد المرتبطة به –vومن الممكن استخدامه معه الخيار PCIيقوم بعرض قائمه بجميع الكروت من النوع lspciاالمر

IRQ (Interrupt Request Line)ال IRQ خط من ال 15 يوجد، x86 بنية في لكيرنل.ا نواة لجذب انتباه، IRQ تستخدم (devices)او المكونات العديد من األجهزة .واحد IRQ أن تشترك في خط (devices)ويمكن لمجموعه من األجهزة متاحة،

Page 159: Linux Admin I II

RHCSA/RHCE Egypt ®

158 Hardware and Device CONFIGURATION التعامل مع األجزاء الصلبة

صبحي طيبه دد. محم

proc/interrupts / خطوط يعمل على عرض جميع IRQ،برامج األجهزة و المتاحة(device driver) تستخدمه التي.

(I/O ports)البورتات داخل أو خارج نقل البيانات بعض عمليات يريدون اداءجهزة فان المكونات او األ، IRQخالل النواة من انتباه بعد الحصول على

.النظام من خالل النواة مع وعند التواصل .I / O ذعناوين مناف يشار إليها على أنها وهذه العناوين لألجهزة، بت16 بمساحة عنوان x86 بنية يوفر .استخدامها على المنافذ التي يتم أن توافق )deviceوالجهاز(، فيجب على النواة I / O منافذ

وعناوين البورتات تظهر على هيئة .من قبل برنامج تشغيل الجهاز استخدامها جميع البورتات تم يعرض proc/ioports/ بروك نظام الملفات .hexadecimalارقام من النوع

Device Memory Buffers

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

عناوين و، األساسية مخازن الذاكرة من فعليةذاكرة هال تعيين التي تم كافة األجهزة يعرض proc/iomem/ بروك نظام الملفات hexadecimal digitمن النوع تظهر على هيئه ارقام الذاكرة الفعلية

Page 160: Linux Admin I II

RHCSA/RHCE Egypt ®

159 Hardware and Device CONFIGURATION التعامل مع األجزاء الصلبة

صبحي طيبه دد. محم

PCI (PCI device Configuration)اعداد األجهزة من النوع ولكي يقوم الكيرنل باإلعداد لكي يتم استخدام الجهاز الجديد فإنها تتم في خطوتين. لينكس، هات إنتربرايزريد إلى األجهزة الجديدة ربط عندكان إذاالموديول اوال يجب أن يتم تحميلف، (kernel modules)من النوع للجهاز (device driver) برنامج تشغيل الجهاز كان، إذا أوال

غير مفعل. أالمن شأنها بطريقة المذكورة أعاله هاجميع أو الموارد أي منالستخدام نفسه الجهازاو برنامج تشغيل الجهاز اعداديجب أن يتم ، ثانيا

.أية أجهزة أخرى يتعارض مع، إذا كان برنامج تشغيل (Hardware Abstraction Layer)جديدة من قبل طبقة تجريد األجهزة PCIتعرف على جهاز العندما يتم

، المدعمة PCIوحدات ألجهزة الذى يحتوى على جميع الالجدول فان ، كيرنل بالفعل في النواة غير موجودة(device driver)الجهاز ، سيتم product idو device's vendorواول ما يتم التعرف على modules.pcimap-/lib/modules/2.6.32/8في توجد

.كيرنل المناسبة تلقائيا إلى النواة الموديولإدراج اكتشفت التي بعض من نفس األجهزة إلعداد، والذي يستخدم etc/modprobe.d/dist.conf/ ننظر الى الملفوكمثال على ذلك،

. lspciاألمر بواسطة

Page 161: Linux Admin I II

RHCSA/RHCE Egypt ®

160 Hardware and Device CONFIGURATION األجزاء الصلبة التعامل مع

صبحي طيبه دد. محم

Assigning Resources استخدام موارد او إمكانيات الجهاز ن أي تسجيله م األساسي الجهاز هذا الجهاز من ضم موارد تعييناالعداد ليجب ، للموديول المناسبة وحدة النواة تحميل باإلضافة إلى Plug n' Play protocol بروتوكول باستخدام boot time في هذا يتم التعامل معما ، ضمن الموارد. وعادة

.يمكن أن تدعم التي تكوينات مختلفة سجيل فيوالت للدعاية واالعالن آلية مشتركة استخدام PCI جميع األجهزة .جهاز المرتبطة بكل الموارداإلبالغ يعمل على سرد جميع تبديل سطر األوامر v- الخيار استخدامها مع lspciاألمر

ضمن الموارد يدويا وتتم ذلك عن طريق اختيار سطر (assigning devices)لعمل هذه العملية من تسجيل جهاز معين قد تحتاج، أحيانا .المناسبة وحدات النواة مع المعامالت لربط وذلك modprobe.d/*.confمعين في الملف

/usr/share/doc/kernel-doc-kernel_ver/Documentation/كل امالت ومع، وحدات النواة النواة، يحتوي على معلومات حول :كجذر بتشغيل األمر التاليقم ، هذه الوثائق لتثبيتو kernel-doc packageمن خالل الكيرنل وثائق يتم توفير .منها

FILE SYSTEM DEVICE NODE

.ملففيها هو عباره عن كل شيءان وهي :واحده فلسفة يتبع يونكس والينكس فان ، العمليات من وإلى تدفق المعلومات عند إدارة (?How do processes communicate with device drivers)والعمليات برامج تشغيل األجهزة بينالتواصل يتم كيف" ولكن السؤال

حيث تعتبر برامج تشغيل األجهزة .ملفات كما لو كانت تشغيل الجهاز برامجولإلجابة على هذا السؤال فنجد ان العمليات تتواصل مع (file system type)ملف نوع خالل من (device driver) األجهزة تتفاعل وتستخدم (process)كأنها ملفات. حيث نجد ان العمليات

.device nodeوهو ويعتبر نوع من driverومكونات الجهاز processبين العمليات لفنجد انه يعتبر وسيلة التواص device node لذلك عند تعريف ال

.واللكناتانوع الملفات التي يقدمها لينكس مثل الملفات والمجلدات :device nodeأنواع ال 1-block device node 2-character device node

dev/توجد في المسار device node وال له واضافته في الكيرنل. device nodeوعندما يتم الكشف عن أي جهاز بواسطة الكيرنل فانه يتم انشاء

؟ device nodeلماذا يوجد نوعين من ال device node الونظام الملفات يسمح لنوعين مختلفين من ز بين نوعين مختلفين من األجهزة. ألن نواة لينكس (الكيرنل) يميوذلك

character device node ةوتوفر طريقمتتابعة (أو "أحرف"). التيار واحد من وحدات البايت على هيئة البيانات تعالجهي األجهزة التي ، (serial ports) التسلسليةالمنافذ ،(terminal)الشاشة الطرفية هذا النوعالمعلومات أو تلقيها. أمثلة على ألنشاءطبيعية واحدة فقط

والطابعات.

Page 162: Linux Admin I II

RHCSA/RHCE Egypt ®

161 Hardware and Device CONFIGURATION ةالتعامل مع األجزاء الصلب

صبحي طيبه دد. محم

device node Block عموما، يعتقد أن على هيئة كتل. الوصول العشوائي، ونقل المعلومات في حجم ثابتبهي األجهزة التي تسمح block deviceجميع التحويالت من وإلى جعل ، I\Oاألهم من ذلك، من أجل تحسين أداء و. block deviceاألقراص الصلبة تستخدم

(Page Cache , Buffer Cache , Cache)التي يشار إليها أحيانا باسم "ذاكرة التخزين المؤقت " كيرنل، داخل النواة cash الم يستخد cيسبقه حرف charوالملف من النوع bيسبقه حرف blockنجد ان الملف من النوع فلعرض تفصيلي عن الملف ls –lويستخدم االمر

داخل النواه له رقمين تعريفين: device driver)حيث نستنتج من المثال ان كل تعريف جهاز ( 1-Major Number (الرقم األساسي) هذا الجهاز يستخدم لتعريف عدد صحيحعباره عن هي و.

يحتوي على قائمه بجميع األجهزة المسجلة داخل الكيرنل او التي تعمل مع الرقم األساسي proc/devices/حيث نجد في الملف بروك major numberالخاص به

من النوع ptyبشكل منفصل حيث نجد ان character deviceوال block deviceونالحظ في المثال التالي ان الكيرنل يعامل كل من character device له رقم أساسي(major number) والملف 2وهوfd من النوعblock device أيضا. 2له رقم أساسي وهو

2-Minor number (الرقم الثانوي)برنامج تشغيل الجهاز يتم تمريرها إلى التي، كمعامالت للجهاز هايتم التعامل مع device nodeمن أو قراءة تتم كتابة البيانات إلى عندما

وحدة تحكم، في حين أن ممكنةال المرنة األشكال للتمييز بينستخدم ي 2هو minor numberله floppy driver على سبيل المثال،Primary IDE controller لهmajor number يستخدم 3هو minor number قسام المختلفةالأ للتمييز (partition) القرص ىعل

.الصلب

Page 163: Linux Admin I II

RHCSA/RHCE Egypt ®

162 Hardware and Device CONFIGURATION التعامل مع األجزاء الصلبة

صبحي طيبه دد. محم

خلو من المشاكل.تال ا) صمدت أمام اختبار الزمن، لكنهdevice node( للتعامل والوصول الى األجهزةتقنية يونكس التقليدية كانت والتي ال يمكن الوصول إليها بسبب كيرنل في النواة (device driver) جهازيمكن أن يكون هناك برنامج تشغيل على سبيل المثال،

في نظام الملفات. لها device nodeوجود عدم في النواة، األمر الذي يؤدي إلى لها في نظام الملفات دون تشغيل الجهاز المطابق device nodeوعلى العكس، يمكن أن يكون هناك

بمجرد توصيلها والتي يتوقع الناس ،(hot swappable devices) السريعقابلة للتبديل الجهزة االوزادت هذه المشاكل من شعبية . االرتباك ان تعمل مباشرة.

تخزين جميع نظام الملفات بمعنى ”pre-populating" المشكلة عن طريق حلت هذه ريد هات، RHEL3حتى من خالل و، في األصلdevice node في المجلد/dev حتى إذا لم يفعل الجاهز المطابق لهذه ال device node

.أصبح يوجد محاوالت أكثر ذكاء لحل هذه المشكلة 2.6لينكس ونواة RHEL4 ب بدءا udevdالسرفيس من قبل مشاهدتهاوالتي يتم (notification device)حيث نجد ان الكيرنل االن يحتوي على جهاز اعالم

udevdالخدمة موجودة القواعد القاعدة بيانات من يستشير، الذي udevdبإعالم قوم ي فان الكيرنل، جهاز الكمبيوترعندما يتم إرفاق جهاز جديد إلى

وما الملكيات لكي ينشئه للجهاز الجديد الذي اضيف، device node ال نوعتخبره ب udevd ب الخاصةقواعد هذه ال. etc/udev/في .nodeلتطبيقها على التصريحات

.device node، وهذه المرة عن طريق إزالة الكيرنليستجيب مرة أخرى إلى إعالم udevd فان الوبالمثل، عند إزالة الجهاز، hot swapped device األجهزةكل يرى udevdالبرنامج فان

لذلك هناك زوجين من النتائج لهذه التقنية الجديدة.موجودة هي انعكاس ال device nodeوال، device nodeعدد اقل من اللديه سيصبح dev/المجلد ستؤدى الى ان ، على الجانب االيجابي

.األجهزة الجديدةمباشر لألجهزة الكشف عن . أكثر بالضبط، يمكنك dev/المجلد الخاص بك ضمن device nodeإلنشاء mknodاستخدام لن يكون من السهل، على الجانب السلبي

nodeان تظل هذه الن أن نتوقع كال يمكف، udevd عن طريقيوي بشكل حبناء محتوياته يتم اآلن dev/ المجلد، ولكن ألن Nodeالإنشاء التي انشأتها عند إعادة التشغيل أي ال تحفظ .

األداء PERFORMANCE MONITORINGتقيم

uptimeاالمر يعطيك المدة التي يعمل بها الجهاز من اول ما اشتغل لحد االن بدون إعادة تشغيل

Page 164: Linux Admin I II

RHCSA/RHCE Egypt ®

163 Hardware and Device CONFIGURATION التعامل مع األجزاء الصلبة

صبحي طيبه دد. محم

ولكن ما هو؟ load averageولكن نالحظ هنا شيء اسمه ال .دقيقة 15و، دقائق 5 دقيقة، 1 أعلى منبمعدل متوسط افتراضيا Dاو Rهو عباره عن عدد العمليات التي هي في حالة

، دقائق 5أخر العمليات قيد التشغيل في عددمتوسط هو 0.23، دقيقة 1آخر العمليات قيد التشغيل في عددمتوسط هو 0.56، في المثال أعاله .األخيرة 15الدقائق ال في العمليات قيد التشغيل عددمتوسط هو 0.12و

يتم و التي تم تخزينها بطلب من وحدة المعالجة المركزية جهاز الكمبيوتر، قيد التشغيل على العمليات التي على يعمل على سرد- :topاالمر شرح سابقا. topواالمر كل خمس ثوان حوالي قائمةال تحديث هذه الخروج يعنى" ”q حيث المفتاح، األوامر يتم تفسير كما ضغطات المفاتيحبتكون فعاله مما يعني أن ، نالحظ ان لوحة المفاتيحأثناء تشغيله

فان اول ثالث سطور يعبرون عن نشاط وحدة المعالجة المركزية topعند كتابة االمر .uptimeالسطر األول يشبه نتيجة االمر

.وحالتها رعلى جهاز الكمبيوت العمليات التي تكون قيد التشغيل يعددالسطر الثاني .القياسية يونكس تصنيفات، وذلك باستخدام وقتها وحدة المعالجة المركزية تم استخدام كيف تصنيفالسطر الثالث

القياسية يونكس تصنيفات-us- (user) : مثل ،مكثفة حسابيةوهي عباره عن عمليات .المستخدم عمليات عن يعبر، فإنه "المستخدم" وضعفي وحدة المعالجة المركزيةيكون عندما .وضع المستخدم تقضى معظم الوقت في وحدة المعالجة المركزيةان ، ويتسبب في التشفير مكتبة أو، معالجة الصور برنامج

-sy- (system): (services)تقديم الخدمات الكيرنل ومن األمثلة على ذلك أنشطة يعبر عن، فإنه "النظام" في وضع وحدة المعالجة المركزية عندما يكونكبيرة نقل كميات يتم العمليات التي ) اوكالقراءة والكتابة القرص الصلبعمليات مثل( عملية باسم استدعاءات النظام أو، األجهزة مقاطعات

.الوضعهذا في أكبروحدة المعالجة وقت قضاء في بتتسبشأنها أن من والتي، خالل الشبكة من وإلى أو، القرص من وإلى من البيانات-id- :(idle)

runnableحالةفي عمليات ألنه ال يوجدتبريد نفسه من السكون في وحدة المعالجة المركزية يقضيه مقدار الوقت الذيهذا هو التاليةاإلحصاءات يقيس إنتربرايز لينوكس ريد هات باإلضافة إلى ذلك،تعتبر ما سبق االحصائيات األساسية

-ni- (nice) التنفيذ أولوية وذلك ليكون، "niced" العمليات التي تتم حسب نيابة عن وحدة المعالجة المركزية يقضيه مقدار الوقت الذي هو هذا

-wa- (I/O wait) في حالة انتظار أو عملية ،I/Oدالموار نفس في ونيتنافس عنصرين بين الفصل في وحدة المعالجة المركزية يقضيه مقدار الوقت الذيهو

I / O لعمليةاكتمال -hi- (Hardware Interrupt) أو ،(low level hardware)مستوى منخفض ذات ال األجهزة طلبات خدمةفي وحدة المعالجة المركزية يقضيه مقدار الوقت الذي هو هذا

ع إلى موق تم نقله الذي مثل الماوس ما،عندما تعمل أي ترسل امر وحدة المعالجة المركزية الطبيعي للالتدفق تقطع األجهزة قد "المقاطعات" .عبر الشبكة حزمة التي تلقت إيثرنت أو بطاقة، جديد-si- (Software Interrupt) إلى حزم الشبكة إدارة نقل مثل النواة، داخل المتنوعة الدورية المهام خدمة في وحدة المعالجة المركزية يقضيه مقدار الوقت الذي هو هذا

.التطبيق المناسب-st- (Stolen) دال من ب وحدة المعالجة المركزية يستخدم االفتراضي المضيف تشغيل، ولكنال قيد وحدة المعالجة المركزية يقضيه مقدار الوقت الذي هو هذا .)xen( األنظمة االفتراضية فقط على ذات الصلة هو هذا المجال .ذلك

Page 165: Linux Admin I II

RHCSA/RHCE Egypt ®

164 Hardware and Device CONFIGURATION التعامل مع األجزاء الصلبة

صبحي طيبه دد. محم

physical RAM السطر الرابع يعبر عن نشاط وحدة الذاكرة الرئيسية Swapالسطر الخامس يعبر عن نشاط وحدة الذاكرة الوهمية

proc/meminfo/ويمكن أيضا متابعة نشاط الذاكرة عن طريق ملفات البروك ) /sys/(نظام الملفات SysFsالمجلد

proc نفس وظيفة ال driver) هذه mangeتستخدم في التحكم في ( udevواالداة driver تستخدم في االتصال بال dev/توجد في هذا المسار الملفات التي

sys/ (SysFs)/والذى يساعده على هذا الملفات الموجد في المسار devالموجودة في المسار /

SysFsيعطيها ملف التيشكل المعلومات والمثال التالي عباره

Page 166: Linux Admin I II

RHCSA/RHCE Egypt ®

مقدمه 165

صبحي طيبه دد. محم

مقدمه .تثبيت البرامج بطريقه سهله وتختلف من توزيعه الى أخرى المسئول عن (package manger) حزمجميع توزيعات اللينكس تملك مدير

الولوج اليها والتعامل ويتم repositories التي تخزن في السيرفر تسمى (software package)الحزم البرمجية او التطبيقات او البرامج الخاص بكل (package manger)ريق مدير الحزم عن ط او البحث عنها في االنترنت معها من حيث تثبيتها على نظام التشغيل او تحديثها

ومن (dependencies)توزيعه ومن وظائف مدير الحزم أيضا البحث عن التطبيقات والبحث عن الملفات التي يستخدمها التطبيق لكي يعمل ويوجد بعض البرامج الرسومية للتعامل مع dpkgو rpmأشهر التطبيقات او البرامج التي يتعامل معها معظم التوزيعات هيا ذات االمتداد

dpkgلحزم Gnome-aptو rpmلحزم ال Kpackageالحزم مثل على الشكل التالي (package)التطبيق او البرنامج صيغة وتكون

(Package_name)-(Version)-(release)-(architecture).(type of package {rpm or dpkg}) postfix-2.6.6-2.el6.x86_64.rpm

Package_name هو اسم البرنامج المراد تثبيته Version هكذا ----هو رقم اصدار البرنامج اصدار اول و ثاني و Release هو رقم نسخة اإلصدار

Arch اإلصدارات التي ستجدها متاحههو اصدار البروسيسور الخاص بجهازك وفيما يلى Noarch بمعنى ال اصدار محدد أي ان الpackage ستعمل على أي بروسيسور 1386 32لألنظمة bit and 64 bit 1586 بروسيسور الخاص للPentium I وAMD 1686 بروسيسور للPentium I , II , III , IV وAMD Duron , Athlon X86_64 46لل بروسيسور bit Intel core وAMD 64 Ppc 32لل بروسيسور bit من النوعIBM

في كل التوزيعات كل المعلومات عن البروسيسورلمعرفة archاو a-unameΔنستخدم االمر release-cat /etc/redhat نستخدم االمر

Ubuntuو Debianلعرض كل المعلومات عن النظام في lsb.releaseΔ-aنستخدم االمر )package mangerمدير الحزم أشهرومن

rpm&yum------------------------red hat based system as Fedora and RHEL dpkg&apt ----------------------- Debian based system as Ubuntu,Kubuntu&debian

rpm للالخاص بالتوزيعات الداعمة يوجد ثالث طرق للتثبيت التطبيقات على جنو/لينكس (source code installation) عن طريق الملف المصدري للبرنامج-1 2-RPM 3-YUM

(SOURCE CODE INSTALLATION) للبرنامجعن طريق الملف المصدري -1

(compiler)الكومبيلرثم يقوم javaاو ++c او cالمستخدمة في صنع برنامج معين قد تكون من نوع األكوادتجميعه من هو عباره عن .executable fileاو ملف تنفيذي binaryبتحويله الى ملف

ولكن مشكلة هذا النوع من البرنامج انه ممكن يحتاج الى نوع معين من الكومبيلر غير النوع المتوافر على نظام التشغيل ومن امثلة ص به.مثال على تثبيت برنامج من الملف المصدري الخا يليوفيما gccالكومبيلر مثل

#wgetΔhttp:// موقع الملف المصدري/app.tar.gz لتنزيل الملف من الموقع معين #tarΔxvzfΔapp.tar.gz لفك ضغط الملف #cdΔ/app الملف المصدري الخاص بالبرنامج لالنتقال الى المجلد الذى يحتوى #./configure لمعرفة االحتياجات المدعمة لتثبيت البرنامج #make تحويل الملف المصدري الى كود بناري #makeΔinstall للتثبيت ووضع في المجلد التقليدي الخاص به

الفصل تثبيت

التطبيقاتInstallation

Of Application

Page 167: Linux Admin I II

RHCSA/RHCE Egypt ®

RPM (Red hat package manger) عن طريق-2 166

صبحي طيبه دد. محم

RPM (RED HAT PACKAGE MANGER)عن طريق -2

managerRed hat package ياتالبرمج لتركيب وصيانة وسيلة ولإلداريينبناء وتوزيع البرامج وسيلة ل للمطورين تسمح ، .تركيب البرمجياتالتحقق من سالمة و حول للحصول على معلومات لالستعالم وسيلة المستخدمين وجميع

ي بينت عليه تنظامك اللينكس ويتميز بسهولة استخدامه والوجهات الرسومية الكثيرة البرنامج يتيح لك تثبيت او ازاله البرامج على configuration fileالبرامج على نظام التشغيل مثل لتثبيت وتشغيليحتوي على ملفات مهمة RPM والليجعل استخدامه سهل.

Binaries and pre-post scriptوالتي تتعامل معها وهذا يعطى امان عند تنزيل تطبيق معين ولكن يوجد ةبالتوزيعيرفرات الخاص وعادة تكون هذه البرامج مخزنه في السي

االتي:مثل rpm داعمه للتحتوي على برامج اخرى مواقعأيضا http://freshrpms.net http://mirrors.kernel.org http://ftp.redhat.com http://rpm.pbone.net

RPM www.rpm.orgولمعرفة معلومات أخرى عن ال المحافظة على قاعدة البيانات RPMومن مميزات

RPMمكونات RPM data base عباره عن المكان الذى يخزن فيه معلومات عن ال وهي package الذى ثبتت بالجهاز

var/lib/rpm/) وتوجد في المسار االتي permission , ownership , dependencies وتشمل مثل (

RPM executable الملفات المساعدة التي يحتاجهاrpm package .مع قاعدة البيانات المستخدمين يتفاعلوا أولتثبيت، تحديث، (root user) من قبل المسؤولين الذين يملكون صالحيات المستخدم الجذري يتم استخدامه .rpm األمر نهاية من خالل

.التحقق من سالمتها أو الحزم المثبتة حول لإلجابة على األسئلةأي مستخدم اخر و، البرامج إزالة Package file مكان تواجد ملفات ال rpm

تنقسم الى ثالث أقسامrpm الالخيارات المتاحة المستخدمة مع

(install – update – remove) البرامجاو التحديث او إزالة للتثبيت-1 (query)لعرض المعلومات عن البرامج -2 (verify)لفحص الشهادة التوثيقية الخاصة بالبرنامج -3

invocation Use

rpm -i, rpm -U, rpm -F .لتثبيت او تحديث التطبيق من ملفات الحزمة

rpm -e إلزالة الحزمة

rpm -q لعرض قواعد البيانات الخاص بrpm (query the rpm database)

rpm -V والنوع والمالك والمجموعة واخر تعديل والصالحياتتفحص حجم الملف(Verify)

rpm --checksig Verify the integrity of a RPM package file

والتحديث وإزالة البرامجفي التثبيت RPM الاستخدام -1

كاالتي: install--او i-مع الخيار rpmالنظام نستخدم االمر على package لتثبيت ال#rpm-ihv[name-version-release-arch.rpm]

Page 168: Linux Admin I II

RHCSA/RHCE Egypt ®

RPM (Red hat package manger) عن طريق-2 167

صبحي طيبه دد. محم

كاالتي: upgrade--او U-مع الخيار rpm ال متواجداها نستخدوالبد من package تحديث لل لعمل#rpm-Uhv[name-version-release-arch.rpm]

او F-مع الخيار rpmوذلك باستخدام االمر بتحديثهوف يقوم سغير موجودة يعملها تثبيت ولكن لو كانت موجود package إذا كانت ال--freshen :كاالتي

#rpm-Fhv[name-version-release-arch.rpm]

#rpm-ihvhttp://------------------------------------ عن طريق النت مباشره RPM ويمكن تركيب ال

verboseمثل v ك فاضل من الزمن لنهاية التثبيت)(بعيطي progress barليظهر hحيث كاالتي: erase--او e-مع الخيار rpmوتستخدم االمر ويميكن استخدام االسم فقط package لحذف ال

#rpm-e[Package_name]

RPMالخيارات المتقدمة مع ال--replacepkgs يستخدم هذا الخيار عنما تعمل على تثبيت اصدار جديد من تطبيق معين فالبد من ازاله اإلصدار القديم فهذا االمر

يعمل على ازالة اإلصدار القديم واستبداله باإلصدار الجديد.--prefixΔnew_directory المجلد االفتراضي لوضع ملفات التي يحتاجها فيه الى المسار التي تريده. تستخدم لتغير مسار

Page 169: Linux Admin I II

RHCSA/RHCE Egypt ®

RPM (Red hat package manger) عن طريق-2 168

صبحي طيبه دد. محم

مع بعض الخيارات –qمع الخيار rpmفي الحصول معلومات عن التطبيقات الحالية او تطبيق معين ونستخدم rpmاستخدام ال-2

:سؤالين من RPM (rpm query) كل سؤال ويتكون تريد االستعالم عنها؟ حزمة التيال ما

تراها؟ تريد أن التي ما هي المعلومات

التالي سوف يوضع الخيارات التي تستخدم معه لإلجابة عن السؤالين التالينوالجدول

--providesو --requiresالرسمية باستخدام rpmاالستعالم عن متطلبات --providesو --requires يمكن فحصها مباشرة باستخدام الخيارين rpmمتطلبات ال

للحصول على معلومات عن تطبيق معين

لعرض جميع التطبيقات المتاحة على نظام التشغيل الحالي

لعرض معلومات تفصيلية عن تطبيق معين

لعرض معلومات عن الملفات التي سوف تنزل مع البرنامج قبل تنزيله

تستخدم لمعرفة انتماء ملف لتطبيق معين

d-و c-لمعرفة جميع الملفات الخاصة ببرنامج معين يعادل الخيار

Page 170: Linux Admin I II

RHCSA/RHCE Egypt ®

RPM (Red hat package manger) عن طريق-2 169

صبحي طيبه دد. محم

scripts--Scripts: ing RPM Query أي تثبيت أو إزالةالتي تعمل جنبا الى جنب عند (shell script) تحديد البرامج النصية، يمكن للمطورين RPM حزمة عند حزم :التالية الفئات األربع في واحدة من RPM مخطوطات تقعو scripts--ويمكن فحصه عن طريق الخيار .الحزمة

Pre-install Scriptsالتثبيت قبل مخطوطات Post-install Scriptsالتثبيت بعد مخطوطات Pre-uninstall Scriptsإلغاء قبل مخطوطات Post-uninstall Scriptsإلغاء بعد مخطوطات

--lastالخيار مفيد عندما األمر .النظامعلى تم تثبيتها بأخباره بالوقت التي RPM حزمطلب استخدامها ل يمكن last--، االستعالم من خاص كنوع .هذا النظام على ربما تكون قد حدثت التغييرات األخيرة التي تبحث عن

Page 171: Linux Admin I II

RHCSA/RHCE Egypt ®

RPM (Red hat package manger) عن طريق-2 170

صبحي طيبه دد. محم

األخرى :كاالتي c-الخاص بتطبيق معين نستخدم معه (configuration file) لمعرفة جميع الملفات االعداد

#rpm-qcpackage_name # rpm-qcrsyslog

الخاصة لتطبيق معين documentation لعرض ملفات ال d-ويمكن أيضا استخدام # rpm-qdrsyslog

ولمعرفة تلك dependencyيعمل لكيمن المالحظ انه عند تثبيت أي برنامج فانه يحتاج الى بعض الملفات التي يعتمد عليها كاالتي: R–الملفات قبل تثبيت البرنامج نستخدم الخيار

#rpm-qRvim(package_name) لفك ضغط ملف البرنامج ومعرفة محتوياته من ملفات مصدريه نستخدم التالي:

#rpm2cpio<package>

)package verification(ملفات من او التأكد من الحزمة الخاصة بالبرنامج الملفاتلفحص -3 صالحياتسواء في ال قبل تثبيتها على اللينكس لكي اعرف هل حدث تغير او تعديل لها package لل verificationحيث انه من المهم عمل

الذي package عباره عن مقارنة ال verification او أي شيء اخر حتى اعلم ان هذا البرنامج سليم وخالي من الفيروسات وال الملكيةاو الحالي.نفسها الموجودة في نظام التشغيل rpm package الخص التي ت (data base) سوف أثبتها على النظام وقواعد البيانات

:تعمل على تخزين االتي RPMمخازن قواعد بيانات every file which is associated with an installed packageكل الملفات المرتبطة مع حزمة تثبيت

the file's user and group ownersملالك الملف تالمستخدمين والمجموعا permissionوضع الملفات (التصريحات)

file lengthطول ملفات MD5 finger print محتويات الملف على MD5بصمة

Page 172: Linux Admin I II

RHCSA/RHCE Egypt ®

RPM (Red hat package manger) عن طريق-2 171

صبحي طيبه دد. محم

تحقق من الحزمة. وسيتم مقارنة كل الملفات التي تملكها الحزمة ضد ليمكن استخدامها ل V-في أي لحظة بعد أن يتم تثبيت الحزمة، فان الخيار التي تم إدخالها عندما تم تثبيت الحزمة، وسوف يتم اإلبالغ عن أي انحرافات او اختالفات. RPMاعدة البيانات الملفات المخزنة في ق

pamولكن عند النظر الى حزمة .لم تتغير باشال حزمة الملفات التي يملكها أن جميع يؤكد (admin)التشغيل مسؤولفان فيما يلي،وإليضاح ذلك :الحزمة تم تثبيت تغيرت منذ الوقت وتعديل، MD5 بصمة، الملفات حجم، وهي حزمةال الملفات التي تملكها اثنين منفنجد ان

Verification error message (common flag) (معنى رسائل الخطأ اذا ظهرت) S file Size differs M Mode differs (includes permissions and file type) 5 MD5 sum differs D Device major/minor number mismatch L readLink (2) path mismatch U User ownership differs G Group ownership differs T mtime differs P capabilities differ

السيناريوهات التأليه: اثنين من ةعاد RPM (RPM verification) التحققنظام يتم استخدام ما الذي قمت بتغيره؟ .اآلن ولكن ال يعمل، تكون مثبته الحزمة تعمل عندما ان (Debugging) :تصحيح األخطاء هواألول

الملفاتفي إذا تم التعديلولكن rpm-Va مع األمر الحزم كل يمكن التحقق من، دوريا (Security) :الثاني هو األمن/usr/bin/passwd أو /usr/sbin/sshd، مشاكلفتوقع وجود

RPM Package File Signatures rpmفأما ان يكون التحميل من الشركة الصانعة للتوزيع التي تدعم rpmمن النوع (package)عند تحميل أي تطبيق او برنامج

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

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

وهذا للتأكد ان private keyهذا الكالم ان كل مصمم برامج او شركه مصممه برامج له مفتاح خاص به امن وخالصةيحمل هذا التوقيع فانه ساتالبرنامج سليم وال يوجد أي فيرو

في نظامها التشغيلي وذلك حتى يصبح أي تطبيق يحمل (signature)ولقد قامت ريد هات بتشفير وادراج العالمة الخاصة به GPG (Gnu Privacy Guard) private key. يكون متوافق وامن للمستخدم والمثال التالي يوضح للتطبيق ال يحمل المفتاح الخاص

بريد هات والتي ينتج عنه رسالة تحذيريه

المفتاح يجب الحصول على، فالتحقق من صحة التوقيع إجراء ومن أجل .عند التثبيت توقيعالللتحقق من تلقائيا يحاول rpm األمر .GPG العمومي

الذي يخص شركة ريد هات؟ GPGكيفية الحصول على المفتاح العمومي ألن أمن التحقق من صحة التوقيع يعتمد على سالمة المفتاح العام، فان ريد هات تقوم بتوزيع المفتاح العام بمجموعة متنوعة من الطرق:و

www.redhat.comمن موقع ويب -1 RPM-GPG-KEY-redhat-release ملف يسمىمن المجلد الجذر ألي اسطوانة ريد هات، في -2 etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release/في توزيعة ريد هات إنتربرايز لينكس، في ملف اسمه -3

rpm --import keyfileباستخدام التالي RPM مع قاعدة بيانات المفتاح يمكن تسجيل، عموميالمفتاح ال وبمجرد الحصول على

من النظام على RPM من قاعدة بيانات عامة المسجلةال مفاتيحبال قائمة أكثر من مفتاح في نظام التشغيل ويمكن الحصول علىويمكن إدراج .GPG-pubkey التي تبدأ الحزم جميع خالل سرد

Page 173: Linux Admin I II

RHCSA/RHCE Egypt ®

RPM (Red hat package manger) عن طريق-2 172

صبحي طيبه دد. محم

ويمكن الحصول على معلومات كامله عن مفتاح عام كاالتي:

يحتويه النظام نستخدم االتي: الذيح يولفحص تطبيق معين انه يوافق نفس المفات#rpm-Kpackage_name

rpm--checksigpackagefilename# او استخدام االتي:

rpmbuildpackage.src.rpm# نستخدم االمر التالي rpmولتحويلها الى srpmملحوظه يوجد بعض الملفات ذات ال امتداد usr/scr/redhat/والملفات التي تم تحويلها توضع في المسار

Converting an RPM Package into a cpio Stream على قوائم tar األرشيفي األمر بينما يركز .tar الذي يشبه، وcpio باستخدام RPM حزمةال ملفات (formatting)يتم اعادة تهيئة

معيار أو (standard in)داخلي معيار من التي تتدفق أسماء الملفات من (stream)"تيارات" cpio على األمر بينما يركز أسماء الملفات من . (standard out) خارج

ومثال على ذلك في المثال التالي: rpm2cpioباستخدام االمر cpioالى ملفات rpmويمكن تحويل ملفات الحزمة

والذي بدوره يقوم بسرد cpioثم بعد ذلك يتم تحويل الناتج الى االمر cpio streamالى vsftpd ملف الحزمة تم تحويل في المثال السابق، .cpio streamجميع الملفات في

يتم هذا المثال، في .المحلى نظام الملفات إلى RPM من حزمة الملفات الفردية فانه يمكن استخراج ،cpio لألمر إعادة الترتيب بعض مع .على طول الطريق مجلدات ضرورية أي، وخلق في المجلد المحلي etc/vsftpusers/. .ملفال إنشاء

rhn_registerعن طريق االمر yumملحوظه: يمكن التسجيل في ريد هات الستخدام االمر

االتي: ؟ لفعل ذلك نتبعRPMكيفية انشاء تطبيق

(directory hierarchy)انشاء نظام مجلدات معين -1 نقل او انشاء الملف المصدري الذي يحتوي على اكواد التطبيق المراد انشائه الى نظام المجلد الذي انشاء.-2 .(spec file)انشاء الملفات من النوع -3 .RPMبناء التطبيق -4

Page 174: Linux Admin I II

RHCSA/RHCE Egypt ®

RPM (Red hat package manger) عن طريق-2 173

صبحي طيبه دد. محم

:/usr/src/وبناءها تحت المجلد ويتم ذلك عن طريق انشاء المجلدات األتية (directory hierarchy)نظام مجلدات معين انشاء-1BUILD Contains scratch space used to compile software RPMS Contains the binary RPM that is built SOURCES Holds the source code for the RPM SPECS Contains the spec file(s) (one per RPM) SRPMS Contains the source RPM built during the process

كاالتى: makeو rpm-buildالتطبيقيين التاليين وهما تتثبيثم بعد ذلك نعمل على # yum install –y rpm-build make

كاالتى: وهكذا ثم نقوم بضغط هذا الملف first_fileمثل ننشأ فيه بعض ملفات المصدر mysampleوليكن نعمل على انشاء مجلد -2

SOURCESننقل هذا الملف المضغوط الى المجلد -3

كاالتى specsمثال لملف على كل التعليمات عن هذا التطبيق كاالتى: يحتوي الذي spec الننتقل االن اال انشاء ملف -4Summary: This package is a sample for the Red Hat exams. Name: mysample Version: 1.0 Release: 0 License: GPL Packager: Jana Tester Group: Development/Tools Source: %{name}.tar.gz BuildRoot: /usr/src/fedora/tmp/%{name}-%{version} %description This package is just a sample for the Red Hat exams. %prep %setup –n mysample %install mkdir –p “$RPM_BUILD_ROOT/opt/sample_pkge” cp –R * “$RPM_BUILD_ROOT/opt/sample_pkge” %files /opt/sample_pkge %clean rm –rf “$RPM_BUILD_ROOT” %post chown user01:user01 –R /opt/sample_pkge chmod 775 –R /opt/sample_pkge

كاالتى الباقي كما ذكر من قبلفانه بطريقه اليه يضع فيه اساسيات االعداد وتكمل انت SPECبمجرد انشاء ملف #vim /usr/src/fedora/SPECS/mysample.spec

كاالتى: rpm-buildعن طريق rpm ننشاء االن ال-5# rpmbuild –v –bb /usr/src/redhat/SPECS/mysample.spec

معلومات عن التطبيق

مهمين BuildRootو sourceالملفين النهم يوضحوا طريقة التثبيت للملف

لنقل الملفات المصدرية من المجلد SOURCE الى المجلدBUILD

Page 175: Linux Admin I II

RHCSA/RHCE Egypt ®

yum (yellow dog update modified) عن طريق-3 174

صبحي طيبه دد. محم

rpm –iنقوم بتثبيته عن طريق RPM نجد ملف ال usr/src/Fedora/RPMS/ندخل على المجلد rpm االن قد انشائنا ملف ال-6# cd /usr/src/redhat/RPMS/x86_64 # rpm -ivh mysample-1.0-0.x86_64.rpm Preparing... ########################################### [100%] 1:mysample ########################################### [100%]

rpm (source rpm)الملفات المصدرية من النوع ثم يقوم javaاو ++c او cالمستخدمة في صنع برنامج معين قد تكون من نوع األكوادهو عباره عن تجميعه من

src.rpmوهذه الملفات دائما تنتهي ب .executable fileاو ملف تنفيذي binaryبتحويله الى ملف (compiler)الكومبيلر rpmويتم تثبيتها كما في الخطوات السابقة بتحويله الى تطبيق /SRPMSوتأتى في القرص الضوئي المالحق لتوزيعه ريد هات في المجلد

rpm-iباستخدام rpm ويمكن تثبيتها أيضا مثل تطبيقات ال وتكون كاالتي:) ) (rpm )rpm packageالخاص بال binaryعن الملف الولكن يوجد بعض االختالفات التي يختلف فيها

ويتم اضافاته الى نظام الملفات بدون عند تثبيته binaryالتطبيقات المصدرية ليس لها قواعد بيانات مثل التطبيقات من النوع -1 (الملفات التي يعتمد عليها لكي يعمل) dependencyفحص

طريق أي مستخدم وال يشترط المستخدم الجذرييتم تثبيتها عن -2 في نظام التشغيل ريد هات وإذا /rpmbuild/SPECS/~و /rpmbuild/SOURCES/~يتم تثبيت ملفاته في المجلدين -3

كانت هذه المجلدات غير موجود يتم انشائها اليا. يحتوي على ثالث أشياء كاالتي: (source rpm)والملف المصدري

.tar" من مشروع مفتوح المصدر، وزعت كأرشيف مضغوط (pristine source)األصلي نسخة من "مصدر -1 التغييرات التي قامت بها ريد هات للمشاريع مفتوحة المصدر. تشمل" التي (patch files) مجموعة من "ملفات التصحيح-2مصدرى األصلي، وتطبيق تصحيحات الملف ال" الذي يقدم وصفة لكيفية استخراج (spec files) المواصفات فمل” -3(patches) لتعديل الملف المصدر، وترجمة(compile) الملفات التنفيذية، ثم جمع المنتجات المترجمة حديثا إلى ملف حزمةRPM .ثنائي

ويتم باستخدام التالي من دون تثبيتها على نظام التشغيل؟ repositoryمن ال rpmاو الملفات المصدرية rpmكيفية تحميل ملفات الyumdownloader foobar yumdownloader --source foobaryumdownloader is provided by yum-utils.

.rpmعمل البناء األلى لل لمشاهدة لك تسمح rpmbuild -ba specfileتشغيل األمريتم سوف، وأخيرا

المن النوع rpm والتطبيقات ال ،rpmbuild / BUILD / ~ التي ترجمت في المجلد التطبيقات ينبغي العثور على، بنجاح بناءال إذا تمbinary من دليل الفرعيال في ~ / rpmbuild/RPMS

(a for binary and source rpm – b for binary – c for compile source code)يأتي معه الخيارات األتية rpmbuild االمر ( i for install – l for list – s for source rpm – p unpacks the source code and apply any patch)

YUM (YELLOW DOG UPDATE MODIFIED)عن طريق -3

تسمى يعمل وهذه الملفات تحتاج الى ملفات أخرى و لكيانه يحتاج الى ملفات rpm الالمشاكل التي واجهتنا مع أكبرمن dependency تطبيق معين لذلك استخدم األداة تثبيت مما يؤدى الى صعوبةyum والتي تعمل على تنزيل وتثبيت البرنامج والملفات التي .dependencyيستخدم في تثبيت وتنزيل أي تطبيق + YUM فاللذلك (library file) يعتمد عيها ايضا

.هاتريد علىتحديث البرامج إضافة وللمستخدم يبسط ، yum (yum repository) مستودع إلى جانب وجود، yum األمر

Page 176: Linux Admin I II

RHCSA/RHCE Egypt ®

yum (yellow dog update modified) عن طريق-3 175

صبحي طيبه دد. محم

حول بها المرتبطة (metadata)البيانات الوصفيةوRPMS تطبيقات من هي عبارة عن مجموعة yum (yum repository) مستودعو تحتاج إلى إنشاء ال ومعظم المستخدمين .FTP أو HTTP بروتوكول عن طريق ويتم استخدامها، ألحد آخر RPM حزم ربط كيفية

.مستودعاتال وإنترنت شبكه، إلى ببساطة االشتراكذلك ولكن بدال من، خاصة بهم مستودعات

الموجود في المجلد (Yum Client) من جانب العميل ملفات االعداد بواسطة (repository) مستودعاتال يتم تعريف، عادة/etc/yum.repos.d/، والذي يشمل أي ملف ينتهي بrepo.

، الحد األدنى، تليها ،(unique repository id)باسم المستودع الرمزي بين قوسين مستودعال تعريف حيث نجد ان في ملف االعداد يبدأ rpm (baseurl) واالسم واسم تعريف الويب الذي سوف يأخذ منه ملفات ال

والتي .الحزم المتوفرة سرد كافة في YUMباستخدام االمر بسهولة يمكن للعميل ،(repo)االعداد الخاص بالمستودعتكوين ملف بمجرد .YUM مستودعات من التي تتوفر الحزم يليه، بالفعل تم تثبيتها التي مع الحزم تبدأ بقائمة. tetex-fontsمثل dependency يقوم بتثبيت ال، ولكن أيضا tetex-dvips المطلوبة، فقط الحزمة تثبيت ليسب يقوم yum الحظ أن

.بالتثبيت yumتأكيد يقوم مع library للوصول الى أي تطبيق وتحميلها بال (repository)مخازن عن طريق استخدام باآلتييكون yumملخص ما سبق فان عمل

الخاص بها.

Page 177: Linux Admin I II

RHCSA/RHCE Egypt ®

yum (yellow dog update modified) عن طريق-3 176

صبحي طيبه دد. محم

yumاألوامر المستخدمة مع االمر #yuminstallpackage_name لعمل تثبيت لتطبيق معين #yumupdate لعمل تحديث لكل التطبيقات الموجودة على نظام التشغيل #yumupdatepackage_name لعمل تحديث لتطبيق معين #yumsearchpackage_name للبحث عن تطبيق معين #yumremovepackage_name تبالكامل حتى ملفات اإلعدادا إلزالة تطبيق معين#yumerasepackage_name إلزاله التطبيق بالكامل ما عادا ملفات االعداد #yuminfopackage_name لعرض معلومات عن تطبيق معين #yumlist او التي تحتاج تحديث لعمل قائمه بجميع البرامج التي تم تثبيتها او ازالتها #yumresolvdepdep_name dependency لعمل تثبيت ألى احتياجات لتغطية

up2dateيستخدم لتحديث الحزمة ولذلك قد استبدل االمر القديم updateواالمر

Page 178: Linux Admin I II

RHCSA/RHCE Egypt ®

yum (yellow dog update modified) عن طريق-3 177

صبحي طيبه دد. محم

واالوامر التابعة معه yumبعض الخيار المستخدمة مع االمر

.yumوذلك عند حوث أخطاء مع yumالخاص ب cache لتفريغ ال (yum clean all)يستخدم االمرين yum (yum repo.)تكوين مستودعات

وعادة يكون داخل الملف في ، stanza ىتعريف في مستودع التالية التوجيهات عن طريق وضع rpm مستودعات يتم تكوين /etc/yum.repos.d/المجلد

Page 179: Linux Admin I II

RHCSA/RHCE Egypt ®

yum (yellow dog update modified) عن طريق-3 178

صبحي طيبه دد. محم

updateوهو yumاالمر المستخدم مع االمر ، وأساسارتنشتلقائيا تحميل وتثبيت أية تحديثات يتم و االعداد، مستودعاتال باستقصاء يقوم سوف yumفان ال ،updateاالمر مع

(yum list update)ويمكن عرض قائمه بالتطبيقات التي تحتاج تحديث .النظام "يجدد" .yum التحديث عن طريق تشغيل، وذلك ببساطة نواة جديدة حزمةيتم تثبيت و tar حزمة، يتم تحديث في المثال التالي

system-config-packagesويمكن استخدام األداة التي توفرها ريد هات في البيئة الرسومية في تثبيت التطبيقات عن طريق خاص بك ولعمل ذلك تتم كاالتي: repoويمكن عمل سيرفر

كاالتي createrepoنعمل على تثبيت األداة األتية -1 #yuminstallcreaterepo

سيرفر وتفعيلها ftpنعمل على تثبيت األداة الخاصة بعمل -2 #rpm-ivhvsftpd.rpm #servicevsftpdstart

التي سوف يكون االتصال منه ftpنعمل على نقل الملفات الخاص بالبرامج في مجلد ال-3 #cprpm/var/ftp/pubs

كاالتي repoاو انشاء مجلد ونضع فيه الملفات الخاصة بالبرامج ونجعله هو سيرفر -4 #mkdir/opt/yum/myrepos #cd/opt/yum/myrepos #cp~/nano-2.2.6-1.x86_64.rpm /opt/yum/myrepos

repo انشاء سيرفر ال-5 #createrepo/opt/yum/myrepos or #createrepo/var/ftp/pubs

كاالتي repo وننشأ ملف االعدادات الخاصة بالتعريف بمكان سيرفر ال etc/yum.repos.d/ندخل الى المجلد -6 #cd/etc/yum.repos.d #nanomyrepo.repo [base] name=My Custom Yum Repository baseurl=ftp://rhel01/opt/yum/myrepos enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

packageعباره عن ملفات مخزنه في القرص الصلب الخاص بك او أسطوانة فيه جميع ال repoومن الممكن ان يكون سيرفر ال نستخدم الصيغ األتية في ملف االعداد repo ftp عندما يكون مسار ال

baseurl=ftp://rhel01/opt/yum/myrepos القرص الصلب او أسطوانة نستخدم الصيغة األتية repo وعندما يكون مسار ال

[iso-repo] Baseurl=file:///mnt/cd enabled=1

Page 180: Linux Admin I II

RHCSA/RHCE Egypt ®

yum (yellow dog update modified) عن طريق-3 179

صبحي طيبه دد. محم

repo (www.rpmfusion.org – repoforge – google repo – adobe repo – epel)بعض المواقع التي تحتوي على ملفات كاالتى: dvdمن قرص repoويمكن انشاء ملفات

# mkdir /mnt/cd # mount –o loop /dev/cdrom /mnt/cd # cd /mnt # createrepo . or createrepo /mnt # yum clean all # vim /etc/yum.repos.d/iso.repo [iso-repo] Baseurl=file:///mnt/cd enabled=1

لتحديث القائمة بالتطبيقات الجديدة. (createrepo-update)ويمكن استخدام rpmبعض المواقع التي تحتوي على برمجيات

http://dag.wieers.com/packages http://fedora.us http://freshrpms.net http://rpmfind.net http://rpm.pbone.net http://www.fedoraproject.org/wiki/Extras http://atrpms.net ftp://www.ibiblio.org/ http://rpm.livna.or

rhnsdيستعين بالسيرفس والذيلعمل تسجيل في ريد هات rhn_registerيستخدم االمر IN DEBIAN & UBUNTU

الصيغة كاالتي وتكون rpmويساوى االمر dpkgاالمر نستخدم-1#dpkgoptionactionpackage_name action -i للتثبيت --configure التطبيق لإلعداد -r تطبيق معين ةلإلزال -P التطبيق وملفات االعداد الخاص به ةلإلزال -p لعرض معلومات عن تطبيق معين -I لعرض معلومات عن تطبيق معين غير مثبت -l لعرض جميع التطبيقات على النظام التشغيل الحالي

yum المثل aptitudeنستخدم االمر-2#aptitudesearchpackage_name #aptitudeinstallpackage_name #aptitudefull-upgrade لتحديث كل التطبيقات مع عدم فحص الملفات الذى يعتمد عليها التطبيق #aptitudesafe-upgrade لتحديث كل التطبيقات مع فحص ملفات الذى يعتمد عليه التطبيق #aptitudedist-upgrade #aptituderemovepackage_name إلزالة تطبيق من دون ملفات االعداد والملفات التي يعتمد عليها #aptitudepurgepackage_name تطبيق معين بكل ملفات ةلإلزال

apt-getنستخدم االمر -3#apt-getinstallpackage_name (update[تحديث قائمة الحزم] – upgrade[ترقية جميع الحزم المثبتة] – remove [Package_name] – check[فحص المستودعات] ) #apt-cachesearch[package_name] عن تطبيق معين ثللبح #apt-cdrom[package_name] تطبيق معين من القرص الضوئي تلتثبي

Page 181: Linux Admin I II

RHCSA/RHCE Egypt ®

مقدمه 180

صبحي طيبه دد. محم

Bios Boot loader kernel system

V initsystem ready

مقدمه )؟Boot sequence overviewكيف يعمل النظام (

في هذا الفصل سوف نتعرض لمسالة تشغيل النظام وايقافه.

االتى فمسالة تشغيل النظام تشمل

)BIOS [BASIC INPUT/OUTPUT SYSTEM]البيوز ( لمرحلة االولى وهيا

محدده)وظيفته القيام بوظائف والذي يبدا عمله بمجرد توصيل الطاقة و ROMعباره عن برنامج مخزن في الذاكرة بيوزال(تعريفه a- يقوم ال األلة عند بداية عمل bios عمل بPOST (POWER ON SELF TEST) األساسية األلةفحص اجزاء وهي

)Hard ware device (ره ويمكن تعديل الافيعطى ص عطب او تلف فأنه وإذا وجد أيbios بالضغط على مفتاح delاثناء اختبار الذاكرة b- تهيئة مكونات الجهاز(device initialization) وغيرها، المنافذ التسلسلية، وكارت الفيديو و لوحة المفاتيحمثل

IRQ [interrupted request]عنوان deviceيعطى لكل و (I/O ports) اإلخراجواإلدخال ومنافذ IRQمثلالنظام تخصيص موارد و .plug n’ playوبعض البيوز الحديثة تدعم بروتكول لكي يتكلم معه

c- يفحص ال ROM ال هولكي يرى ما portal device والتي تكون واحده من االتيالى يعمل منها تشغيل النظام Floppy Drive, CD-ROM, IDE or SCSI Hard Disk, PXE compliant Network Card

d- شغل يIPL (initial product load) من اجل تشغيلboot loader والتي تختلف من نظام تشغيل الى نظام اخر F2 , F10 or Deleteمثل حيدعم مجموعه من المفاتي ملحوظه: البيوز

؟MBR ما هوبايت أي انه جزء 512ور عباره عن موجود في الهارد ديسك والسيكت اول سيكتور هوو (Master Boot Record)هو اختصار لكلمة

boot sectorويطلق عليه ايضا partition أي انه ليس جزء من ال partitionكل ويوجد قبل )byte 512جدا (صغير يحتوي على هو و

1- Boot loader 446 byte 2- Partition table 64 byte 3- Magic number 2 byte ستخدم في عملية يrecovery

dd if=/dev/sda of=/tmp/COPY_OF_MBR نستخدم االمر التالي MBR لعمل نسخه احتياطيه من ال COPY_OF_MBRباسم tmp/نسخ في المسار ويعمل له dev/sda/من مساره MBR هذا االمر سوف يخزن ال

BOOT LOADER INITIALIZATION ال المرحلة الثانية وهي

؟boot loaderال ما هو أولى كخطوه RAMوالبحث عن نظام التشغيل وتحميله في ال BIOSعباره عن برنامج وظيفته استالم المعلومات والبيانات من ال هو

تحميل ونقل التحكم الى الكيرنل) –إذا كان ضروري initrdتحميل –ووظيفته تتلخص في االتي (تمكين سطر أوامر الكيرنل لبداية تشغيله ولكن في RHEL5و RHEL4في initrd-kernelversion.imgويسمى سالخاص باللينك modulesهو ملف يحتوي على initrd ال

RHEL6 يسمى هكذاinitramfs-kernelversion.img

أشهرهما boot loaderويوجد أكثر من برنامج يقوم بوظيفة الa- برنامجLilo وهوا اختصار ل linux loader وملف إعداده في االمتداد/etc/lilo.conf b- برنامجGrub وهوا اختصار ل grand unifid boot loader c- NTLoader الخاص بنظام الويندوز

الفصل

كيفية عمل النظام

BOOT UP SEQUENCES

Page 182: Linux Admin I II

RHCSA/RHCE Egypt ®

181 GRUB

صبحي طيبه دد. محم

GRUB

ببساطه الشاشة الزرقاء التي تظهر عند بداية التشغيل وهو Grubال والمستخدم حاليا هو grubمميزات ال -

أكثر مرونة وسهوله في التعامل من ال lilo ه لgrub minimal shell بيه شبيه بال خاص shell النظام بها ويسمى التي نتعامل معbash. يوفر خاصية التشفير لكلمات السر الموجودة بملف تهيئته يستخدم مع معظم توزيعات اللينكس الحديثة مثل

(Fedora, red hat enterprise linux, open SUSE, Ubuntu, Mandrake and other)

ملفات يتعامل مع أكثر من نظام file sys ،مثلfat،ext3,2 االخرى واالنواع

تشغيل يتعامل مع أكثر من نظام)multi boot specification( shortcut ----- /etc/grub.conf موجود في المسار االتي ك Grub وملف تهيئة ال

boot/grub/grub.conf/-------ومكانه األصلي في هذا المسار -ساعد المرحلة االخرى: تينقسم الى أكثر من مرحله وكل مرحله Grubفال يستطيع حمل برنامج كامل فال MBRونظرا لضيق مساحة

ويتكون من مرحلتين اساسيتين ومرحله اختياريهa- المرحلة االولى وتحتوي على ملف)stage_1( وتكون مخزنه فيMBR وملفاته صغيره ويستخدم في الذهاب الى المرحلة

)stage_1_5او stage_2(االخرى سواء b- المرحلة الثانية وتحتوي على ملفين] optional image stage_1_5 ،actual image stage_2[

نوع نظام الملفات ترمز الى xوعالمة x_stage1_5هكذا ويكتب stage_2و stage_1يستخدم كوحدة ربط بين stage_1_5 الملف (File system type) مثل [ext4, ext3, and other] ووظيفته هو تحديد نظام الملفات المستخدمة او استدعاءstage_2 .مباشرة

fat_stage_1_5فيصبح هكذا fatيستخدم نظام ملفات ل لو انت تحتاج هذا الملف لتحميل نظام تشغيل من على هاردمثا

file systemوفائدة هذه المرحلة انه يتعامل مع أكثر من نوع من وفى هذه المرحلة تظهر شاشة اختيار النظام للكيرنا تحميل حيث بواسطته يتم األكوادحتوائه على اهم ملف ال وهو stage_2الملف ال اعداد GRUB (GRUB CONFIGURATION) ملف

.عند اعادة تشغيل الجهاز المرة القادمة فينافذة المفعول التي تحدث له التغييرات و مباشرةيضاف ،boot/grub/grub.conf/الملف :كاالتي والتعامل معها للملفات grubمن معرفة كيفية فهم ال فالبد GRUBاعداد او تهيئة الأوال قبل الدخول في grubال اعدادكيفية

الملفات.نظر الى الجدول التالي وطريقة تعامله مع وا

Page 183: Linux Admin I II

RHCSA/RHCE Egypt ®

182 GRUB

صبحي طيبه دد. محم

تفسير اسم الملف يتم خالل الخطوات الثالث التالية؟حيث نالحظ ان ) وذلك عن ترقيم هذه hard disk، CDROM ،floppy diskمثل (لها طريقه في تعريفه للوسائط المتصلة بالجهاز grub وملفات ال

شرح طريقة يليوفيما kernelبعد ذلك يبدا عمل مث (hd 0,0)ويعرفهم كلهم SCSIو IDEال يفرق بين grub وال 0المدخالت بداية من

تعريفه للوسائط المتصلة بالجهاز ، أو hd0، فإننا نفترض أن primary master IDEألننا نعرف نظامنا ان نظام التشغيل يبدا عمله من : تحديد محرك األقراص-1 " BIOS Drive #1 يشير إليه. فان ال ،"GRUB تستعملHD0 بينما الكيرنل يستعمل ،/dev/hda تحديد موقع القسم على محرك األقراص باستخدام ب فنقوممحرك األقراص معروف، اصبح واآلن بعد أن : partitionمالقستحديد -2

partnum لل مختلفةالنطالق النقطة ا ليعادل 1، وتذكر أننا في حاجة إلى إضافة GRUB األول على أعاله يحدد القسم 0. وبالتالي فإن dev/hda1محرك األقراص

لمعرفة كل من له نقطة ضم على نظام التشغيل dfاالمر نستخدمالضم نقطة تحديد -3

يشير grub/splash.xpm.gz/لذلك فان الملف boot/أصبحت نقطة الضم الخاصة به هي dev/sda1/حيث نالحظ ان القرص الصلب boot/grub/splash.xpm.gz/ الى

grubلطرق قراءة ال بعض األمثلة(hd0, 0) /grub/splash.xpm.gz{grub reading} = /boot/ grub/splash.xpm.gz{kernel reading} (hd0, 2) /etc/passwd {grub reading} = /etc/passwd {kernel reading} (hd0, 6) /log/dmesg {grub reading} = /var/log/dmesg {kernel reading} (hd0, 0) /vmlinuz-2.6.32-131.4.1.e16.x86_64 = /boot/ vmlinuz-2.6.32-131.4.1.e16.x86_64

grubمع الملفات فننتقل الى اعداد ال grubاالن بعد معرفة طريق تعامل ال (#)أي السطور التي ال تبدأ ب grub ويشمل جميع السطور التي تلي شرح معلومات عن ملف ال

Page 184: Linux Admin I II

RHCSA/RHCE Egypt ®

183 GRUB

صبحي طيبه دد. محم

هاتوفي ريد قائمة رسوميه، يقدم للمستخدم ومن ثم، بدء التشغيل الخاص به معلنا بسيط أوال نص، فإنه يعرض GRUB عند تشغيل 5التوقيت االفتراضي الذي تظل عليه هذه الشاشة هو لينكس إنتربرايز

:أوضاع التاليةخمس في واحدة من يعمل GRUB ال نجد انوسوف Secure mode اآلمن الوضع:

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

النظام االفتراضي الذي يبدا في حالة عدم االختيار

grub الوقت الى ينتظره ال للدخول الى نظام التشغيل

Splashimage مكان تواجد الصورة

التي يظهر بها اختيارات ويمكن تغيرها osال

gimpنستخدم البرنامج لتحويل الصور الى

ثم ضغطه xpmاالمتداد

grub تخفى شاشة اختيارات ال

Page 185: Linux Admin I II

RHCSA/RHCE Egypt ®

184 GRUB

صبحي طيبه دد. محم

basic mode األساسيالوضع: القائمة عنصر اختيار للمستخدمين ويمكن .وضع آمنال يشبهلذلك grubهو الوضع االفتراضي عند عدم تحديد كلمة المرور في الملف

األوضاع التالية: واحدة من للدخول في من المفاتيح التالية أي قد تستخدم أو، المناسبةGrub Boot Options: e Edit the commands before booting a Modify or append the kernel arguments before booting c Open the GRUB command line

Edit mode التعديل وضع: الملفمن سطور grub العند الدخول في وضع التعديل، يعرض االعداد. وملف على طفيفة إلضافاتللمستخدم يسمح هذا الوضع

grub.conf الخط الحالي مع التعديل فيحذف سطر موجود، أو او محرر يسمح للمستخدم إلضافة سطر جديد، في محرر نصي بسيط. هذا ال طفيفة. تعديالت

ليقوم بإعادة التشغيل بالتعديالت الجديدة او استخدام bالمفتاح ستخدم قد ي المستخدم فإن ،stanza (grub.conf)وعندما يتم التعديل في basic modeإللغاء جميع التعديالت التي تمت والرجوع الى الوضع األساسي Escالمفتاح

وبرنامج ال (boot only)التشغيل فقط دعنتطبيق ملف االعداد بواسطة وضع التعديلعلى التي تم اجراؤها تغييرات ويجب ان نالحظ ان الgrub يسمح للمستخدمين لتحرير الملفات بشكل دائم. ال

Append mode: ي هذا الوضع ف وهذا الوضع ايضا يطبق عند التشغيل الخاص بالكيرنل سطر األوامر للمستخدم لتحرير الوضع يسمح، وهذا مثل وضع التعديل

.quitبعد كلمة run level الوذلك عن طريق وضع رقم run level اليمكن تحديد تشمل االتي: يوالت (edit & append mode)وهنا يمكن استخدام أي من هذا إلدخال أي تعديالت ممكنه يمكن تمريرها الى الكيرنل

Single-User Mode Used to perform maintenance tasks or if you forget the root password (1 or s) Runlevel 2 or 3 Used to load only partial services during the boot process (2 or 3) Emergency Mode Used to perform tasks on an unbootable system (emergency) Rescue Mode Used to fix boot issues or reinstall GRUB (need boot-cd)

Command mode وضع األوامر: وفيه يمكن للمستخدمين التفاعليةشل grub داخل لمستخدماعمل يوفيه grub.confلقد تم الموافقة على محتويات الملف في هذا الوضع،

ومن يرجع Escويمكن الخروج من عن طريق المفتاح .الملفات لفحص نظام استخدامه أو، تشغيل النظام، او يدويا initrdلتحديد الكيرنل او الى الوضع األساسي.

BOOT.iniوملف تعديله NTLDRالذي يخص مايكروسوفت boot loader ملحوظه ال GRUB (GRUB INSTALL)تثبيت ال

خالل مراحله االولى من تثبيت النظام لذلك فال boot loader معظم توزيعات اللينكس بتعطيك االختيار في تثبيت وتعديل اليدوي خالل استخدامك لنظام التشغيل ولكن قد يحدث تلف الى هذا الملف فيؤدى الى فشل تشغيل boot loader تحتاج تثبيت ال

عند تنزيل نسخه اخرى او عمل نظامين MBR وقد يحدث تلف لهذا الملف نتيجة اعادة كتابه ال يدويا.اللينكس لذلك البد من تثبيته MBRالى stage_1 bootloaderهي عملية نقل grub وعمليه تثبيت ال.تشغيل مع بعض في جهاز واحد بطريق خاطئة

بطرق عده GRUBويمكن تثبيت ال grub’s native command lineاوinstall-grub البرنامجواستخدام نظام التشغيل عن طريق تشغيل الطريقة السهلة

rescue modeوالدخول الى boot.isoعن طريق الملف والتي يمكن الحصول عليها

Page 186: Linux Admin I II

RHCSA/RHCE Egypt ®

185 GRUB

صبحي طيبه دد. محم

تظهر هذه الرسالة ثم linux rescueونترك مسافة ونكتب tabنضغط LINUX DVDبعد الدخول الى وا

shell start shellهنختار -7

واألخر CD-ROMواحد خاص بال /المشكلة هنا ان عندك اثنين المشكلة انى هذه ولمعالجة mnt/sysimge/ديسك خاص بالهارد

mnt/sysimge/الموجدة تكون لل / اجعلالى وللرجوع chroot /mnt/sysimgeعن طريق استخدام االمر

exit الخاصة باألسطوانة اكتب / ال نستخدم االمر التالي MBRعلى stage1ولتنصيب

grub-install /dev/sda

ةنختار اللغ-1 نختار لغة المفاتيح-2

Noيخبرك هل تريد استخدام االنترنت نختار-cd/dvd 4فنختار rescueنختار المكان الذي سوف نأخذ من -3

mnt/sysimge/يخبرك انه وجد النظام وقام بأنشاء نقطة ضم له في المسار -6 يخبرك انه يبحث عن النظام واذا وجده سيقوم بأنشاء نقطة ضم continueنختار-5

Page 187: Linux Admin I II

RHCSA/RHCE Egypt ®

186 GRUB

صبحي طيبه دد. محم

grub shellباستخدام ال grubالطريقة الثانية تثبيت ال command modeاو في ال rescue mode او نظام التشغيلوانت شغال على grub’s commands shell وهذه الطريقة يستخدم فيها ال

كما في الصورة grubوتكتب االمر rescueاو في terminal بتفتح الكاالتى grub shellالموجود في بداية التشغيل اما للدخول الى

(hd0,0)هو root ويجب ان يكون ال تظهر هكذا rootثم نكتب االمر

الى هارد ديسك root لذلك سنقوم يتغير ال floppy ال هو root وهنا يتضح لنا ان ال

موجود كما stage_1بعد كده نتأكد ان ملف

موجود في الهارد ديسك stage1وعندما يعطى هذه النتيجة فإنها تعنى ان ملف في الهارد ديسك MBRعلى grub boot loader واخيرا نعمل تثبيت ال

. ونخرج quitثم نخرج االن ونالحظ اننا فقط عملنا اعادة تنزيل ويجب نعمل اعادة تشغيل لكي يحدث التغير ونخرج عن طريق كتابة االمر rebootواكتب االمر DVDالخاص ب /عن طريق الرجوع الى

grub shellللدخول الى cلى حرف بالضغط ع االوامربالدخول الى وضع عند بدء عمل نظام التشغيل ويمكن تنفيذ ما سبق ذكره نقف grubالولفعل ذلك عند الوصول الى الشاشة run level 1يعمل على OSنجعل ال rootفقدان باسورد الخاص بال ملحوظه: عندنكتب االمر التالي run level 1في OSبعد بدء ال Sاو sاو 1نترك مسافة ونكتب quietثم بعد كلمة eونضغط Kernelعلى سطر ال (#passwd) فيطلب منى الباسورد الجديد نكتبه ثم نعملexit للومن هنا عملنا تغير root .باسورد

grubعمل رقم سرى لل .األمنية المخاطر يدخل، ولكن أيضا قدرا كبيرا من المرونة يوفر في مرحلة التشغيل الكيرنل تعديل سطر األوامر نتيجة القدرة على

مروركلمة ال يمكن تغير شل الصيانة والتي عن طريقها أن يعمل النظام إلى المعامالت الصحيحة، يمكن من خالل تقديم، سبيل المثالعلى .الجذر حسابالخاصة بلكي نمنع أي (not plaintext password)بكلمة سر مشفره غير مقرؤه . وينصحgrub.conf ملف كلمة المرور عن طريق انشاء ويقترح

root passwordشخص من تغير terminalلعمل باسورد بطريقه مشفره نكتب هذا االمر في ال

#grub-md5-crypt md5ويله الى نص مشفر من النوع ثم نكتب الباسورد فيقوم بتح

boot/grub/grub.conf/من ال grub.conf نقوم بفتح ثم

Page 188: Linux Admin I II

RHCSA/RHCE Egypt ®

187 INIT PROCESS

صبحي طيبه دد. محم

lockثم نكتب password --md5 password_keyاالتي فيه فيه السطر نكتب

KERNEL ال لمرحلة الثالثة وهيا

-وتتمثل هذه الخطوة في المراحل األتية: a- تحميلinitrd (initial RAM drive) (initramfs) وهو ملف يحتوي على تعريفات الجهاز يحمله ال) Grub في ال

RAM لما يشتغل ال kernel من غير ما اعمل اعداه تشغيل يجد تعريفات الجهاز وممكن اعدل تعريف أي جهاز او اضيف أي تعريف device يتعامل مع ال kernel وده عباره عن برامج تساعد ال modules عن طريق ال deviceيتعامل مع ال kernel كس والللين

drivers.الجديدة زي تعريف حجمه kernel وسبب التقسيم هذا وجعلهم في ملفين منفصلين وذلك لجعل ال modules(initrd)و kernelينقسم الى kernel ال(ملحوظه

في kernel جديد ليس من الضروري الذهاب الى ال modulesأصغر فيؤدى ذلك الى تحميله بسرعه أكبر على الجهاز وايضا كل ما احتاج لى بطء الجهاز في وقت الحق كما يحدث في نسخة الويندوز وممكن أيضا التحكم في فيؤدى ا kernel كل مره وذلك يؤدى الى كبر مساحة ال

modules من حيثon or off b- تحميلkernel c- Mount to (root file sys (/)) يعنى ال يستطيع التعديل فيه وتحميله بهذه الطريقة لفحصه فقط كقراءة فقط d- Remount (root file sys (/)) هذه المرة يمكن التعديل فيه أيread &write وده لو كان في الخطوة السابقة من غير

) dmesg |lessاالمر (ترى هذه الخطوات اكتب ولكيوكل هذه الخطوات تحدث سريعا مشاكل e- ال يبدا اول عمليه وهي initial process (init)

عن طريق وضع التعديل grub والتي تستخدم مع البعض المعامالت التي تستخدم مع سطر أوامر الكيرنل

INIT PROCESS

INIT PROCESSالمرحلة الرابعة

وتشمل بالترتيب upstart بالترتيب وتسمىتتنفذ سكريبتمن ال مجموعهبرنامج يعمل على تفعيل عباره عن 1) /etc/rc.d/rc.sysinit then run upstart 2) /etc/rc.d/rc?.d/ 3) /etc/rc.d/rc.local 4) X display manger #startx open GUI in run level 3

التي تقوم init ال وهي processاول بوصوله الى هذه المرحلة فانه يكون تجاوزا مراحل االعداد والكشف على مكونات الجهاز وبدء تشغيل المختلفة ومن ضمن المعلومات التي processالمعلومات الموجودة في هذا الملف يقوم بتحميل ال على وبناء etc/inittab/بقراءة الملف

initdefault :5و etc/inittab/المحدد الذي سيعمل على اساسه نظام التشغيل وده مسار الملف run levelيعرفها الى موجودة في الملف لذلك .etc/init/اصبحت موجودة في المسار بدء التشغيلالعداد املفات معظم نا etc/inittab/الموجودة في ملف تعليقاتال كما لوحظ من . etc/sysconfig/init/الملف منمتغيراته اخذ يستخدم هذه االعدادات باإلضافة الى init(upstart)فان البرنامج

Page 189: Linux Admin I II

RHCSA/RHCE Egypt ®

188 INIT PROCESS

صبحي طيبه دد. محم

init(upstart)ال

ما وبالتالي دائوهذا االمر يتم تنفيذه مباشرة من قبل الكيرنل عند بدء تشغيل النظام sbin/init/العملية اول عمليه بعد تحميل الكيرنل هو اسم صمم لكي يظل يعمل طالما نظام التشغيل يعمل وعند غلق الجهاز فانه اخر عمليه يتم غلقها. init وبرنامج ال .1 يساوى process IDلديه الو ).SIGKILL )signal 9من إشارة محمي يكون process Id 1 ال نفا ،الخطأالعملية ال تنتهي بطريق هذه على ضمان أن للمساعدةو

init دءبأي المسئول عن دأ جميع العمليات األخرىب عن المسؤول ، وهوجميع العمليات على النظام، يتم تنفيذه من قبل النواةلاألصل هو ، systemوكان قديما يستخدم نظام بهالخاصة etc/inittab/ملف االعداد قراءة يفعله هو شيء فإن أول .العمليات األخرى ورصد، إيقافو

V، بالنظام ه، تم استبدال6من ريد هات إنتربرايز لينكس ابتداء نولك upstart للتعامل مع بدء، وقف، والرصد، وإعادة تشغيل الخدمات الجديد في وقت االقالع وفى وقت عمل نظام التشغيل.

من الملفات في بمجموعة etc/inittab/لتكون متوافقة مع اإلصدارات السابقة وباستثناء استبدال upstartيتميز ال الوقت الحالي في/etc/init/ ،تزال تستخدم نظام القديم وماV (system v) حيث الملف التشغيل. ءلبدinittab فقط يستخدم لتحديد مستوى التشغيل أصبح

non-kernel processعمليات االخرى من النوعال كل بدء عن طريق boot عملية ال استكمال عن هو المسؤول init برنامجيتم (boot)في مرحلة التشغيل مثالعلى حسب الحالة التي يكون فيها نظام التشغيل (jobs)ببعض الوظائف تقوم فأنهاupstartو init مع

./etc/init/على هيئة سكريبات في المجلد (jobs)ويتم تخزين هذه الوظائف وهكذا run levelتشغيل أكبر مشكلة مع استخدام وكانت. مختلفةالسيرفس الالوظائف واألحداث لتشغيل العديد من الجديد init(upstart) يستخدم برنامج ال

UPSTART قع فيتالتي يقوم باستخدامها وظائف ال، يمكنك العثور على حاليا.ولكنه هتخزين ملفات نلمكا محدد معيارحاليا هو أنه ال يوجد باإلضافة الى بعض مجلدات النظام القديم etc/event.d/التي يستخدمها في المجلد (event)ويمكنك أيضا ان تجد االحداث etc/init/المجلد

SYS V init .النسخةمع و RHEL6 استخدام األداة المساعدة السيرفس حتى يتيح، تم نقل عدد قليل منUPSTART مثل (الجديدة التي تؤدي وظيفة إضافية أو (events)األحداث بعضأن تشمل هايمكنكل وظيفة و) ، وهي المسؤولة عن سجالت النظامsyslog السيرفس

.system scriptالبرامج النصية تشمل upstartمثال لبعض الوظائف التي يستخدمها

.ووظيفةgettys تشغيل الهو تشغيل، وفحص، وإعادة ووظيفته ، init (upstart)يعتبر ايضا من الوظائف التي يقوم بها tty.confالملف .ttyهي الحصول على شاشة دخول المستخدم لكل getty ال عدة مرات)، فإنه يكتب الفتة دخول وينتظر المستخدم في المقابل. ENTERإذا سمعت صوت ضجيج (كان شخص ما ضرب المفتاح - للمواصلة في عملية الدخول. loginالمستخدم، فإنه يقوم بتشغيل األمر اسم عند تلقي - لتأخذ مكانها. gettyبإعادة تشغيل init(upstart)عندما يقوم المستخدم بتسجيل الخروج، فيقوم بإنهاء عملية تسجيل الدخول، ويقوم برنامج -

active_consoles قائمة، ولكن يتم التحكم في gettys اعادة تشغيلو، ورصد لبدءمسؤول etc/init/tty.conf/في حين أن السكريبت etc/sysconfig/init/ معطياته من يقرأ والذي بدوره etc/init/start-tty.conf/السكريبت طريق االفتراضي) عن ttyال(

فقط وإذا اردت تعديل هذا tty 6وذلك ألنه يستطيع توفير (virtual console)محاكات 6على 6لينكس زهات إنتربراي ريدلماذا يحتوي يأخذ جميع متغيراته من هذا الملف init (upstart)وذلك الن برنامج etc/sysconfig/init/العدد فيمكن عن طريق السكريبت

Page 190: Linux Admin I II

RHCSA/RHCE Egypt ®

189 INIT PROCESS

صبحي طيبه دد. محم

5انه عند مستوى التشغيل نجد حيث etc/init/prefdm.conf/عن طريق السكريبت 5ومستوى التشغيل 3ويتم التميز بين مستوى التشغيل الذي يعمل على تشغيل شاشة الدخول في البيئة الرسومية X server والذي بدوره يقوم بتشغيل ال etc/X11/prefdm/يتم تشغيل السكريبت

ومتى؟ 2يصبح virtual consoleو getty بين ال ربطال خط لماذا .المشكلة، لحل هذه للدخول تكون متاحة وحدة التحكم، فإن خدمات الشبكة أثناء بدء تشغيل. والنظام تعلق في حالة

وكان مستخدم قديما وكان يعتمد فقط على init (system V)هو اول ملف يعمل ويوجد منه نوعين init ملخص ما سبق هو ان ملف الفي تحديد مستوى etc/inittab/وهو المستخدم االن ويستخدم الملف init(upstart)حيث يضع فيه كل معطياته و etc/inittab/الملف

خذ معطياتها من الملف والتي تأ etc/init/التشغيل فقط وذلك لألداء األسرع وعلى حسب هذا يقوم بتشغيل عدد من الوظائف الموجودة في /etc/sysconfig/init وعدد من االحداث مثل التي توجد في/etc/event.d ويمكن للمستخدم التعامل معه والتحكم في الوظائف عن

initctlطريق االمر initctlاالمر

مر في عرض او إيقاف او تشغيل الوظائف التي يستخدم هذا اال init (upstart)وتعتبر األداة التي عن طريقها يتعامل المستخدم مع البرنامج يستخدم الصيغ األتية للتعامل مع الوظائف كاالتى:و serviceويشبه الى حد كبير االمر upstart يستخدمها ال

#initctl[start – stop – restart – reload – status – list] <job_name>

ttabiniوفيما يلي شكل ملف

هذا السطر يحدد مستوى التشغيل(run level) 5وهنا نجد انه

Page 191: Linux Admin I II

RHCSA/RHCE Egypt ®

190 INIT PROCESS

صبحي طيبه دد. محم

run levelال runlevel هي الطريق التي تحدد الوضع الذي سوف يعمل عليه نظام التشغيل لينكس وفيما يلي األوضاع المتوافر مع ال

0 - halt يستخدم لغلق نظام التشغيل لينكس 1 - Single User Mode وضع من أوضاع الصيانة ويمكن الدخول اليه بدون أي رقم سرى ويكون في بيئة المستخدم الجذري 2 - Multi-user Mode without NFS ن مستخدم ولكن بدون كارت الشبكة يتيح اكثر م 3 - Multi-user Mode يدعم النظام بالكامل مع كارت الشبكة ولكن في الوضع النصي وليس الوضع الرسومي 4 - unused بالمستخدم بطريقه يدويه غير مستخدم حتى االن ومن الممكن استخدامه وعمل أوضاع خاص 5 - Multi-user with X الوضع الثالث ولكن في البيئة الرسومية مثل 6 - reboot يستخدم إلعادة التشغيل

r-whoوأيضا االمر يستخدم لمعرفة مستوى التشغيل الحالي runlevelاالمر level runمر اال

عندم يكون الجهاز مشغل حديثا اما الحرف الثاني فيمثل مستوى التشغيل الحالي Nحيث يمثل الحرف األول مستوى التشغيل السابق ويصبح لتغير مستوى التشغيل كاالتي initيستخدم االمر

ولكن في telinitباألمر initيتم استبدال االمر Unixثم رقم مستوى التشغيل المراد االنتقال اليه ولكن نالحظ انه في نظام initحيث يكتب يستخدما لتغير مستوى التشغيل الحالي telinitواالمر initنظام التشغيل لينكس االمر

(shutdown)في غلق نظام التشغيل 0مع مستوى التشغيل initويستخدم االمر ونجد ان هذا االمر لها ميزتين: shutdownولكن يوجد طرق أخرى لغلق الجهاز عن طريق استخدام االمر

أي يمكن عمل اغالق للنظام في وقت محدد crontabاو atانه يمكن جدولته مع االمرين -1 قبل االغالق.يعطى لهم فرصه لغلق أي عمل لكيالى جميع المستخدمين انه سوف يتم االغالق (broadcast)يقوم بإرسال رسالة عامه -2

1 وإذا لم يوجد أحد هذه الخيارات فانه يجعل الجهاز يعمل على مستوى التشغيل hprcيستخدم معه الخيارات shutdownونالحظ ان االمر :ونظام التوقيت لجدولة الغلق في وقت معين كاالتي

هذا االمر مستخدم فقط من قبل المستخدم الجذري(root user) .والمستخدم العادي ال يستطيع استخدامه :shutdownمع االمر hprcتفسير الخيارات

-h (halt the machine) يعمل على تعليق نظام التشغيل -p (power off the machine after halting) على غلق نظام التشغيل ليعم -r (reboot the machine) على إعادة تشغيل نظام التشغيل ليعم -c (cancel a pending shutdown) على الغاء غلق نظام التشغيل ليعم

shutdownاألوامر األخرى والتي تعتبر اختصار لألمر بعض

Page 192: Linux Admin I II

RHCSA/RHCE Egypt ®

191 INIT PROCESS

صبحي طيبه دد. محم

shutdownوبعض الخيارات األخرى مع االمر -k ال يغلق الجهاز ولكنه يحذرك -F FSCK مع إعادة تشغيل الجهاز يفرض تشغيل -n يغلق جميع البرامج العاملة على الجهاز االن غير مفضل استخدامه -t SECS يرسل رسالة اغالق ولكن يؤخر االغالق على حسب عداد الثواني المكتوب

أيضا االمرhalt يعادل االمرshutdown now على غلق نظام التشغيل ومثله أيضا االمر الذي يعمل أيضاpoweroff يعيد تشغيل النظام من جديد rebootاالمر

etc/init/rcS.conf/السكريبت هو أول سكريبت يتم تشغيله في و init(upstart)والتي يتم تشغيلها من قبل البرنامج etc/init/يعتبر من الوظائف التي توجد في المسار

والذي بدوره يفعل ما يلي: bootوضع ال والذي سيتم فحصه بالتفصيل، حيث نكتشف أنه هو المفتاح الرئيسية لتهيئة etc/rc.d/rc.sysinit/ (script)البرنامج النصي يتم تنفيذ-1

تنفيذ العديد من عمليات التهيئة النظام. عن طريق system initializationالنظام تم تحديد أي مستوى التشغيل، فانه لم ي. إذا (run level) وفحصه للعثور على مستوى التشغيل etc/inittab/التالى يقوم بقراءة الملف -2

. bootيتأكد من إذا تم تمرير مستوى التشغيل إلى الكيرنل في وقت rcS.confاالفتراضي. وايضا الملف runlevelسوف يتم تعيين .etc/inittab/التي يتم تمريره الى الكيرنل هو نفس مستوى التشغيل المكتوب في الملف run levelومستوى التشغيل

وهو المسئول عن جميع مع مستوى التشغيل المناسب etc/rc.d/rc?.d/يتم تشغيل السكريبت (runlevel)بعد تحديد مستوى التشغيل -3 من مستوى تشغيل الى مستوى تشغيل اخر. لالعمليات الصعبة عند االنتقا

etc/init/rcS.conf/وفيما يلي ملخص ما يقوم به السكريبت

.اثنين؟ الجهاز يتم تشغيلها على عدد العملياتفما هو ،(script)هذا البرنامج النصي عند تشغيل etc/rc.d/rc.sysinit/السكريبت

االتي بالترتيب االواجبات كم الكثير من الذي يؤدي، شيل معقد باشملف هي rc.sysinit النصيالملف .ولكن في وضع القراءة فقط (mount)معمول لها نقطة ضم (root file system)قبل عمله يكون ملفات النظام الجذري

.(set hostname)ليقوم بتعين اسم المضيف الخاص بالجهاز etc/sysconfig/network/أوال يقوم بفحص الملف -1 proc/لملفات البروك في المسار (mount) يقوم بأنشاء نقطة ضم-2 a relabeling of the system (activate udev and selinux)بدء وليقوم بتفعيلها selinux يقوم بفحص مجموعه من ال-3 .يعرض الذي في رسالة الترحيب أن تسمي نفسها ليقرر ما etc/redhat-release/يعمل على فحص السكريبت -4 ، array RAID برنامج خاصة، مثل المتعلقة باألقراص من التشكيالت عدد كبير للكشف عن البرنامج النصي هذا يحاول-5

LVM، مشفرة أقسام (encrypted partitionالتعقيدات وغيرها مثل هذه. او جعله fsck -T -t noopts=_netdev -A $fsckoptionsوهو rc.sysinitعند مالحظة السطر التالي في السكريبت -6 واالن قد فهمنا لماذا يقوم الكيرنل بعمل نقطة ضم .كافة األقسامفي (file system)فانه يعمل على فحص نظام الملفات fsck -Aفقط هكذا

واصالحه fsckوجعله للقراءة فقط حيث انه عندما يكون في حالة القراءة فقط فمن الممكن فحصه ب (root file system)للقسم الجذري . fsckولكن اذا كان في حالة القراءة والكتابة فال يمكن فحصه ب

لملفات األخرىأنظمة ا مع كل من، جنبا إلى جنب ان يفحص (read only) (root file system)نظام الملفات الجذريليسمح لوالكير ن (rescue shell).االنقاذ قذيفة المستخدم في يتم إسقاط، وفي حالة حدوث مشاكل etc/fstab/التي لم يعمل لها نقطة ضم وموجوده في الملف

ولكنه يضعه في الحالة الكتابة (root file system)ثم بعض الفحص يقوم بإعادة انشاء نقطة الضم لنظام الملفات الجذري -7 والقراءة ويستخدم السطور األتية لعمل ذلك

#mount-oremount,rw/ #mount-a-tnonfs,nfs4,smbfs,ncpfs,cifs,gfs –O\no_netdev

fstab (mount other local file system)ثم يقوم بعمل نقط ضم لجميع األقسام األخرى الموجودة في الملف بعض اإلجراءات األخرى التي يقوم بها يليوفيما -8

o Sets kernel parameters in /etc/sysctl.confوضع إعداد الكير نل o Sets the system clock ضبط الساعة o Loads keymaps تحميل خريطة المفاتيح o Enables swap partitions الوهميةتفعيل الذاكرة o Enable disk quotasتمكين توزيع مساحه الهارد على المستخدمين o Cleans up stale locks and PID filesمسح الملفات الموقت الى كانت تدعم التشغيل

دون تغيير، االعداد الخاص بها ملف وتطبيق قراءةال يعمل على إعادة initيجعل ال سوف init استخدامها مع األمر الخيار التي عند ما init –q؟؟ مستويات التشغيل

Page 193: Linux Admin I II

RHCSA/RHCE Egypt ®

192 Red Hat Enterprise Linux Service Scripts

صبحي طيبه دد. محم

RED HAT ENTERPRISE LINUX SERVICE SCRIPTS

تالسكر يبامستوى التشغيل ثم بعد ذلك تشغيل ثم تحميل rc.sysinitهو تشغيل السكريبت rcS.confوكما قلنا من قبل ان وظيفة السكريبت etc/init/rc.conf/المسئول عنه هو يتم ذلك بواسطة الملف و /etc/rc.d/الموجودة في المجلد

وعند عرض محتوياته نجد االتي: (runlevel)على حسب مستوى التشغيل /etc/rc.d/المجودة في المجلد تكر يباسالويتم تشغيل

خاص بالسيرفيس التي تعمل على هذا المستوى symbolicونجد ان هذا المجلد ال يحتوي على ملفات ولكنه يحتوي على لنكات من النوع etc/rc.d/init.dالتشغيل وكل لينك يشير الى سكريبت موجود في المجلد /

/ وملفات السيرفيس الذي يحتويهاetc/rc.d/init.dالمجلد /دات العمل ألي مسئول ريد هات يلعب دورا خاصا في ريد هات إنتربرايز لينوكس، وينبغي أن يكون جزءا من مفر etc/rc.d/init.d/ المجلد

.على حده (run level) التي تتشارك بين كل مستوى تشغيل (scripts) إنتربرايز لينكس. وهو يحتوي على البرامج النصية

(إعادة reload(إعادة تشغيل)، restart(إيقاف)، stop(بدء) أو startبواحد من المعامالت األتية، وأبرزها وكل برنامج نصي يتم استدعاؤه (وضعه الحالي). statusتحميل)، أو

الذي يعمل على عمل daemonيندرج مباشرة تحت ال هاومعظم (services)على انها سيرفس (scripts)ويشار إلى هذه البرامج النصية هذه السيرفر والتحكم فيها

Page 194: Linux Admin I II

RHCSA/RHCE Egypt ®

193 Red Hat Enterprise Linux Service Scripts

صبحي طيبه دد. محم

والذي يعتبر الخادم usr/sbin/sshd daemon/والتي بدوره يعمل على التحكم في etc/rc.d/init.d/sshd/السكريبت ومثال على ذلك (server) لخدمة شل األمنه

stopعن العمل يتم عن طريق الطلب من ان تقف عن طريق (services)وإذا اردت ان توقف أي سيرفس

(services)السرفيس تم إنشاءلذلك ،etc/rc.d/init.d/ الدليل من (scripts)البرامج النصيةتشغيل ب يقومون في كثير من األحيان المسؤولين ألن

(service)سيرفس ، تدعى اختصار لها على الشكل االتي serviceوللتحكم في السيرفس نستخدم االمر

etc/rc.d/init.d/service_name command/ويمكن أيضا تشغيله بطريقة أخرى كاالتي الوسيلتين للتحكم في أي سيرفسلذلك يعتبر االتي

متصل بها ولكن ليس كل السيرفس (daemon)ومعظم السيرفس لها ديمون سللسيرفيمثال

في الخاص بهذه السيرفس (scripts)ولكن وجود الملف النصي ،بهالخاص daemon الالتي ليس لها ما الذي يميز السيرفس ./etc/rc.d/init.d/المجلد

واحد بشكل جماعي. daemonستخدم أكثر من يوالبعض ال، في حين أنه يوجد من ،daemon تستخدم الالعديد من الخدمات service httpd start ؟؟تريد أن تبدأ خادم الويب

service sshd status ؟؟عملتتريد أن تعرف إذا كانت الخدمة شل اآلمنة الخاصة بالسيرفس commandاألوامر

/etc/rc.d/rc السكريبت الخاص به حتى ال تعمل بطريقه runlevelبمعنى اخر انه يخصص لكل runlevelمسئول عن استدعاء السكريبت الخاص بكل

عشوائية.

Page 195: Linux Admin I II

RHCSA/RHCE Egypt ®

194 Red Hat Enterprise Linux Service Scripts

صبحي طيبه دد. محم

/etc/rc.d/rc?.d وفى كل محتوى runlevel يرمز الى رقم ال ?حيث الرمز. service يحتوي على اللنكات الخاصة بال runlevel) لكل directoryوعاء (

ويكون شكل اللنكات كاالتي etc/rc.d/init.d/المتجمعة كلها في هذا المسار serviceتشير الى (soft link)يوجد لنكات من النوع

الوتعنى ان هذه السرفيس ال تعمل في هذا Kو runlevel وتعنى ان هذه السرفيس تعمل في هذا ال Sالى الحرفين Lحيث يرمز الحرف runlevel ويرمز الحرفينdd ويرمز ية العملووهو عباره عن رقمين يدل على اولservice_name وعند تشغيل الى اسم السيرفس

.Sثم بعد ذلك بالذي يبدا بحرف Kفانه يبدا باللينك الذي يبدا بحرف سكريبت rc ال والتي بدوره يقوم باآلتي rcفيقوم بتشغيل runlevelو initحيث ان نظام التشغيل بعد تشغيل

. أي تشغيلهتم التي لتحديد مستوى التشغيل (run level)بفحص مجلد مستوى التشغيل يقوم rcفان السكريبت ،first bootingباستثناء -1امج قيد التشغيل، يتم استدعاء البرن تقيد التشغيل. إذا كان السيرفس ت هذهلمعرفة ما إذا كانبالتحقق rc يقوم ال")، سوف K") "killيبدأ " لينك

مع امر اإليقاف. (service script)للسيرفس النصي " Sلتحديد مستوى التشغيل التي تم تشغيله. أي لينك يبدأ " (run level)مجلد مستوى التشغيل بفحصمرة أخرى rcالبرنامج النصي يقوم-2")startسوف يقوم ال ،(" rc صي التشغيل، يتم استدعاء البرنامج الن دكانت هذه السيرفس قيد التشغيل. إذا كانت غير قيلمعرفة ما إذا بالتحقق

مع امر البدء. (service script)للسيرفس للخدمات والتحكم في السيرفس. مستوى التشغيل إلعداد السيرفس الخاصة بكل لمساعدة المسؤولين موجود chkconfigاالمر

االوامر المستخدمة معه:--list[name] والحالة الخاص به بالنسبة لكل مستوى تشغيل او سيرفس واحده لعرض جميع السيرفس --add<service_name> اضافة سيرفس لكى يتم اعدادها بواسطة هذا التطبيق --del<service_name> حذف سيرفس لكى ال يتم اعدادها بواسطة هذا التطبيق --level<run_levels> لتشغيل السيرفس او وقفها على حسب كل مستوى تشغيل معين <service_name><on|off|reset> لتشغيل السيرفس او ايقافها على مستوى التشغيل االفتراضي

(run level)لعرض جميع السيرفس والحالة الخاص به بالنسبة لكل مستوى تشغيل list--نستخدم معه الخيار

سوف يقوم عرض حالته بالنسبة الى مستويات التشغيل list--وعند كتابة اسم السيرفس بعد الخيار

وذلك resetاو offاو onمع معاملين المعامل األول يرمز الى اسم السيرفس والمعامل الثاني يرمز الى chkconfigوعند استخدام االمر 5و 3 عدم تحديد مستوى التشغيل فانه سوف يقوم بتفعيله على المستويات دللتحكم في السيرفر بالنسبة لتشغيله او وقفه او إعادة تشغيله. وعن

ونالحظ ان كل سيرفس تأتى بالمستوى التشغيل االفتراضي الخاص به حيث مثال السيرفس الخاص بالشبكة يعمل افتراضيا على مستويات resetال تعمل افتراضيا على جميع مستوى التشغيل. لذلك يستخدم المعامل smbو httpعلى النقيض خدمات الشبكة مثل 5و3و2تشغيل ال

سبالسيرفيالسترجاع الوضع االفتراضي الخاص

Page 196: Linux Admin I II

RHCSA/RHCE Egypt ®

195 Red Hat Enterprise Linux Service Scripts

صبحي طيبه دد. محم

/etc/rc.d/rc.local ، هذا البرنامج النصي افتراضيا. rc.localالنصيالبرنامج ، يتم تنفيذ (boot up) عند بدء التشغيل مستوى التشغيل عند الدخول إلى

(script) فارغايكون. تنفيذ سيتم rc.localوأي تعديالت يتم اضافتها الى (Script) .هذا البرنامج النصي إلى تريدها يمكن أن يضاف لذلك فان أي تعديالت اخرى

.السيرفس األخرى الخاصة بمستوى التشغيل الحالي بدأ كل بعد أن يتم بشكل مناسب هذا السلوك يمكن تعديل، S99local االرتباط الرمزي بداية من عدد عن طريق ضبط

لعمل سكريبت خاص بك حسب احتياجاتكمثال في بعض الحاالت سوف تحتاج الى تعديل في سكريبات بدء تشغيل النظام واغالقه ولفعل هذا امامك خيارين

etc/rc.d/rc.local/إذا كان هذا التعديل بسيط وال يؤثر في وقت تحميل النظام فيكون التعديل في سكريبت -1 etc/rc.d/init.d/إذا كان التعديل يحتاج الى تعديالت كثيره فيكون التعديل في سكريبت يوضع في المسار التالي -2

init.d والخيار الثاني هو rc.local لذلك فالخيار االول لك هو نستخدم االتي معين runlevelمعينه للعمل على serviceولجعل

#chkconfig --level2 servicename on #chkconfig --level2 servicename off

Xserveويمكن التحكم في السيرفس عن طريق شاشه رسوميه في البيئة system > Administration > Server Settings ويتم استدعائه كاالتي

system-config-services اول في برنامج الشل لكتابة األوامر نكتب االتي

service #chkconfig --del service_nameوهذا االمر يستخدم ايضا في ايقاف chkconfig --add service_name# ايضا service وهذا االمر لبدء عمل ال

#yast2 runlevel in openSUSE#sudo services-admin in Ubuntu

Page 197: Linux Admin I II

RHCSA/RHCE Egypt ®

196 Red Hat Enterprise Linux Service Scripts

صبحي طيبه دد. محم

لتحكم في السيرفس عن طريق كتابة االمر يمكن ايضا اntsysv فتظهر الشاشة التالية لفي التير منا #ntsysv --level 35 حيث ان هذا االم سوف يقوم بعرض جميع السيرفس التي

ومنه يمكن تشغيل او 5و 3تعمل على مستوى التشغيل حيث ان االمر لإيقاف أي سيرف ولكنه ال يفض

chkconfig أفضل منه وأسرع.

MANAGING VIRTUAL CONSOLES االفتراضية إدارة األنظمة

من األنظمة 6يتعاملوا مع عادة لذلك المستخدمين، (tty)من األنظمة االفتراضية 6 لكل gettys 6يعمل على انشاء upstart ألن عملية نظام افتراضي او أكثر. 12ولكن باستطاعة لينكس ان يملك .االفتراضية . Xتشغيل خوادم يمكن استخدامها ل الدخول تسجيالتب تسمحال منها الستة التي االفتراضية األنظمة

يمثل رقم النظام االفتراضي nحيث ttynللتنقل بين األنظمة االفتراضية نستخدم االمر

Observing the Boot Sequence مراقبة تسلسل عملية اإلقالع او التشغيل لدرجة تؤدى فشل في عملية اإلقالع. ومعرفة مكان المشكلة ونوعية يساعد على في بعض األحيان يتم اعداد جهاز الكمبيوتر بطريقه خاطئة

من البداية حتى تشغيل الجهاز. boot processلينكس بتعريف مراحل عملية االقالع زحل المشكلة ولذلك قامت ريد هات إنتربراي quietالكيرنل تستخدم المعامالت قليال، وذلك ألن نواة أصعبتحديد المشاكل في وقت االقالع أصبح، 4بدءا من ريد هات إنتربرايز لينوكس

ادى الى سرعه في عملية االقالع وأصبح من الصعب رؤية رسائل االقالع. اافتراضيا. مم هايتم تحديدالتي rhgbو طريق:الكيرنل ويتم ذلك عن سطر األوامر امالت منمعال، يجب إزالة هذه في االقالعإذا كان النظام لديه مشكلة

etc/grub.conf/التعديل في الملف - grub التعديل في سطر الكيرنل عن بداية التشغيل عن طريق شل ال -

سوف تالحظ رسائل الكيرنل ومراحل التشغيل وهنا يمكنك من إيجاد أي مشكله بسهوله rhgbو quietبعد اذالة المعاملين وتظهر هذه الرسالة grub boot loaderحيث يتم أوال تحميل

االتي: ظهرهذه القائمة ي روبمجرد اختيار عناص grub وبسرعة كبيره يتم استبدال هذه الرسالة بقائمة التحميل الخاصة بالمرحلة الثانية من ال

الن initial ramdiskل اوال يستطيع إيجاد مكان الكيرن grub ما. مثال الالمرة الوحيدة الذي سوف ترى فيها هذه الرسائل عندما يحدث خطا هذه الرسائل يتم استبدالها سريعا بواسطة الكيرنل فال تستطيع رؤيتها.

Page 198: Linux Admin I II

RHCSA/RHCE Egypt ®

197 Red Hat Enterprise Linux Service Scripts

صبحي طيبه دد. محم

initوبعد ذلك يبدا عملية root partitionو initial ramdiskلكل من (mount)نقط ضم بإنشاءبعد ذلك يقوم الكيرنل والتي يقوم بعمليات كثير شرحت سابقا rc.sysinitوالتي بدوره يقوم بتشغيل السكريبت init االن تم تشغيل برنامج ال

التعديل في مراحل بدء التشغيل بواسطة سطر أوامر الكيرنلولكن المعامالت التي .معترف بهاية معامالت بشكل مناسب أل ويستجيب الكيرنل، سطر أوامريفحص فان الكيرنل عند بدء التشغيل

فإنه ، name=value عليه يكون في الشكل التالي فإذا كان المعامل الغير متعار .العملية األولى الىيتم تمريرها يتعرف عليها الكيرنل،ال .(first process)اما المعامالت االخرى التي يتعرف عليها يتم تمريرها الى اول عملية (Env variable) .بيئيكمتغير يتم تمريره

لكيرنلا، يتم استخدام سطر اوامر مثل هذه الحاالت في مما يؤدى الى فشل في بدء التشغيلفي بعض األحيان يتم اعداد النظام بشكل خاطئ .مما يتيح للمسؤول النظام الستكشاف األخطاء وإصالحها إلى مستوى منخفض،تشغيل الجهاز ل

.الحاالت في معظم الجهازنقاذ يمكن استخدامها إل (two)السيناريوهات التالية :(run level 1)الدخول الى مستوى التشغيل واحد -1

يمكن أن يؤدى الى عدم ، تصريح المستخدم أو شبكة مع تكوين مثل، عملية االقالع المراحل المتأخرة من في ت خاطئةااعداد يحدثعندما يل رقم والدخول الى مستوى التشغ، االفتراضي مستوى التشغيل ذلك يتم تجاوز ولحلقدرة النظام على الدخول الى مستوى التشغيل المناسب

فيتم ،"1"ال يتعرف على المعامل ،الكيرنلفان .الكيرنل إلى سطر األوامر "1" إلحاق مجرد ذلك عن طريق ويتم إنجاز (init 1)واحد .initالى البرنامج تمرير

والتي ال يحتاج الى الرقم السري الخاص 1 مستوى التشغيل في لى تشغيلها فإنه ؟”1" المعامل استدعاء init برنامج العندما يتم ماذا يحدث بالمستخدم الجذري.

init (bypass init process) تجاوز برنامج ال-2 أو البرنامج etc/inittab/أو للملف fstabعلى سبيل المثال، حدوث تلف للملف لكن قد تحدث مشاكل في المراحل األولى من عملية اإلقالع

initهذه المشاكل تحدث قبل البرنامج نليس حال. ال 1في مثل هذه الحاالت فان الدخول الى المستوى التشغيل etc/rc.d/rc.sysinitالنصي وقبل تحديد مستوى التشغيل.

كأنها (interactive shell) الشل التفاعلي ، وتشغيل sbin/init/ البرنامج في مثل هذه الحاالت يمكن أن يطلب من الكيرنل تجاوز والعملية األولي. initالعملية األولى بدل البرنامج

Page 199: Linux Admin I II

RHCSA/RHCE Egypt ®

kernel نواة اللينكس (الكيرنل) 198

صبحي طيبه دد. محم

وبعد ذلك تظهر الشاشة التالية .الكيرنل إلى سطر األوامر init=/bin/bashاو init=/bin/shالمعامل ويتم إنجاز هذا عن طريق إضافة initالكيرنل يؤدى الى تشغيل أي برنامج بعد العالمة = مكان ال رفي سطرا وام init=boot_prameterوذلك حيث ان كتابة المعامل

وبعد ذلك نفعل االتي

ولكن في حالة القراءة والكتابة ثم يقوم المستخدم بالبحث عن األخطاء وبعد (/)حيث انه هنا قام بعمل إعادة انشاء نقط ضم للمجلد الجذري كاالتي exitمعرفة السبب يقوم بالخروج بكتابة

)لينكس التي تدل على تحطم الكيرنلسمة من سمات ( سوف تومض للمستخدم لوحة المفاتيحولكن نالحظ ان ماذا حدث؟

يكون محمى من االغالق. PID=1 الخاص به واحد وحيث ان هذا ال PIDيكون رقم (interactive shell) الذي حدث ان هذا الشل باآلتي: exit وال نقوم كتابة االمر أي نستبدل االمر االتي المشكلة نفعلولحل هذه

init نقوم بتشغيل برنامج ال

KERNELنواة اللينكس (الكيرنل)

الذاكرة، بإدارة موارد الجهاز، وإدارة النظام، إقالع عن مسؤولة للنظام النابض القلب لينكس: هي عادة المسمى) لينكس/(جنو نظام نواة .العمليات بين المتبادل والتخاطب والعمليات، واإلخراج، واإلدخال الملفات، ونظام

متاحه للجميع من اجل التطوير فيه واستخدامه لذلك يطلق kernel المستخدمة في كتابة ال األكوادمن اهم المميزات الموجودة في اللينكس ان و open source code عليه ؟kernelالكيرنل ما هو

هي التي الكيرنلأو أي نظام أخر حيث أن BSDالقلب النابض لنظام التشغيل مهما كان نوع هذا النظام سواء لينكس ماك ويندوز وه كيرنلال) وتنظم عمله أي تعمل كوسيط بين العتاد يدير مهام الكمبيوتر من إدخال وإخراج Hardwareالموجود على الكمبيوتر ( المواردتتعامل مع

الخدمات اكواد تتواجدوفيه وتنظيم الذاكرة والتحكم بالمعالج لكي تقدم لك أحسن خدمة، المهم من كل هذا نستنج أن النواة هي أساس النظام. وإذا حدث أي تلف فيه فسوف يؤدى الى تلف وإيقاف النظام بالكامل .ام بأكملهبالنظ للتحكم األساسية :يلي لما المصممة أي وظيفتها)( اإلدارة عناصر من سلسلة إلى بنيتها تقسم أن يمكن

كيف :المعالج جدولة المهمة النواحي ومن .أولوية وبأي ترتيب، وبأي ستعمل، التي المهام ما management :اإلدارة عمليات .1 المستخدم؟ مع تفاعلية بأكثر أو ممكن أداء بأفضل المهام لتشغيل المعالج وقت نحسن يمكننا أن

مزامنة مجموعات يمكن وكيف مختلفة، آليات أي مع بعضها، مع المهام تتخاطب كيف :والتزامن العمليات بين المتبادل التواصل .2 المهام؟ من

.المرتبطة المصادر وإدارة (terminal) بالطرفيات التحكم : (I/O)واإلخراج اإلدخال .3 .االفتراضية والذاكرة الصفحات، ترحيل وخدمة الذاكرة، استخدام تحسين :الذاكرة إدارة .4 .إليها يصل وكيف وينظمها النظام في المعروضة بالملفات النظام يتحكم كيف :الملفات إدارة .5

Page 200: Linux Admin I II

RHCSA/RHCE Egypt ®

kernel نواة اللينكس (الكيرنل) 199

صبحي طيبه دد. محم

النواة بحقيقة نظرة واضحة المستخدم يملك ال التشغيل؛ نظام برمجيات طبقات تحت كامل بشكل "مخفية" النواة تكون المملوكة، األنظمة في أطراف من خاصة برمجيات أو عبر الداخلية، "سجالت" لل الخفية المحررات استخدام عبر سوى تحسينها، أو لتعديلها إمكانية أي لديه وليس

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

والشركات المؤسسات، من فالعديد إذا كان هناك خطا في االمن ويحتاج الى تعديلوهذا ما قد يسبب مشكله لبعض المؤسسات وخاصه الحساسة بتطبيقاتهم المتعلقة المشاكلة المصنع إلصالح مزاج على يمكنها االعتماد ال والعسكرية العلمية والمؤسسات والحكومات، الكبيرة،

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

""التجريبيباإلصدار من النواة، كانت تصنف إصدارات نواة لينكس إلى تقسيم ذي سلسلتين: كانت تعرف إحداهما 2.6 االصدارحتى Experimental ) اإلنتاجي اإلصدار واألخرى) 2.5و، وفرعها 2.1ووفروعها، 1.3حيث الرقم الثاني رقم فردي، مثل production

ت بسرعة والتي كانت تستخدم السلسلة التجريبية، حيث اإلصدارات التي نقل وغيرها) 2.4و ،2.2و ،2.0و ،1.2السلسلة الزوجية، مثل ( ية، يمكن أن تتصرف بشكل غيرعتاد، وغيرها. بسبسب طبيعة األنوية التجريبالمزايا، والخوارزميات، ومشغالت ال ستجد منالختبار ما ا

ية كانت األنو اإلنتاجية كن هذه اإلصدارات مناسبة للبيئاتمتوقع، مما يسبسب خسارة في البيانات، أو خلال في الجهاز، إلخ. ولهذا، لم تالمعروفة، ومع معرفات عتاد مجربة ومختبرة. كانت قليل من األخطاء جيدا وعددنتاجية أو المستقرة (السالسل الزوجية) ذات مزايا محددة اإل

التجريبية.تنشر على فترات أطول من اإلصدارات هو الرقم Yو النواة على هامة تغيرات يعني والذي الرئيسي، اإلصدار إلى Xحيث يشير X.Y.Zبأرقام يحدد اإلصدار ترقيم نواة لينكس:

ية رأو االختبا التطويرية لإلصدارات وفردي المستقرة، لإلصدارات زوجي Yالرقم :النواة أداء في تحسنا يتضمن وعادة اإلصدار،الثاني في فهو رقم إصدار البناء، ويشير إلى رقم المراجعة لإلصدار Zأما

http://www.kernel.org يارة ملف نواة لينكسستحتاج لز اصدار للنواة،للحصول على آخر :لينكس لنواة التقنية المزايا من

مقسم لكنه كوحدة، أنشئ برنامج باألساس هي (monolithic kernel) :األحادي النوع من نواة هي-1 .عناصر عدة إلى افتراضيا (modules)تدعم تحميل/تنز يل أجزاء من النواة، وتعرف هذه األجزاء بالوحدات-2

Page 201: Linux Admin I II

RHCSA/RHCE Egypt ®

(KERNEL) ضبط او تحديث النواه 200

صبحي طيبه دد. محم

المفهوم يشير هذا symmetric multiprocessing – SMP. دعم تعدد المعالجات، والمعروف بالمعالجة المتعددة المتزامنة-3المعالجات بحيث يتعامل يمكن للينكس استخدام عدد من زي.معالج مرك 64إلى األجهزة التي تحوي في أبسط حاالتها معالجين اثنين، وحتى

كل معالج مع مهمة واحدة أو أكثر. VFS (virtual file system) أنظمة الملفات: للنواة معمارية نظام ملفات جيدة، وتكون مبنيه على نظرية نظام ملفات وهمي -4

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

ميزات ومن م هذه هي التي تستعملها توزيعات اللينكس بكثره (monolithic kernel)النواة األحادية -1 االتي: عالنوهذا

بها عدد كبير من تعاريف األجهزة وسرعة عالية بسبب تعاملها مع الذاكرة مباشر شيء عيوب فلهذه النواة نصيب من العيوب لاستقرار ال مثيل لها ولكن لك

عند وأيضا حد في جزء من النواة يختل النظام كلهامعقدة جدا في برمجتها ولو حدث خطاء و :العيوب من األنوية يجب إعادة تجميع النواة من جديد لكي تعمل كما يجبإضافة أي موديل لهذا النوع

النوع من األنوية تكون ملفات مقسمة إلى أجزاء حيث إذا حدث هذا Microkernelsالنواة المصغرة-2خطاء في جزء معين فلن يفشل النظام بالكامل هذه هي الخاصية الرائعة في هذا النوع لكن هذه الخصية

يوفر و في النظام ألنها تقوم باالتصال بين األجزاء األخر مما يأخذ مساحة كبيرة من المعالج ءبطيتسبب أيضا عدد قليل من السيرفس

تستخدم في معظم أنظمة التشغيل التجارية مثل Hybrid (or) Modular kernelsالنواه الهجين -3وتشبه النواه المصغرة (Mac OS) أبلوأيضا في XPالويندوز بجميع اصداراته بداية من

(Microkernels) وهذه على عكس النواه اإلضافية لتحسين أدائها األكوادعلى بعض تحتويما عدا انها األحادية ال تستطيع تحميل الموديول في وقت اإلقالع

exokernelsو nanokernelsبعض األنوية األخرى التي ما زالت في طور التجريب مثل -4 (KERNEL) النواه ضبط او تحديث

لماذا اركب نواه جديده؟ قمة الموثوقية واألمان ألنك تبنيها بيديك-1

تحصل على نواة جديدة من الجيل الجديد قبل أن تنزل توزيعه تحملها وتتمتع بمزاياها -2 بدال 2.6 النواهفي ALSA تعريف الصوتبعض التعريفات بحاجة إلى نواة جديدة أو يكون الدعم أقوى في النواة الجديدة مثال -3 فيها في طور الكتابة أيضا آمن ntfs الذي يعطيك المزيد من الفعالية لبطاقة الصوت وتعريف OSS منالذي توقفت عن انتاجه SM56 قد تضطر أن تركب نواة قديمة من أجل برامج تعريف ألجهزة منقرضة مثل مودم موتوروال-4

فقط 2.4.5 النواهوتطوير تعريفاته فهو ال يعمل سوى على تستطيع أن تعمل نواة صغيرة أو سريعة بحسب احتياجاتك والتحكم بأي التعريفات ستكون داخل النواة وأيها تكون وحدات -5

وأيها غير موجودة modules مضافة يانا كثيرة ألنه يحتوي على شروحات وملفات مساعدة إضافة إلى التعليقات وجود الملف المصدري للنواة يساعدك أح-6

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

فتقوم بإلغائه فيوفر في مساحة الذاكرة على عكس الويندوز SCSIنظام ظة: دائم الخيار األمثل هو النسخة المستقرة وحملStable السابقة تقريبا.األخطاء كثير من ألنها تكون خالية من

لنبآء الكيرنل نجد انه يوجد في عدده صور: yum updateان يتم البناء عن طريق ملفات الكيرنل الموجودة في المستودعات الخاصة بكل توزيعه ويتم بنائها عن طريق -1

وتعتبر األفضل لوجود نسخ الكيرنل متوافقة مع التوزيعة ولكن من عيوبها عدم rpm –iوبناءها عن طريق rpmاو تحميلها في صورة .www.kernel.orgمواكبة اإلصدارات االحدث من الموقع

كاالتى: rpmاو تثبيته عن طريق االمر

فانه يثبت الجديد iوذلك ألنه يمسح الكيرنل القديم ويثبت الكيرنل الجديد ولكن مع Uال تستخدم معه rpmستخدام االمر ملحوظه عند ا بجانب القديم.

كاالتى: rpmbuildونعامله كما ذكرنا من قبل مع استخدام االمر src.rpmان يوجد في صورة ملفات مصدريه -2 نجد انه مجلد يحتوي ftp://distro.ibiblio.orgالذي يحمل معظم تحديثات وتطبيقات لمعظم توزيعات اللينكس الذهاب الى الموقع التالي-1

ولنحمل مثال النسخة ftp://ftp.redhat.comعلى معظم التوزيعات نختار التوزيعة ونحمل منه الكيرنل او kernel-2.6.38.6-26.rc1.fc15.src.rpm

فانه بطريق اليه سوف ينشأ المجلدات rpmحيث انه عند استخدام االمر rpmحيث نجد ان الملف عباره عن ملف مصدرى في صورة . rpm (BUILD,SOURCE,RPMS,SRPMS,SPECS,tmp)التي يحتاجها لكى يحول هذا الملف المصدري الى ملف من نوع

Page 202: Linux Admin I II

RHCSA/RHCE Egypt ®

(KERNEL) ضبط او تحديث النواه 201

صبحي طيبه دد. محم

لتفادى رسالة الخطأ التالية mockbuildولكن قبل التثبيت ننشأ مستخدم باسم نقوم بتثبيتها rpmبعد الحصول على الكيرنل في صيغة -2warning: user mockbuild does not exist - using root warning: group mockbuild does not exist - using root

عن طريق االتي systemمن النوع mockbuildويتم ذلك عن طريق انشاء مستخدم #useradd –s /sbin/nologin mockbuild or #useradd –r mockbuild

لذي ا ولكن لكي نكون واقعين انه ما زلنا لم نقم بتثبيت الكيرنل الجديد ولكن قمنا بتثبيت الملف المصدري للكيرنل الجديد داخل ملف الكيرنلأي كان /{HOME}$ والذي يوجد في المسار rpmbuild وذلك عن طريق انشاء مجلد اسمه src.rpm تم تحميله ذات االمتداد

/ نجد انه يحتوي على ملفات كثيره ولكن rpmbuild/SOURCE/{HOME}ولرؤية ثمار عملنا نذهب الى المسار التالي $ .المستخدم patch-3.6.38.xzوتجد أيضا الملف linux-3.6.38tar.xzاهم ملف هو عباره عن ملف مضغوط

كاالتي: rpmbuildواستخدام االمر SPECSالموجود في المجلد SPECSهو الذهاب الى الملف الخطوه التالية -3

.rpmننتظر حتى ينتهي من عمله ويقوم بتحويل الملفات المصدرية الى ملفات /rpmbuild/RPMS/i686/{HOME}$نذهب الى المسار -4

نجد الملفات التالية نقوم بتثبيتها كل واحدا على حده وبعد االنتهاء نكون قد قمنا بتثبيت الكيرنل الجديد kernel-3.6.10-4.fcl8.root.i686.rpm kernel-smp-3.6.10-4.fcl8.root.i686.rpm kernel-debuginfo-3.6.10-4.fcl8.root.i686.rpm

كيرنل ألنه يؤدى الى تقليل سرعة الجهاز debugملحوظه: يفضل عدم تثبيت ان يكون عباره عن ملفات مصدريه في ملف مضغوط-3 compilingو configurationيوجد خطوتين ال بد منهما لبناءة وهما لكيرنلولبناء ا (configuration & compiling) والتصريف عداداإل عملية

او أحد الخوادم التابعة له http://www.kernel.orgمواقع المنتجة للكيرنل مثال أحدعن طريق تحميله من : النواةالحصول على .1(FTP) فيه رغبتوتنز يل اإلصدار الذي.

استخراج النواة: .2ه عن طريق اى برنامج ارشيفى على فك ضغطب نقومو (linux-2.4.0.tar.bz2)مثال xzاو gzipاو bzip2ملف مضغوط من نوع فييأتي

وبعده رقم اصدار النواه. kernel بمجلدا ذي اسم يبدأ فسننشئ ،tarحسب نوع الملف مثال وأدوات جنو makeواداة gcc، علينا التأكد من أن لدينا األدوات المناسبة، وخاصة مصرف جنو(compiling)قبل اتخاذ خطوات التصريف

menuconfig لواجهة ncursesو modutilمثل األخرى المكملة الالزمة للعملية وبشكل عام، ننصح بتفقد توثيق النواة (سواء عبر الحزمة أو في المجلد الرئيسي للمصدر) لمعرفة المتطلبات المسبقة

#yuminstallqt3-develgcc-c++libxi-develncurses-devel In openSUSE #yast-iqt3-devel

كون ت لعملية ضبط النواة، لدينا عدد من الطرق البديلة، والتي توفر لنا واجهات مختلفة لضبط المعامالت المختلفة للنواة (والتي.ضبط النواة: 3 المجلد الجذر للمصادر البرمجية). في Configإعدادات. مخزنة في ملف

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

- make config: الحرفينمن سطر األوامر نسأل عن كل خيار، و يطلب منا تأكيده عبرy وn (no & yes) أو بكتابة كل إصدار واعتمادا علىفيه العديد من األسئلة، أل عن القيم المطلوبة. أو اإلعداد الطويل والذي نسألالخيار، أو نس

- make oldconfig: هذا األمر مفيد إذا كنا نرغب بإعادة استخدام اإلعداد المستخدم مسبقا (والذي عادة ما يكون مخزنا )المجلد الجذر للمصدر البرمجي في config.الملففي

- make menuconfig: ،نعطل ما نريد، وهو أسرع من يمكننا أن نفعله أو إعداد معتمد على قوائم نصيةmake config ) loadable moduleلجعل هذا الخيار m –للمساعدة ?-لتفعيل خيار او مسافه y -إللغاء تفعيل خيار nوتستخدم المفاتيح األتية (

- make xconfig: و يعتمد على حوارات رسومية تعتمد على األفضلx window . مكتبات سنحتاج لوجودtcl/tk

Page 203: Linux Admin I II

RHCSA/RHCE Egypt ®

(KERNEL) ضبط او تحديث النواه 202

صبحي طيبه دد. محم

اختيار، ويمكن أن يتم االمر عبرها بسرعة، وبها مساعدة بتعليقات على معظم قوأزرار وصنادي اإلعداد مبني على جداول حوارات مثبته.األداة الوحيدة التي هي make menuconfigاو make configلذلك نستخدم أن بعض الخيارات قد ال تظهر عيبا وهولكن فيها الخيارات.

يمكننا أن نتأكد من أنها توفر لنا كل الخيارات التي يمكننا االختيار فيما بينها- make gconfig: مثل االمرmake xconfig ولكن في بيئةGTK - make defconfig: يعمل على انشاء ملف االعدادات االفتراضية الخاصة بالكيرنل الجديد دون أي شاشه او أسئلة

#makemrproper- (old kernel) ويستخدم عند إعادة االعداد من جديد تعمل على إزالة ومسح الملفات القديمة التي مازالت موجوده الجديد kernel السابق سوف يزول عند بناء ال kernel أي تعديل في ال

#makeclean ليس مثل االمر السابق ولكنه يزيل فقط الملفات المستحدثة ويستخدم بعد االنتهاء من االعداد هذه أهم المالحظات عند اختيار االعدادات

وليس العكس ولكن األخير سيعمل بشكل أسرع Pentium IV سيعمل على Pentium I نوع المعالج ليتناسب مع الذي لديك مثال اختيار-1 !! أكثر من معالج يدعم ان معالجككإذا SMP اختر-2وهي وحدات اضافية يتم تحميلها وقت الحاجة فقط أي عند استخدام الجهاز الذي تعرفه وعند انهاء عمله modules تأكد من طلب دعم-3

إال إذا كنت تعرف بالضبط ماذا ‘loadable module support‘ و‘kernel module loader‘ رتزال من الذاكرة يجب أن تتأكد من اختيا .تفعل

Reiserfs كجزء من النواة وليس وحدة اضافية أما األنظمة األخرى مثل minixو msdosو vfatو ext3و ext2 ضع دعم لألنظمة-4 وحدات اضافية وال تحذفهاألنها نادرة االستخدام ضعها على شكل xfsو jfsو hpfsو ntfsو

export TERM=ansiأو export TERM=linuxال يظهر بشكل مناسب مناسبة اكتب menuconfigكان برنامج املحوظه: إذ make xconfigثم نفذه من جيد وإذا لم تعجبك فكرة القوائم النصية جرب

من الكيرنل فلقد تم دمج االمرين 2.6وبداية من اإلصدار make األمرسنبدأ التصريف :(compiling).تصريف النواه 4 make bzImage وmake modules مع االمرmake

#make هذا الجزء يمكن أن يتم بحساب المستخدم العادي أو .bzوجعلناهم في ملف واحد من النوع في هذه الخطوة نكون أتممنا إعداد وتصريف النواة

سنحتاج بالتأكيد لصالحيات المستخدم الجذر، ألننا سننتقل للجزء المتعلق بالتثبيت. من اآلن فصاعدا الجذر، لكن بتثبيت:االن سنبدأ التثبيت: -5

#makemodules #makemodules_install #makeinstall

لكى يجده /boot/الى المسار makeعلى نقل الملف المضغوط للكيرنل الجديد الذي تم انشائه عن طريق االمر وهذا بدوره سوف يقوم modulesفبإمكانك تثبيت ال make installولكن اذا كنت ال تثق في االمر lib/modules/في المسار modulesثم تحميل ال GRUBال

بطريقه يدويه. /boot/ثم نقل صورة الملف المضغوط للكيرنل الجديد الى المسار make modules_installأوال عن طريق االمر :make installتتم نقل الملف المضغوط للنواه الجديد بالطريق اليدوية كاالتي ويمكن االستغناء عنها عن طريق االمر و

cp arch/i386/boot/bzImage /boot/ cp system.map /boot/

Page 204: Linux Admin I II

RHCSA/RHCE Egypt ®

patching the kernelتحديث او ترقيع نواة اللينكس 203

صبحي طيبه دد. محم

باسم /boot/المجلد سنجد النواة القديمة في نفس عادة /boot/وضعناها في المجلد حديثا والتيهو النواة المصرفة bzImageالملف vmlinuz .حال في القديمة النواة على يفضل اإلبقاء نواتنا، على نحصل عندما .القديمة للنواة رمزي كرابطوحده او متبوع برقم اإلصدار

وهو للنواة المتاحة الرموز يحوي system.mapالملف .القديمة استعادة يمكننا وبهذا سيء، بشكل الجديدة عمل حال في أو خطأ أي حدوث إلنشاء تحتاج قد النواة بدء عند أنه العتبار أيضا نحتاج النقطة، هذه في .المجلد نفس في أيضا موضوع وهو النواة؛ بدء لعملية ضروري ؛ ومتحكمات RAID) مثل بعض متحكمات األقراص من أمثال driversوالتي تحتوي على تجميعه من المشغالت ( initrdنوع من ملفات

إلقالع بقية النظام في المرحلة الثانية. الوسائط، والتي قد تكون ضرورية، وبهذا يمكن الوصول إلى القرص :كاالتي mkinitrd األداةباستخدام يدويا ، فيمكن إنشاؤهاinitrdفي حال الحاجة إلى صور

[root@dhcppc4 boot]#mkinitrd-f/boot/initramfs-3.4.60.img 3.4.60 grub الانه في ريد هات يتم انشائه اليا في مرحلة تحديث ونالحظ

إضافة وتتم فيه ب GRUB الولكن المستخدم االن هو لكن هذا يعتمد على نظام إقالع لينكس :إخبار النظام أي األنوية عليه اإلقالع بها .6 فيولكن نالحظ grub.confويتم كتابته في الملف /boot/ إلى الملفات بنقل) initrd و system.mapو vmlinuz( النهائية الخطوات

عن طريق العملية grubانه يتم تحديث ملف ال العادةاإلعداد القديم؛ وفي نفس تعديل أو بإزالة اإلقالع، محمالت ويحدث بأكملها بالعملية يقوم األمر هذا أن االعتبار بعين نأخذ أن علينا لكنو

/boot/ الوقت، يمكن أن يغير الروابط المبدئية في المجلدالتقنياتأما في دبيان، فعلينا استخدام . Install ، يتم إنشاؤها في فيدورا/ردهات آليا بالخيارinitrd فيما يتعلق بإنشاء

mkinitramfs باستخدامأو ،) واألقدم 2.6.12لإلصدارات ) mkinitrd باستخدام

واعداد ملف initrdوالتي تشتمل للكيرنل األلىاجل التثبيت من egakacp-kernel-newويمكن أيضا استخدام األداة -4 وبعد المهمات األخرى. grubاإلقالع

new-kernel-package [-v] [--mkinitrd] [--rminitrd] [--dracut] [--initrdfile=initrd-image [--depmod] [--rmmoddep] [--kernel-args=args] [--remove-args=args] [--banner=banner] [--multiboot=multiboot] [--mbargs=mbargs] [--make-default] [--add-dracut-args] [--add-plymouth-initrd] [--host-only] <--install | --remove | --update | --rpmposttrans> <kernel-version>

للينكساو ترقيع تحديث PATCHING THE KERNELنواة ا

أيضااقيع على النواة شائعا رفي بعض الحاالت يكون تطبيق ت بين المصدر البرمجي األصلي نصي، يحوي االختالفات ASCIIآسكيذي العالقة بنواة لينكس هو ملف :(patch)او التحديث ملف الترقيع

)man patch. برنامج الترقيع (انظر إلىدوسطور الكوواألكواد الجديدة، مع معلومات إضافية عن أسماء الملفات (أخطاء) إلى إصدار منتشر عندما يتطلب عتاد خاص بعض التعديالت على النواة، أو عند اكتشاف عللاقيع ضرورية رعادة ما تكون الت

اة جديدة)، من الشائع نشر ترقيع بدال من نو بكثرة للنواة، أو عند وجود ميزة جديدة معينة نرغب بإضافتها. لتصحيح المشكلة (أو إضافة ميزةكل نشاء إصدار جديد للنواة. فيتحسينات عديدة للنواة السابقة إل جديدة بأكملها. عندما يكون هناك العديد من هذه التراقيع، يتم إضافتها إلى

الخطأ يؤثر على عمل أو استقرار النظام، ولم يكن بإمكاننا االنتظار حتى اإلصدار القادم األحوال، إذا كان لدينا عتاد كثير المشاكل، أو إذا كان للنواة؛ فسيكون علينا أن نطبق الترقيع.

hotfix على العكس ال kernel يحدث تغير في اكواد ال patch الخاص بالويندوز ان ال hotfix وال patchالفرق بين ولتفعيل الباتش نتبع الخطوات التالية

patch على ال الحصول-1او في )http://www.kernel.org( أماكن مختلفة. عادة يمكننا إيجادها في موقع التخزين للنواة من (patch)يمكن الحصول على التراقيع

http://www.linuxhq.com لينكس تصحيحات توزيعاتوتوفر بعض (patches) .لكن من األفضل البحث في المواقع القياسية أيضام ومن الطرق األخرى مصنع العتاد، والذي قد يقد " "القراصنة تراقيع وذلك للتأكد من أن التراقيع موثوقة ولتجنب المشاكل األمنية المحتملة من

) NVIDIAأجهزته بشكل أفضل (ومن األمثلة المعروفة على ذلك إنفيديا تعديالت معينة على النواة (أو المتحكمات) وذلك لكي تعمل bz2 على هيئة ملف مضغوط patchيأتي -2

) gz.وهو gzipبامتداد لكن يمكنك أيضا أن تجده لفكه؛ bunzip2(لذلك نستخدم bzip2نوععادة ما يتم توزيع الترقيع في ملف مضغوط من patchxxxx-2.6.21-pversion.bz2 ويكون شكله كاالتي:

xxxx ما تتعلق بنوع أو هدف الترقيع رسالة (patch)إصدار النواة الذي يطبق عليه الترقيع هو 2.6.21

pversion الترقيع إصدار رقم إلى تشير لكن عادة ما الذي يرافق الباتش readmeالتي علينا اتباعها في ملف اتمليعتما إن نحصل على الترقيع فسيكون علينا تطبيقه، وسنجد ال

المصدرية، وتطبيقه على مصادر لها) خطوات فك ضغط الترقيع في مجلد الملفات تتبع العملية (بعد التأكد من توفر المتطلبات المسبقة :النواة، على سبيل المثال

الحالي وفك ضغط الملف فيه kernelنقوم بنقله الى مجلد ال -3cd /usr/src/linux ( أو أي إصدار /usr/src/linux- 2.6.21أو ) bunzip2 patch-xxxxx-2.6.21-version.bz2

patch –p1ثم نقوم باستخدام االمر -4patch -p1 < patch-xxxxx-2.6.21-version or patch –d patch_name -p1

Page 205: Linux Admin I II

RHCSA/RHCE Egypt ®

patching the kernelتحديث او ترقيع نواة اللينكس 204

صبحي طيبه دد. محم

patch –p1 -Rنستخدم االمر patchإللغاء أي ملحوظه:

(MODULES) وحدات النواة

يتكون من جزئيين kernel البد وان نعرف ان ال core -----vmlinuzنواة اللينكس -1

lib/modules/وتوجد في المسار التالي modules -----initrdالتعريفات -2 من 1.2متوفرة منذ اإلصدار ات) عند الحاجة، وذلك إلكمال وظائفها (هذه اإلمكانية للنواة القدرة على تحميل أجزاء متغيرة من الكود (وحد

تكون الميزة التي توفرها الوحدة ضرورية، عندما ال معينا) (driver)أن تضيف الوحدة دعم نظام ملفات أو جهازا (عتادا فمثال يمكنالنواة). اال عند الحاجه (driver)الخاصة باألجهزة المتصلة بالكمبيوتر modulesأي بمعنى اخر انه ال يقوم بتحميل ال فيمكن تنزيلها لتحرير الذاكرة

إصدارات (في kmod ويعرف بعند الطلب، تحدد النواة الخاصية غير المتوفرة في النواة في تلك اللحظة، وتقوم باالتصال بأحد خيوط النواة لتحميل الوحدة من السلسلة باسم الوحدة أو في محاوله modprobe) والذي ينفذ االمر kerneld على المراقب من النواة كان يطلق 2.0الفرع

اسم مستعار بين االسم والمعرف.على شكل etc/modules.conf/ عبر معرف عام؛ هذه المعلومة موجودة في الملفأخرى. وفي النهاية، يتم رى إذا كان هناك اعتماديات من وحداتلن lib/modules/version_kernel/modules.dep/ومن ثم نبحث في

insmod المجلد القياسي للوحدات) باألمر( lib/modules/version_kernel/ تحميل الوحدة من المسار#uname-r الى شغال الكيرنلبتعرف ايه

: Modules العتاد أو بما تسمى (تعريفاتModules) ويقابلها في الويندوز (Driver طبعا هذه تعمل في الخفاء المستخدم ال يالحظ ( .عملها لكنها شبكة من المتاهات تقوم بتعريف األجهزة المتواجدة حتى يسهل استخدامها

الوحداتبعض األدوات التي تسمح لنا بالتعامل مع 2.6إلدارة وحدات الفرع module-init-toolsوالتي حلت محلها modutilsاسمهاعادة ما تظهر في حزمة برمجيات

1.lsmod :الوهمي من الملف الخصه به نرى الوحدات المحملة في النواة (يتم الحصول على المعلومات من خالله/proc/modules ( صفرا. استخدام الوحدات؛ هذا يسمح لها بأن تحمل إذا كان العداد وأحجام الوحدات بالبايت، وعداد وتظهر االسم، واالعتماديات

lsmodusb_storage#كاالتي lsmodولعرض تعريف عن وحده معين نستخدم اسم الوحدة بعض االمر

2.modprobe: واعتماديتها ويستخدم معه الخيار تحميل وحدة ليحاو–r إلزالة وحده من النواه #modprobeusb_storage #modprobe-rusb_storage

3.insmod: وحده معينه ليحم 4.depmod: .يحلل االعتماديات بين الوحدات وينشئ ملفا باالعتماديات 5.rmmod: وحده من النواه. ليزي العالقة بالوحدة او والتي تعرض قائمة ببعض المعلومات ذات modinfoلمث الوحدات:أوامر أخرى يمكن استخدامها لتصحيح وتحليل .6

ksyms أيضا في موجودة تسمح لنا باختبار الرموز المصدرة من الوحدات (وهي 2.4ى اصدار والتي فقط ف/proc/ksyms ( محددة. على ومعامالت اختيارية insmod لألمرعادة ما يتم تحديد اسم الوحدة لتحميلها، سواء عبر النواة نفسها، أو بتنفيذ المستخدم

. فمثال:IRQاو DMAسبيل المثال، في حالة األجهزة، فمن الشائع تحديد عناوين منافذ الدخل والخرج أو مصادر#insmodsoundxio=0x320irq=5

في الريد هات KERNEL ال عأنوا ملحوظه:1- kernel-PAE (SMP) support x86 ------up to 32 processes & 16G RAM 2- Kernel support x86 ------up to 32 processes & 4G RAM x64 ------up to 64 processes &512G RAM 3-kernel-xen support x86 ------up to 32 processes & 16G RAM (Dom0 limits) x64 ------up to 126 processes&512G RAM (Dom0 limits)

Page 206: Linux Admin I II

RHCSA/RHCE Egypt ®

The CUPS print system and system-config-printer خدمات الطباعة 205

صبحي طيبه دد. محم

THE CUPS PRINT SYSTEM AND SYSTEM-CONFIG-PRINTER خدمات الطباعةهذا .LPD (Line Printer Daemon) هذا النظامسمي ؛ BSDيونكس جنو/لينكس من تفرعات في طباعة الخاص بالخادم الينحدر مقدمه:

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

لنطاق واسع من الطابعات التي postscript يقدم خرجا من نوع الذي Ghostscriptأخرى، مثل نظاممع برمجية شائعة LPDيجتمع نظام وهو النوع الثاني من يونكس system Vلها. ويوجد نظام اخر خاص ب يتوفر لديه المشغل الصحيح

ل، واألقCUPSتاحة للطابعات. النظامان هماأكثر، وتجعل مشغالت أكثر م تقدم مرونة لكن خالل األعوام الماضية، ظهرت أنظمة أكثرو .جنو/لينكس األساسيةمعيار CUPSفي الحقيقة، لقد صار LPRngشهرة للمستخدمين أنواع ألنظمة ذات مستوى أعلى، لكن الفروق بينهما ليست واضحة لهذه الدرجة بالنسبة) LPRngو CUPS(أيكالهما

lprأوامر لطباعه وهو على سبيل المثال، تستخدم نفس System Vو BSDلنظاميية رالعاديين، إذا ما قورنا باألنظمة المعيا :الخاصة بالطباعة كل األنظمةيلي فيما

BSD LPD :أحد المعايير القياسية في يونكس، وتفترض بعض التطبيقات أن األوامر ونظام الطباعة سيكون هو لكنه ال قابل لالستخدام، LPDنظام . BSD LPDوأوامروظائف LPRngو CUPS متوفرين، ولهذا يحاكي كل من

أحدث. أخرى ، ولهذا نقلت التوزيعات إلى أنظمةبالتحكم بالوصول يتعلق األمرخاصة عندما يتيح مجاال كبيرا للضبط، LPRng: نظامصمم في األساس ليستبدلLPD المختلفة. فمعظم اإلعداد مشابه، وهناك فقط بعض الملفات ولهذا

CUPS: (Common Unix Printing System) هو أبرز تفرع من نظام BSD تقدم .، وضبطه هو نفسهاألصلية ). LPRngالطابعات المتاحة (كما في فيه المعلومات إلى التطبيقات عن

بالنسبة للطباعة في جنو/لينكس، فالعديد من النواحي يجب أخذها في الحسبان:

نظام الطباعة المستخدمBSD LPD أوLPRng أوCUPS

عن طريق هاز الطباعة (الطابعة): يمكن أن يكون له اتصال محلي بالجهازج (serial or parallel cable or usb)، .الشبكةأو يكون على

التخاطب المستخدمة مع الطابعات أو أنظمة الطباعة: سواء كانت اتصاالت طرقTCP/IP كأن تكون مباشرة)HP معLDAP (أخرى ذات مستوى عال معتمدة على أومثال TCP/IP مثلIPP تعتمد)CUPS أو (JetDirect ) بعض ) وغيرها.HPطابعات

المستخدمةأنظمة الترشيح (filtering system) : يدعم كلة نظام طباعة واحدا أو أكثر منها.

مشغالت –سبيل المثال على –مشغالت الطابعات: في جنو/لينكس، هناك أنواع قليلة مختلفة؛ قد نذكرCUPS أو للنظاممشغالت لتعديل الصور والرسوم أيضا Gimp)؛ لبرنامج HPو Epsonتوفرها(على سبيل المثال، ألطراف خارجية

وغيرها. Ghostscriptومشغالت ;Foomatic محسنة لطباعة الصور

:كاالتيوتكون هي نفسها لألنظمة المختلفة للطباعة األوامر األساسية

lpr: او قائمة االنتظار الطباعة المبدئية طابور ترسل الوظيفة إلى(print queue) ،الطباعةمراقب عن طريقCUPS .ليستخدم مع األوامر األخرى (job number)وظيفةومن ثم يعطيها رقم LPD او

)، وجهاز spooling directoryالتخزين المؤقت ()، مجلد pint filter) تتكون من مرشح الطباعة (print queueوقائمة االنتظار ( )backend deviceالخلفية (

الفصل

أدوات مدير11 النظام

System Admin Tolls

Page 207: Linux Admin I II

RHCSA/RHCE Egypt ®

The CUPS print system and system-config-printer خدمات الطباعة 206

صبحي طيبه دد. محم

lpq: قائمة االنتظار.الوظائف في ديسمح لنا هذا األمر بتفق

بعض األوامر األخرى المستخدمة في الطباعة

cupsنظام الطباعة خوادم من هذا النوع يعني أنه يمكنه التفاعل معمما BSD LPDمعمارية جديدة لنظام الطباعة مختلف نوعا ما؛ له طبقة توافقية مع

CUPSإضافة إلى ذلك، يستخدم، CUPS يكون كل من الخادم والعميل من نوع لكنه متوفر فقط عندما) http(يعتمد على IPPويدعم أيضا .إمكانيات الطابعة للتعرف على PPD نوعا من المعرفات يدعى

CUPS الطباعةقوائم انتظار باستخدامتنظم الوصول إلى الطابعات (print queues) ، قائمة انتظار الطباعة واحد لكل يوجدحيث .متوفرةال اتالطابع

.really_slow_dot_matrix ، أوsalesو، hp_color ، مثلباألسماء يتم تعينها وتعريفها (print queues) الطباعةقوائم انتظار daemon) (cupsd الخادمعن طريق cups تتم إدارة نظام الطباعة

etc/cups/المجلد الملفات الموجودة في من (configuration)إعداده يحدد (cupsd daemon)الخادم موجودة في المسارات األتية: cups daemonالخاصة بالخادم log لاسجالت

/var/log/cups/ /var/log/cups/access_log /var/log/cups/error_log.

ئمه مثال على ذلكفي القاتتخلص من الوظائف lprm -P Epson 15 هالقائم من 15يحذف الوظيفة ذات الرقم

Page 208: Linux Admin I II

RHCSA/RHCE Egypt ®

The CUPS print system and system-config-printer خدمات الطباعة 207

صبحي طيبه دد. محم

usr/sbin/cupsd/يوجد في cupsd daemonالخادم

بالطرق األتية: cups (cups printing system)يتم التعامل مع نظام الطباعة

عن طريق األداة الرسومية system-config-printer

عن طريق األوامر األتية(lpr, lprm, lpstat, lpadmin and other)

عن طريق المتصفحhttp باستخدام بروتكول النقلTCP على سبيل المثال 631والبورتhttp://localhost:631

ويتم التحكم فيه باألوامر التي ذكر شرحها. cups servicesيعتبر المسئول عن تشغيل الخدمة cupsd daemonلخادم ا ويتم إيقاف وتشغيل الخادم كاالتي:

#servicecupsstart(stop, restart, status) #chkconfigcupson (off, --list)

cups (Creating a CUPS print queue)انشاء قائمة الطباعة الخاصة ب وتتم في ثالث خطوات

.(new queue) الجديدةنتظار القائمة التحديد اسم -1 .جهاز معينكيفية الرجوع إلى و ،(backend device) استخدامهالذي يتم الحالي نوع الجهاز ما cups خبارإ-2

مثلالكمبيوتر جهاز الجهاز إلى (device node)هو الرابط مايجب عليك تعريف مباشرا، أيمحليا متصلة إذا كانت الطابعة / dev/lp0 أو / dev/usb/lp0

(أي، اسم المضيف) وهوية الطابعة.إذا كانت الطابعة متاحة عبر الشبكة، يجب تحديد عنوان الشبكة

Page 209: Linux Admin I II

RHCSA/RHCE Egypt ®

The CUPS print system and system-config-printer خدمات الطباعة 208

صبحي طيبه دد. محم

الطباعة. للجهاز (appropriate filter) المناسب و المرشحالمصفاة اد تحدي-3 .system-config-printerالتطبيق، عن طريقتشغيل ريد هات إنتربرايز لينوكس الطابعة

كيفية إضافة طابعه جديده؟ Figure 1 the system-config-printer Figure 2 selecting a Queue typeنوع االتصال

Figure 3 Selecting Print Filter (ex. select Epson) Figure 4 Choosing a Print Filter

Figure 5 Naming a New Printer Queue Figure 6 Newly Installed Queue

Page 210: Linux Admin I II

RHCSA/RHCE Egypt ®

The CUPS print system and system-config-printer خدمات الطباعة 209

صبحي طيبه دد. محم

Remote CUPS Print QueueAdding aإضافة طابعه جديده والوصول اليها عن طريق الشبكة التي من شأنها أن تسمح للمستخدمين بالوصول إلى طابعة ليزر عن بعد (print queue) الطباعةاآلن دعونا نضيف قائمة انتظار

ركة وتمت مشا ،print.example.com جهاز عنوانه على lplaser اوقد تم بالفعل تكوين قائمة انتظار الطباعة المناسبة اسمه.عبر الشبكة المحلية.قائمة االنتظار لشبكة االتصال

تحت قائمة selecting a Queue typeفيسرد لنا قائمه فيها نوع االتصال newونختار system-config-printerنبدأ وتتم كاالتي:network printer نختارFind Network Printer وندخل اسم المضيف(hostname) instructor.example.com. ونضغط على

Remote Printerفتظهر خاصية FINDالذرار

Figure 1.11. The system-config-printer Application

Figure 1.12. Selecting Print Filter (ex. select Generic) Figure 1.13. Choosing a Print Filter

Page 211: Linux Admin I II

RHCSA/RHCE Egypt ®

The CUPS print system and system-config-printer خدمات الطباعة 210

صبحي طيبه دد. محم

Figure 1.14. Naming The New Remote Printer with system-config-printer Application

Setting the Default Print Queueاالفتراضي قائمة انتظار الطباعة وضع ،(system default print queue) الطباعة االفتراضية قائمة انتظار تستخدم CUPS طباعة مع نظام التي تتفاعل معظم األوامر

) .Print environmental variable (متغير الطابعة البيئي أو الطابعة-P سطر األوامر خيار مع قائمة االنتظار يتم تحديد ما لم .نظاماالفتراضية لل قائمة االنتظار سوف يكون متعددةالقوائم ال من تحديد أي رغب فيي مسؤولال سيكون غالبا ما

قائمة االنتظار على من خالل تسليط الضوء بسهولة االفتراضية قائمة االنتظاريتم تعريف ،system-config-printer عند استخدام .التغييرتطبيق" الرتكاب " ثم، "االفتراضي"، واختيار المطلوب

، واختيارالقائمة العلويةمن (printer)عن طريق اختيار وتتم .لطابعةا تااعدادلتغيير system-config-printerاستخدام تطبيق " Properties تغيرهبقا يمكن امحددة سالمعايير الالحوار، أي من مربع من ضمن .حوار متعدد مقسم إلى صفحاتمربع "، يفتح.

كيفية انشاء سيرفر خاص بالطباعة

يعتمد االتصال فيه (cups printing queue)نقوم بإنشاء برنامج الطباعة system-config-printerوذلك باستخدام التطبيق على الشبكة كالمثال السابق وبعد االنتهاء نفعل االتي:

كاالتينجعله يظهر لنا مربع حوار SETTINGثم SERVERمن القائمة العلوية نختار

Page 212: Linux Admin I II

RHCSA/RHCE Egypt ®

The CUPS print system and system-config-printer خدمات الطباعة 211

صبحي طيبه دد. محم

كاالتيpolicies ليظهر لنا مربع حوار نختار فيه ال propertiesثم printerوبعد ذلك نختار أيضا من القائمة العلوية نختار

BROWSING FOR AVAILABLE PRINT QUEUES متاحال تصفح قوائم انتظار الطباعة

افتراضيا في ريد هات . (cups queue)المتاحة تلقائيا قوائم انتظار الطباعة هلديه القدرة على "تصفح" الشبكة، واكتشاف cupsالخدمة هايمكن تمكين ميزة التصفح أو تعطيل .المحلية وتلقائيا إضافة أي الطابعات المكتشفة IP تصفح شبكةب cupsتقوم إنتربرايز لينوكس، سوف

" على لوحة (Show printers shared by other systems) األخرىعن طريق اختيار "عرض الطابعات المشتركة من قبل األنظمة ." المشار إليه أعاله (Server Settings) إعدادات"خادم ، تحت عنوان system-config-printerتطبيق الفي قائمة قوائم انتظار الطباعة المتاحة في المكتشفة تظهرالطابعات ف هاتمكين بمجرد

"remote printer." ويقوم HTTPDيعمل على تدعيم المتصفح (cupsd daemon)الخادم حيث نجد ان system-config-printerكبديل للنظام

لالتصال بالطابعة http://localhost:631في أي متصفح ويب لذلك نستخدم العنوان التالي (port 631)باالتصال به عن طريق المنفذ system-config-printerوالتحكم فيها بدل من التطبيق

Page 213: Linux Admin I II

RHCSA/RHCE Egypt ®

The CUPS print system and system-config-printer خدمات الطباعة 212

صبحي طيبه دد. محم

. (print queue) الطباعةقوائم انتظار بفحصيسمح ألي شخص على الجهاز المحلي cupsالخاصة بالخادم واجهة الويب ويب من المتصفحتصاالت اال يسمح لذلك ،(localhost interface) المحلييربط فقط إلى واجهة المضيف cupsd Daemon ادمالخ

المستخدم تصريح لكي يعامل cupsلتعديل حالة طابعة، يتطلب . (administrative interface) المديرأجهزة أخرى إلى واجهة استخدام واجهة الويب ألداء المهام اإلدارية، مثل تمكين فيصبح لديه الصالحية من بمجرد حصوله على هذا التصريح، .جذري كمستخدم

أو تعطيل قائمة انتظار طباعة، أو إلغاء أي مهام الطباعة المعلقة.

Page 214: Linux Admin I II

RHCSA/RHCE Egypt ®

System Logging عند دخول النظام 213

صبحي طيبه دد. محم

cupsdisableو cupsenableو lpadminاألوامر يمكن استخدامها إلضافة قائمة انتظار طباعة جديدة، وإزالة قائمة انتظار الطباعة الحالية، أو تعيين نظام قائمة انتظار lpadminاألمر

الطباعة االفتراضية.

.على التوالي، قائمة انتظار الطباعة أو تمكينمسؤول لتعطيل تسمح ل cupsdisableو cupsenable األوامر

و أوامر الطابعه cupsوواجهة المتصفح الخاصة ب printer-config-systemالفرق بين واجه التطبيق printer-config-System :المزايا

.سهولة االستعمال العامة .بسهولة(browsing)وتصفح (network sharing) تبادليتم تكوين شبكة

:العيوب ال يمكن أن يكون آليا. .قوائم انتظار الطباعةال يسمح تمكين أو تعطيل

cupsواجهة ويب :المزايا

.)linksباستخدام النص (مثل عن طريق متصفح ويبيمكن الوصول إليها .متوفرة في جميع إصدارات يونيكس :العيوب

.جعل تكوينه اليامن الصعب .ال يسمح تكوين شبكة تبادل أو التصفح بالطابعةالخاصة رسطر األوام

:المزايا automateلتكوينها اليا سهلة .متوفرة في جميع إصدارات يونيكس التر منال.تتوفر في بيئة .السرعة :العيوب

ات لتكوين شبكة تبادل أو التصفح.أي أدوال يوجد .منحنى التعلم حاد

SYSTEM LOGGINGدخول النظام عند

:rsyslogالسيرفس .الجهات المالئمة الرسائل إلىهذه إلرسالواإلداريين (log message) سجلنشاء رسائل للتطبيقات إل آلية مركزية rsyslog خدمة يوفر

من القيم. قائمة محددة مسبقا يتم اختياره من كل منها يجب أن، األولوية)( priorityو (المنشأة)facility ال rsyslog إدخال ويجب أن تشمل facilityوفيما يلي عرض لل

Page 215: Linux Admin I II

RHCSA/RHCE Egypt ®

System Logging عند دخول النظام 214

صبحي طيبه دد. محم

priorityوفيما يلي عرض لل

rsyslogd daemonتمريرها إلى الخادم المناسبتين، يتم (priority)واألولوية (facility)بالمرفق (message)بمجرد ادراج الرسالة

من قبل االمرين يمكن السيطرة عليها و ،rsyslog السيرفسعن طريق لينكس هات إنتربرايزريد قبل من rsyslogd daemon الخادم يدارservice وchkconfig.

etc/rsyslog.conf/الملف rsyslogd daemon ما ينبغي القيام به مع مختلف الرسائل التي يستلمها من الخادم etc/rsyslog.conf/يحدد ملف االعداد

var/log/maillog/إلى الملف تهاكتاب يجب (mail facility) البريدأن كل الرسائل من مرفق يوضح السطر األول ، أو مرافق authprivاو (mail.none) التي ليست من البريداألخرى أو info (priority)ات ولوياألأن كل الرسائل مع يحدد السطر الثاني

cron ينبغي أن تكون مكتوبة إلى ملف/var/log/messages. facility.priority action

(two separated tokens) اثنين من الرموز ويكونا مفصولين نيتكون من جزئيي etc/rsyslog.conf/ي ملف االعداد كل سطر موجود ف .مع الرسالة ما يجب القيام به يحدد الثاني المميزالرمز و، ذات الصلة التي هي الرسائل يحدد االول الرمز المميز (specific facility) محددال من المرفق كافة الرسائل تعتبر حيث، facility.priorityأزواج من منتكون ييجب أن األول الرمز المميز

.الصلة ذات (specific priority) المحددة األولوية أعلى من أو ةمساويويكن أيضا استخدام العالمة (semicolon) (;)يتم فصلهم ب بالفاصلة مع النقطة facility.priorityاذا كان يوجد العديد من األزواج

. (priority)األولويات أو (facility)المرافق لتتناسب مع جميع كما هو متوقع يمكن استخدامها (*)

Page 216: Linux Admin I II

RHCSA/RHCE Egypt ®

System Logging دخول النظامعند 215

صبحي طيبه دد. محم

rsyslogd daemonوفى المثال التالي سوف نرى شكل ونوعية الرسائل التي يعطيها لنا الخادم

كاالتي:حيث نجد ان أي سطر يتكون من عدة أجزاء

الوقت الذي تم فيه انشاء هذه الرسالة-1 عن بعد للمراقبة األجهزة ةاسم المضيف الخاص بالجهاز الى قام بالشيء الذي نتج عنه هذه الرسالة وهو مفيد جدا عند اتصال األجهز-2 الذي قام بإنشاء هذه الرسالة. (application or facility)اسم التطبيق او المرفق -3 مع التطبيق الذي قام بإنشاء بهذه الرسالة. process IDفي بعض األوقات يتم ادراج -4 محتوى الرسالة الذي يخبرك بأمر ما متعلق بهذا التطبيق-5

Page 217: Linux Admin I II

RHCSA/RHCE Egypt ®

System Logging عند دخول النظام 216

صبحي طيبه دد. محم

niThe kernel log ولوج الكيرنل او بدء تشغيل الكيرنل ال تستطيع ، النواة التطبيقات على عكس .(log message) سجل رسائل أحيانا حد ذاته ينشاأي مستخدم وتطبيقات النظام، فان النواة في مثل

في (kernel log message) النواة رسائل سجل يتم تخزين من ذلك، . فبدالrsyslogd daemon الخادم أو نظام الملفات إلى أي الوصول .dmesg وتسمى هثابت مساحةذات مخزن مؤقت .بطريقتين مختلفتين المستخدم من قبل تطبيقات النواة رسائل يمكن فحص

.(standard out) القياسي خرجال إلى dmesg محتويات المخزن المؤقت تفريغسوف يتم و، dmesg تشغيل األمر يمكن للمستخدم، أوال proc/kmsg/ خاصالملف ال عن طريق عملية الكيرنل من قبل أي قراءة رسائل يمكن، ثانيا

افتراضيا هايتم تمكين والتيالستعراض رسائل الكيرنل imklog وحدةالباستخدام فقط يقوم rsyslogd daemon الخادمكلما و، proc / kmesg / الملف قراءةفي أنه يقضي حياته. rsyslog message proxy إلى رسائل الكيرنل بمثابة تعتبر imklog الوحدة

(kern facility) كيرن مرفقال باستخدام rsyslogd daemon الخادم إلى، وإحالتها يعيد توجيه الرسالة فإنه قامت الكيرنل بعرض الرسائل، .رسائل التطبيق، تماما مثل var/log/messages/ في الملف النواة أيضا يتم تسجيل رسائل لذلك،

اسم الملف .الملفات أو الدخول الخاصة بهم ملف تنفذ األكثر تطورا . العديد من التطبيقاتrsyslog تستخدم السيرفس تطبيقاتال ليس كل

.على التطبيق تعتمد اعتمادا كليا الخاصة بتطبيق محددتنسيق او شكل الرسالة و var/log/داخل المجلد الخاصة بهم ملفات السجل تخزينان سجلت التي التطبيقات، ينبغي لجميع من جانب االتفاقية

loggerاالمر لكال الرسائل االداةهذه استخدام ميت .وعرض محتوياته log server بالالتصال ا اوايض سجلنشاء رسائل يسمح للمسؤولين إل logger األمر

التقارير التي توضح الحالة داخل سكريبت الشل.و rsyslog (debugging the rsyslog service) السيرفس الخاصة باألعطال .التالي على النحو logger يستخدم األمر

Page 218: Linux Admin I II

RHCSA/RHCE Egypt ®

System Logging النظام عند دخول 217

صبحي طيبه دد. محم

loggerامثله على االمر var/log/messages/ إلى الملف يتم توجيههايؤكد أن و ،loggerاالمر مع بإنشاء رسائليقوم مسؤول، الهذا المثال في

514ويستخدم البورت log server الولزيادة األمان ألهمية هذه الرسائل يتم وضعه في سيرفر خاص له ويسمى

يعمل على rsyslogd daemonولكن عند امتالء المجلد بالرسائل يؤدى ذلك الى مشكله في حفظ الرسائل الحديثة لذلك فان الخادم حتى عند امتالء المساحة او عندما يصبح حجمه كبير جدا. ويتطبق هذا أيضا على التطبيقات log المحافظة على متابعة انشاء رسائل ال

الخاصة به. log وإدارة ملفات الالتي تعمل على انشاء ليعمل على تدوير أقدم الرسائل واستخدامها من جديد. logrotateمشكله امتالء المساحة باستخدام االمر RHELولقد حلت

ويكون (time stamp)، وبعضها تكون عباره عن تاريخ االنشاء زائدة ملفات لديها سلسلة من ملفات السجل أن معظم الحظ في المثال التالي، secure.20110724 ،secure.20110801 ويوجد له عدة ملفات كاالتي secure الملف، على سبيل المثالعباره عن امتداد الملف.

secure.20110807 ،وsecure.20110814. تدل على وجود التطبيق المميزة التي هي العالمة هذه logrotate

وانشاء ملفات جديده فارغه ويكون الحذف على حسب secure أسبوعيا يقوم بحذف الملفات القديمة الخاصة ب logrotateونجد هنا ان االمر الخاص بالنظام في المجلد crontabكيف يبدا هذا االمر وذلك عن طريق تسجيله في الملف نوقت االنشاء المكتوب ضمن امتداد الملف. ولك

/etc/cron.daily/

etc/logrotate.conf/هو logrotateعداد والملف المسئول عن ا عليه logrotateوهذه الذي يتم تنفيذ االمر /etc/logrotate.d/ملفات السجل األخرى يتم تسجيلها في المجلد

Page 219: Linux Admin I II

RHCSA/RHCE Egypt ®

التشفير 218

صبحي طيبه دد. محم

4الخاصة بأمر معين؟ logrotateما هي عدد ملفات السجل التي يمكن ان يحتفظ بها االمر

بيه تظهر للمستخدم عند الدخول الى نظام التشغيليعباره عن ملف نصي يمكن كتابة أي رسالة ترح etc/motd/الملف -ملحوظه: etc/x11/xorg.conf/يكون x windows الخاص بال ملف االعداد

(lastlog – faillog)وهما (system login)يوجد امرين للتحكم في رسائل النظام lastlog Lists login records faillog Lists failed login attempts

هذين االمرين مهمين جدا في اصطياد من يحول عمل هجوم على نظام التشغيل وهكذا كاالتى: lastlogالخيارات المستخدمة مع االمر

-b DAYS Displays results older than DAYS لعرض النتائج قبل هذا اليوم المحدد -u LOGIN Displays results for the user LOGIN لعرض النتائج الخاصة بالمستخدم محدد

كاالتى: faillogالخيارات المستخدمة مع االمر -a Displays all events لعرض كل االحداث -l SEC Locks the account for SEC seconds after a failed login -u LOGIN Prints records for user LOGIN لطبع االحداث الخاصة بمستخدم معين

التشفير

Encoding – Encryption – Hashing Encoding :(الترميز) - التحول من شكل الى شكل اخر والعكس وتدعم من قبل معظم أنظمة التشغيل مثل بيانات على هيئةbinary يتم

ارسالها عن طريق الشبكة او رؤية حروف خاصه في صافحة ويب والهدف من ليس المحافظة على امن المعلومات وبدال من ذلك التأكد من استهالكها بشكل صحيح.

شيء الوحيد اللكن ال تتطلب مفتاح ووبحيث يمكن بسهولة أن يتم عكسه. للجميعيحول البيانات إلى شكل آخر باستخدام مخطط متاح الترميز )ASCII, Unicode, URL Encoding, Base64مثال ( الخوارزمية التي تم استخدامها لصياغته. هو هالمطلوب لفك

التحويل من شكل تستطيع قراءته أيتحويل البيانات الى شكل اخر للمحافظة على امن البيانات من االخرين ( وه :(encryption)التشفير(readable form) الى شكل ال تستطيع قراءته(Unreadable form) ال مع إمكانية عكس تأثيره وتسمىباستخدام خوارزمية التشفير

decryption. منها هو عدم فوالهد وهكذا. x131$h?z398178فتصبح بهذا الشكل الكلمةعمل تشفير لهذه عند how are youكلمة مثال على ذلك:

استطاعة أي شخص غير المقصود من االطالع على البيانات لكي ،المستخدمة في تشفيره والخوارزمية الغير مشفربين النص ويعتبر حلقة الوصل، التي يتم االحتفاظ بها سرا، (key)ويستخدم مفتاح

تعتبر (key) مفتاحالو ،(algorithm)الخوارزمية ،(cipher text) المشفرالنص ولذلك عملية التشفير. على هذا النحو، تنفيذ في يستخدم (AES, Blowfish, RSA). مثال (decryption)األدوات للرجوع الى النص العادي

algorithm Encryption )تعنى عملية حسابيه معقده لتحويل الملف من يستطيع المستخدم قراءته الى ملف ال يستطيع التشفير) ملوغاريت .(performance) داءاعلى ولكنه بطريقة أخرى سوف يعمل على تقليل اال وكلما كان قوى كلما كان مستوى االمانالمستخدم قراءته

بمعنى األمان. ويتشابه معهم ولكنه يختلف معهم في نظام encryptionو encodingدائما يختلط في تعريفه مع ال-: (hashing)دالة هاش ية لانها تأخذ اي عدد من قطع البيانات وتعيد سلسلة ثابتة الطول من البتات تسمى قيمة هاش التشفيرية، بحيث ان اي تغيير في البيانات االص يسوف يؤدي إلى تغيير كبير في قيمة هاش التشفيرية (باحتمال كبير جدا). عادة تسمى البيانات المشفرة "الرسالة" ومقدار هاش التشفير

.digestيسمى لم يتم سالة موثوق وال يستخدم لتشفير النصوص وانما للتأكد من ان محتوى الر ألنههذا النوع من الخوارزميات ال يحتاج إلى مفتاح تشفير

.SHA-1و Tigerو MD5ن االمثلة على دالة هاش خوارزميات م. والتعديل عليهثم بعد ذلك تشفير الناتج hashingلينتج نظام تشفيري قوى عن طريق اخذ بيانات الملف وعمل له authentication ودائما ما يستخدم مع ال

public keyمع

Page 220: Linux Admin I II

RHCSA/RHCE Egypt ®

encfs (((directory encryption)الطريقة األولى باستخدام 219

صبحي طيبه دد. محم

hashingوال encryptionالفرق بين الولكن عند unreadable formلتصبح النتيجة dataويربطها مع ال key ويسمى ال passwordيحتاج الى encryptionال - .(readable)الى شكلها األصلي مره اخرى data وترجع ال data عن ال key فانه يفصل ال decryption الاو ال ولكن key وممكن يأخذ ال (unreadable form)ويحولها الى شكل اخر data (readable form)يأخذ ال hashing ال-

.one way saltوماتيكية ومن أشهر انواعه بطريقه أت saltهذه الطريقة بتتم عن طريق إضافة ما يسمى بال hashingمثال لل

#passwdredhat للكلمة التي قمت بإدخالها. rehashingولما تدخل من جديد يعمل hash (MD5 hash)ويحولها الى saltويضيف اليها redhatكلمة يأخذ

-: encryption ويوجد طريق عديده لعمال ال ENCFS )((DIRECTORY ENCRYPTION)األولى باستخدام الطريقة

عن طريق ويعمل ،FUSE kernel module Library ال ويستخدم user space في ال (directory encryption)عمل تشفير للمجلد .(mount point directory)ومسار اخر لنقطة الضم (source directory)مسار للمجلد األساسي (directory 2) عمل مسارين

وتعبر عن الملفات األصلية الموجودة في ال (readable form) مقروءة بتكون mount point directory والملفات الموجودة في ال source directory ،والملفات الموجودة في ال source directory مقرؤهبتكون غير (unreadable form).

encfs في كل مره تتعامل مع ال kernel حتى ال تتعامل مع ال FUSE Library وفائدة الللملفات فانه decryption ولعملsource directory والذي يخزن في ال volume key للملفات فانه يستخدم ال encryption ولعمل

.password يستخدم ال على ذلك مثال

وتتم كاالتي:سوف نعمل على تشفير بعض الملفات حتى ال يستطيع قراءته أي مستخدم اخر decryptedواألخر نسميه encryptedاألول نسميه (directory 2)ننشىء مجلدين -1

بعد عمل له نقطة ضم ونضع فيه الملفات المراد تشفيرها ويكون التعامل مع هذا المجلد. decryptedنذهب الى المجلد بعد عملية التشفير

encfsباستخدام االمر encryptedيتم تشفير المجلد -3

(source directory)هو المجلد الذي يحتوي على الملفات المراد تشفيرها encrypted/تم جعل المجلد encfsحيث مع استخدام االمر يارين:يعطى لك خ encfsوعند استخدام االمر (mount directory)هو البوابة التي من خاللها يمكن رؤية الملف decrypted/والمجلد

1-p وتعنى انشاء نظام تشفير على المجلد باستخدام الوضع االفتراضي وعن كتابته نكون انتهينا من اشاء المجلد المشفر 2-x :وتعنى ان المستخدم سوف يختار نظام التشفير الذي يريده وهو عباره عن عدد أسئلة تسال للمستخدم لوضع النظام التشفير كاالتي

Blowfishحيث انه اقوى في التشفير من AESوالتي تعنى 1هنا قمنا باختيار رقم

Page 221: Linux Admin I II

RHCSA/RHCE Egypt ®

encfs (((directory encryption)الطريقة األولى باستخدام 220

صبحي طيبه دد. محم

وكلما كان أكبر كلما كان اقوى كلما كان اقل في األداء (key volume)ثم بعد ذلك يطلب منك ادخال حجم المفتاح block) والتي تتحكم هل يتم تشفير أسماء الملفات أيضا م=ام ال نختار مثال Block – Null – streamثم بعد ذلك يعطيك ثالثة خيارات (

والتي سوف تقوم بتشفير اسم الملف وحجمه. بعد ذلك يعطيك رسالة بنجاح العملية ويطلب منك كلمة السر المراد إعطائها للمجلد

والذي يحتوي على جميع االعدادات الخاصة بالتشفير source directory (/encrypted)االن قد انشاءنا مجلد مشفر عباره عن مجلدين -3 فقط بحيث نقوم بنقل كل ما نريد تشفيره اليه mount directory وسوف يكون التعامل هنا مع ال mount directory (/decrypted)و

umountوعند غلق حتى ال يستخدم نعمل له mountوعند فتح المجلد الستخدامه نعمل له نقط ضم

كاالتي: fusermountللمجلد عن طريق االمر umountو mountويتم عمل

Unmount باستخدام االمرfusermount-u إلخفاء محتويات المجلد

Mount باستخدام االمرencfs وإلمكانية رؤية المجلد مرة أخرى حيث نجد انه سال

المستخدم عن الرقم السري كاالتي encfsctlلتغير الرقم السري نستخدم االمر

الجديد. السريحيث نجد انه يطلب من المستخدم ادخال الرقم السري القديم ثم بعد ذلك ادخال الرقم

Page 222: Linux Admin I II

RHCSA/RHCE Egypt ®

(file encrypted) وهمى partition الطريق الثانية باستخدام 221

صبحي طيبه دد. محم

ثانية ل (FILE ENCRYPTED)وهمى PARTITION باستخدامالطريق ا

جيجا كاالتي: 1نصنع ملف مساحته ولتكن -1

نحدد نوع التشفير فيه كاالتي: e–ومع الخيار losetupوهمى عن طريق االمر partitionنحول هذا الملف الى -2

(نظام تشفير) cipherفان يطلب ادخال رقم السر ولكن بعد االدخال نالحظ ظهور رسالة خطا تعنى انه ال يدعم losetupبعد استخدام االمر aes االتينعمل على تحميل التطبيق المشكلةولحل هذه:

util-linux yum install util-linux األداةنعمل على تحميل -1يعملون فنجد انهم ال يعملون فنقوم بتفعيلهم (cryptoloop_modules – aes_modules)ان نتأكداألهم -2

:كاالتي الوهمي partition الوبعد ذلك ال ينتج رسائل خطا ونكون قد انشائنا

أنشأناهونحدد نوع نظام الملفات للملف الذي التأليه للخطوةننتقل -3

:كاالتي تخزينينعمل له نقطة ضم كأنه وسيط -4

:كاالتي losetup –dعن طريق االمر loop ثم نفصله من ال unmountوبعد االنتهاء نعمل له ريد من ملفات فيه ما تضع ت-5

:االتيووضع الملفات التي تريد تشفيرها فيها نستخدم االن عندما تريد الدخول مره أخرى -6

فقط وعند الدخول مرة أخرى umountوضعناه للملف من قبل وبعد االنتهاء نعمل له الذينجد انه يطلب رقم سرى نضع له الرقم السري فقط وهكذا. 5 الخطوةنعمل له

:التاليعن طريق إضافة السطر fstabويمكن اضافته الى الملف /secret.img /mnt.encrypted ext4 defaults,noauto,loop,encryption=aes,user 0 0

ثالثة واالهم باستخدام ال ل LUKS (DISK AND FILE ENCRYPTION) الطريقة ا

LUKS = Linux unified key setup - :مميزاته

Page 223: Linux Admin I II

RHCSA/RHCE Egypt ®

LUKS (disk and file encryption) الطريقة الثالثة واالهم باستخدام ال 222

صبحي طيبه دد. محم

أي انه عن طريق تشفيرها حتى لو تم سرقته او ازالته من النظام device مكونات اللحماية block device encryptionيستخدم ال -1 فقط single user modeاو في وضع off يقوم بالحماية عندما يكون نظام التشغيل في وضع ال

.تكون عباره عن ملف encryption الخاصة بعملية ال key إمكانية جعل ال-2 .key 8ممكن يتعامل مع -3 .disk encryptionو file encryption يتعامل مع ال-4 dm-crypt moduleمن خالل kernel device mapper اليستخدم -5

.cryptsetupيق التطبيق تتم عن طر encrypted_deviceتخدم من اشاء او الولوج الى سالعمليات التي تتم عن طريق الم :ال-ملحوظه LUKS يدعم ال KEY والpassphrases لكي يتم الولوج الىencrypted device ولكن االنكوندا يدعم ال

passphrases .فقط عند عملية تثبيت نظام التشغيل : LUKSباستخدام ال partitionالخطوات لعمل تشفير لل

raidاو lvmاو fdisk سواء ب partitionنقوم بإنشاء -1 كاالتي: cryptsetupباستخدام االمر Luks نقوم بتشفيره ب-2

تريده الذيالباسورد عن يسألك ذلكوبعد Luks باستخدام disk لل encryption االن عملنا قبل تحويله partition لذلك احفظ الى داخل ال delete يتعلمه partition أي شيء موجود في ال ملحوظه نفعل االتي: partition على ال Luksمن تفعيل وللتأكد

حيث عندما تكون صفر تنفذ االمر التالي exit statusتعتمد على &&حيث ان exit status 0وهذا يعنى انه إذا كان تفعيل القسم فانه يعطى اما إذا اعطى أي قيمه أخرى فانه ال ينفذ االمر الذي يليه.

نستخدم االتي: Luksالمفعل عليه device ولمعرفة معلومات عن ال

لكي يتم التعامل معه ووضع الملفات به بعض تفعيل التشفير له كاالتي: partition الى المرحلة التالية وهي فتح الننتقل -3

Page 224: Linux Admin I II

RHCSA/RHCE Egypt ®

LUKS (disk and file encryption) الطريقة الثالثة واالهم باستخدام ال 223

صبحي طيبه دد. محم

encryptedفي هذه الخطوة لقد قمنا بفتح الهارد ديسك لكي نتعامل معه وسوف نستخدم الخطوة السابقة في كل مره نريد التعامل مع ال partition الن مع ال وسوف يكون تعاملنا اluks-data / وتكون مسارها االتي/dev/mapper/luks-data

ثم بعد ذلك ننشأ نقطة ضم كاالتي: ex4ننشاء له نظام ملفات وليكن-4

كاالتي: cryptsetupمع االمر luksCloseعند غلقه نلغي نقط الضم أوال ثم نستخدم الخيار -5

لمعرفة ال UUID :كاالتي

حيث انه من الممكن ان يكون له أكثر من مفتاح للدخول اليه اخر نستخدم االتي إلضافة مفتاح:

:وإلزالة مفتاح نستخدم االتي

:ويمكن إضافة مفتاح ويكون المفتاح عباره عن ملف كاالتي

التشفير نظام-: ملحوظهLuks مفاتيح 8يتيح للمستخدم(8 key). كاالتي: teba.confثم نعيد فتحه عن طريق المفتاح luksCloseعن طريق encrypted partition with luksاالن نقوم بغلق

كمفتاح له. teba.confبدون ان يسال عن الرقم السري وذلك ألنه استخدم الملف partition نالحظ هنا انه تم فتح ال سوف تلغى mount ما قمنا به من عملية فان (reboot)إعادة تشغيل للنظام وعند عمل encrypted partition لل mount بعد عمل

ولكن من المالحظ etc/fstab/ فأننا سوف نقوم بالتعديل في ملف encrypted partition لل mount ولجعل اللينكس يقوم بطريقه اليه بعملوال نتعامل مع مسار dev/mapper/luks-data/ مثال mapper name اننا سوف نواجه مشكله وهي ما سوف نتعامل معه هل نتعامل مع ال

نجد ان النظام dev/sdb1 مثال encrypted device لل directory عن طريق mount فمثال لو عملت. dev/sdb1/ مثال partition ال .'unknown filesystem type 'crypto_LUKSويعطيك رسالة كاالتي .يرفض ذلك

ولحل هذه المشكلة نتبع التالي:

:كاالتي rc.sysinitأوال نقوم بفتح الملف [root@www ~]#vim /etc/rc.d/rc.sysinit

يتعامل قبله مع fstabولكن نجد أيضا انه قبل ان يتعامل مع الملف .auto mountمن اجل ال fstabنجد ان نظام التشغيل يتعامل مع الملف نضع هذا الملففي etc/crypttab/المسار التالي وبيكون في fstab ملف يشبه ال .وهوcrypttabاسمه encryption ملف ثاني خاص بال

.encrypted file systemفيه

Page 225: Linux Admin I II

RHCSA/RHCE Egypt ®

LUKS (disk and file encryption) الطريقة الثالثة واالهم باستخدام ال 224

صبحي طيبه دد. محم

ولعمل هذا نفعل االتي. fstab في ال encrypted partition (/etc/sdb1)من المسار األصلي لل mountوبعد ذلك نعمل التالي. ي تماما ونكتب فيه السطرنالحظ انه ملف خال vim ببرنامج ال crypttabنفتح ملف -1

[root@localhost /]# vim /etc/crypttab Mapper_name source_partition key encrypted_type

luks-data /dev/sdb1 /teba.conf luks ونوع ال key /teba.conf بال luks-data (mapper name)باسم sdb1لل اوال mountيعمل عند إعادة التشغيل همعنى ذلك ان

encryption (luks). ونكتب السطر التالي: vim ببرنامج ال fstabنفتح الملف -2

/dev/mapper/luks-data /jana ext4 defaults 0 0 وظهور هذه الرسالة بسبب ان ال (insecure mode for root)االن ولكن نالحظ هنا ظهور هذه الرسالة إعادة تشغيلنعمل -3

key عملتلو ls –l لكي ترى ال permission الخاص به نجد انهReadable لذلك نغير ال للكل permission الخاص به ونجعلهreadable لل اليوزر فقط(chmod 400 test2).

CHECKSUM ال

تغير ام أصابه تغير في أي لم يصبه ملف هل هو كما هومثال اذا كنت تريد ان تتأكد من محتوى الملفالطريق التي يوزن بيها . (MD5, Sharp)محتوياته ومن اشهر الطرق المستخدمة

ان الرقم تغير. checksumوسوف نالحظ عند حساب vimمثال باألمر file االن سوف نعمل على تغير محتوى ال

نالحظ في تغير الرقم checksum وعند حساب ال test الملفنالحظ اننا قمنا بتغير محتوى :بيكون الإذا وجد ملفين مختلفين االسم متساويين في المحتوى -ملحوظه checksum متساوي بين الملفين الن الchecksum مع يتعامل

محتوى الملف وال يتعامل مع اسمائه. checksum الكيفية حساب

sha (sha1sum (160 bit) , sha256sum (256 bit) , sha512sum (512 bit)) و md5sum (128 bit)تتم عن طريق الخاص بالملف checksumفانه يعطيك ال redhatعندم تعمل تحميل للملف من شركات موثوقة مثل checksumومن اكبر استخدام لل

الخاص بالموقع checksumالخص بالملف الذى قمت بحسابه وال checksumحتى تتأكد ان الملف الذى قمت بتحميله سليم عند مقارنة الوحتى يتأكد من ان الملف سليم خالي peer to peerألنه يستخدم نظام torrentل ا القائمة عليه هوالذى حملت منه الملف ومن اكثر البرامج

من األخطاء.

ACLمن اجل الحماية مثل ATTRIBUTES صفات خاصه على الملف

chattrاالمر -حذف الملف حتى بواسطة المستخدم ومنها منع سبلينوكلتغير خصائص الملف التي يوفرها نظام الملفات الخاص chattr يستخدم األمر

والمستخدم الجذري هو attribهو األمر DOSفي ال الصالحية، ومثيلهصائص من المستخدم ذوي إال بعد تغير الخ "root" الجذر :ها)لبعض الخصائص التجريبية لم أتطرق (هنالكالخاصة بالبرنامج باالختياراتوهذه قائمة المستخدم الوحيد الذي له الحق في تعديله

: Aمنع تحديث وقت القراءة "Access time" . : a و لكن يمكن أضافة البيانات للملف فقط ,هحذفال يمكن مسح محتويات الملف أو .(append) : c تفعيل خاصية ضغط الملف بواسطة النواة(compression) "kernel" : D انتظارو المجلد الذي تفعل له هذه الخاصية يتم كتابة البيانات مباشرة بدون بالمجلدات,خاصية خاصة. : d له بواسطة البرنامج احتياطيةالملف الذي تفعل له هذه الخاصية ال يتم أخذ نسخة dump (no dump) : i حتى لو كان المستخدم الجذري الملف الذي تفعل له هذه الخاصية ال يمكن حذفه أو تعديله أو أعادة تسميته .(immutable) : s أي الحذف االمن للملف من قبله في القرص الصلب المستخدمةعند حذف الملف يتم تصفير المساحة(secure deletion) .

hiإنشاء ملف يحتوي على كلمة للملف checksumعمل لملفا محتوىير في الرقم بيكون ثابت طالما لم يتغ يطلع رقم كبير هذا

Page 226: Linux Admin I II

RHCSA/RHCE Egypt ®

LUKS (disk and file encryption) الطريقة الثالثة واالهم باستخدام ال 225

صبحي طيبه دد. محم

: S مشابه للخاصية D الصلبحيث يتم كتابة البيانات الخاصة بالملف مباشرة في القرص للملفات,و لكن. : u الخاطئذف الملف يتم حفظ مكوناته , هذه الخاصية تساعد في حالة الحذف حعند(undeletable) . j تفعيل ال :journaling اخر: e (extend attribute) - t ( no-tail merging) - T (top of directory hierarchy) h (hidden) -

:chattrعلى منع حذف ملف بواسطة األمر وهذا مثال

lsattrاالمر - .chattrوالتي يمكن التحكم بها عن طريق االمر خصائص الملف التي يوفرها نظام الملفات الخاص بلينوكس عرضل lsattrيستخدم األمر

والتي تعنى ان الملف ال يمكن حذفه او تعديله او إعادة تسميته. iحيث نالحظ من المثال السابق ان الصالحية للملف تحتوي على ملحوظه إذا اردت المستخدم العادي ان يكون له الحق في تعديل الصفات(attribute) يتم ذلك عن طريق انشاء نقطة ضم للنظام الملفات

.user_xattr (mount option)مع الخيار UUID=661ab9f1-c381-4962-bcfc-0b5e2aab1ce9 /home ext4 defaults,user_xattr,acl 1 2

setfattrاالمر -ودائما مرتبط (set extended attribute to filesystem) ألنظمة ملفات او مجلد او سمات خصائص لوضع setfattrيستخدم األمر

للملف extend attribute name بوضع قيمه جديده لل الخيارات التأليه:ويأتي معه

-nname = --name=name الجديدattribute لوضع اسم ال -vvalue = --value=value attribute لوضع القيم الجديدة لل -xname = --remove=name attribute لحذف

Extend attribute name هو سمة من سمات نظام الملفات التي تمكن المستخدمين من ربط ملفات الكمبيوتر مع البيانات الوصفية(metadata) أو ذوناتاألت (مثل تفسر من قبل نظام الملفات، في حين أن الصفات العادية يكون لها هدف محدد بدقة من قبل نظام الملفا الالحجم إلى قيمة أصغر بكثير من الحد األقصى تكون محدودةعادة (extend attribute) الموسعةأوقات التعديل). السمات وأسجالت إنشاء

.chattrالتي شرحت من قبل مع االمر attribute وتعتبر امتداد لل لحجم الملف. .(character encoding of a plain-text, a checksum, cryptographic hash or digital signature) ه فياستخدامات السمات الموسعة).( extend attribute. يدعم Btrfsو Reiserfs ،XFSو JFSو ext4و ext3و ext2 نظام الملفات في لينكس،

.(metadata)اسم والبيانات المرتبطة بهاتتكون من التي (extend attribute) الموسعةالسمات يملك مجلدأي ملف عادي أو : اسماء. حاليا، توجد أربعة (.name)حرف نقطةب ومنتهيه بمسافهيجب أن يكون اسم سلسلة خالية منتهية مسبوقة - االسم:

(user – trusted - security – system) user.mime_type - trusted.md5sum - system.posix_acl_access - security.selinux

على نطاق (extend attribute) الموسعةمحتويات. ال تستخدم السمات الالتسمية أو بلديه أية قيود فيما يتعلق ليس مساحة االسم المستخدم في لينكس، user space programواسع في

Dropboxو Beagleو األحدث واإلصدارات 2.6 الكيرنل بداية من االصدار معتمدة في extend attribute الBeagle is a search system for Linux and other Unix-like systems Dropbox is a file hosting service operated by Dropbox

. اذونات القراءة والكتابة الى selinuxمثل security kernel modulesيتم استخدامها من قبل security attributeالسمة security_attribute تعتمد على تنفيذ السياسة العامة لل security التي تتم عن طريقsecurity module وعند عدم وجودsecurity_modules ولكن عملية الكتابة تكون محدودة للعمليات التي تحمل فان عملية القراءة تتم على الملف بدون أي حدود

CAP_SYS_ADMIN .(الخاصة بالمستخدم الجذري) . اذونات القراءة CAPILITESو ACLمثل system object لتخزين ال kernelيتم استخدامها من قبل system attributeالسمة

يتم تنفيذها من قبل أنظمة الملفات في الكيرنل. system_attributeسياسة خاصه لكل تعتمد على system_attributeوالكتابة الى

Page 227: Linux Admin I II

RHCSA/RHCE Egypt ®

LUKS (disk and file encryption) الطريقة الثالثة واالهم باستخدام ال 226

صبحي طيبه دد. محم

(المستخدم الجذري CAP_SYS_ADMINبتكون مرئية ويمكن الوصول اليها فقط للعمليات الى تحمل trusted attributeالسمة هذه الفئة بعيدا التي تبقي المعلومات في وأي خارج النواة) ( user spaceوتستخدم هذه الفئة لتنفيذ آليات في الوحيد الذي يحمل هذه اإلمكانية).

يملكون اذونات الولوج اليه.ال الذي العاديين المستخدمين عمليات عن نوع الملف االمتداد الخاص the mime typeتخزين معلومات إضافية مثل يتم تعينها للملفات والمجلدات من اجل user attributeالسمة

.(chmod)التصريحات من قبل هايتم تعريفم ت الوصول للمستخدأذونا .character set or encoding of a file ،بالملف)

getfattrاالمر - (get extended attribute to filesystem) ألنظمة ملفات او مجلد او سمات خصائص لعرض getfattrيستخدم األمر

#getfattr-nnamepathname... #getfattr-dpathname...

n لعرضattribute معين d لعرض القميه الخاص بالattribute attrاالمر -

XFSنفس السابق ولكن يستخدم مع أنظمة الملفات #attr-sattrname[-Vattrvalue ]pathname = setfattr-n #attr-gattrnamepathname = getfattr #attr-rattrnamepathname = setfattr-x

Page 228: Linux Admin I II

RHCSA/RHCE Egypt ®

227 NETWORK MANGER مدير الشبكة

صبحي طيبه دد. محم

NETWORK MANGER مدير الشبكة

من أجل الحفاظ و (الذى يخزن مباشره في الكيرنل ) staticاو dynamicواى تغير فيه يكون اما IPكارت شبكه يتم باالمر اعداد-مقدمه: ) في نظام الملفات.submaskو IP، يجب أن يتم تخزين المعلومات ذات الصلة (أي عنوان التشغيلإعادة من عملية هذا االعدادعلى

(Network manger) مدير الشبكة عن طريقالشبكة االعدادت اوبدا او ايقاف ، األسلوب االفتراضي لتخزين6ابتداء من ريد هات لينكس ألجهزة عن اأيضا بحث ألنه ي الب توبمثل لالجهزه المحمولههذا البرنامج هو أيضا متوفرة في اإلصدارات السابقة، وهي طريقة مثالية

.بعض القيود لديهولكن نجد ان .لمستخدماسفر معتلقائيا يغير الشبكاتالمتاحة، ويمكن أن (wirless)الالسلكية شبكة على لوحة سطح المكتب.الفوق رمز إدارة يسارا لشبكات، انقرالعرض الشبكات المتاحة واالتصال وقطع

نالحظ من المثال السابق خيارين اثنين: والتي تعنى االتصال بالشبكه تلقائيا عند بدء نظام التشغيل.-: (connect automatically)الخيار األول -1فانه يمكن جميع ، مستخدمينكما يوحي الوصف، إذا تم استخدام هذا النظام من قبل عدة -: (Available to all users)الخيار الثانى-2

.ifcfgملف الإنشاء الى سيؤدي هذا اإلجراء أيضاو .واجهة في الئحة الشبكات المتاحةال المستحدمين من رؤية هذه، وهناك عدد من إعدادات الشبكة المتقدمة (network manger)مدير الشبكة بواسطة اعدادهافي حين أن معظم اإلعدادات الشائعة يمكن

.أخرى اعداد التي تتطلب منا استخدام وسائل

الفصل

لشبكاتا NETWORK

Page 229: Linux Admin I II

RHCSA/RHCE Egypt ®

228 NETWORK MANGER مدير الشبكة

صبحي طيبه دد. محم

لتجاوز الفشل أووبنفس الشبكة ينمتصل (adaptor)كارتين شبكه ، وهو عملية استخدام (bonding)الترابط على سبيل المثالload_balance اعدادهم عن طريق مدير الشبكه ، ال يمكن(network manger) . الشبكة على خادم مدير، لذلك ال يمكنك استخدام (network manger)من قبل مدير الشبكة ip forwardingأيضا ال يتم اعتماد

. routerاعد لكى يكون لينكس chkconfigلتعطيل مدير الشبكة استخدام أوامر الخدمة األخرى. واالعداد لهذه األسباب، سنقوم بتعطيل مدير الشبكة واستخدام ملفات و

إليقاف خدمة مدير الشبكات وتشغيل خدمة الشبكة.وذلك

.ينطوي على المهام التالية شبكة القائملا كارت إلعداد .netmask و IP addressingمن تعيين كل

. default gateway اعداد . DNSخوادم األسماء من واحد أو أكثر اعداد

.التالية بعض األدواتينطوي على شبكة القائملا كارت إلعدادIfconfig وip addr.

route . System-config-network-tui .

.التالية الملفاتينطوي على شبكة القائملا كارت إلعداد/etc/sysconfig/networks.

/etc/sysconfig /network-script/ifcfg-ethX . /etc/hosts.

/etc/resolv.conf . (NIC)كروت الشبكه

. PCIبالجهاز عن طريق ، التي تتصل (Network Interface Card) (NIC)الشبكات عموما من خالل بطاقات واجهة الشبكة عملويتم . lspciه عن طريق االمر الكشف عن والتى يمكن

كملف مثل باقى االجهزه األخرى حيث انه ليس هناك NIC بطاقاتال تسمح للمستخدمين بالوصول إلى الكيرنلعلى عكس األجهزة األخرى، بطاقات تسمح الوصول الى يونكس وفان لينكس اولكن بدال من ذلك NICوالذى يعبر عن /dev/موجود في المجلد (device node)ملف

NIC من خالل واجهات شبكة االتصال(network interface) . tr1او eth0والتي تسمى (network interface)قائم يقوم الكيرنل بتعين واجهة شبكة اتصال له NIC شبكه حيث انه لكل كارت

واألرقام (type of underlying data link technology) حيث تشير الحروف سواء الى نوع التكنولجى في ربط البيانات االساسيه للتميز بين بطاقات الشبكه المتعدده التي يتم اكتشافها.

. wifiوالتي تعبر عن كروت ال wlan0بجانب القائمه السابقه ip addrاالمر -

(مازال مستخدم حتى االن) ويقوم بعرض وتعديل اعدادات الشبكة القائمة. ifconfigتم استخدام هذا االمر واستبدل مكان RHEL6بداية من

Page 230: Linux Admin I II

RHCSA/RHCE Egypt ®

تعديل او وضع اعدادات الشبكة عن طريق االتي 229

صبحي طيبه دد. محم

كاالتي. ويمكن تحديد الكارت المراد معلومات عنه

تكون صيغته كاالتي:والتي ipويتم اعداد كارت الشبكة عن طريق استخدام االمر #ip[options]object{command | help} Object: = {link | addr | addrlabel | route | rule | neigh | tunnel | maddr | mroute | monitor} Options: = {-V[ersion] | -s [tatistics] | -r [esolve] | -f [amily] {inet | inet6 | ipx | dnet | link} | -o [neline]}

عن طريق االتياعدادات الشبكة تعديل او وضع

ip addr addعن طريق االمر -1#ipaddraddlocaladdressdevdev_name

255.0.0.0عباره عن netmaskمع 10.1.1.8له ipووضع eth 1حيث من المثال السابق سوف يقوم بتفعيل كارت الشبكة addبدال من delاعداد نستخدم أي وإللغاء

ifconfigeth0ip_addressnetmasknetmask_address#كاالتى ifcongوهذا يساوى مع االمر

Page 231: Linux Admin I II

RHCSA/RHCE Egypt ®

تعديل او وضع اعدادات الشبكة عن طريق االتي 230

صبحي طيبه دد. محم

.(multihomed host) االتصالغالبا ما يشار إليها باسم مضيف متعدد طرق (الخارجية) متعددة IP اآللة التي يتم االستماع إلى عناوين ويمكن تفعيل أي كارت شبكه او الغاء تفعيلها عن طريق االتي:

كاالتي: link setipومن أشهر الخيارات التي تأتى مع االمر

ip link set up = ifup ip link set down = ifdown ifcfg-ethXعن طريق الملف -2

(.………- eth0 – eth1 – eth2)تعنى ethXحيث مثل (startup script) بدء التشغيل المناسبةنصي في IPاألمر استخدام، من الصعب Unixإصدارات نظام يونيكس العديد من في

/etc/rc.d/rc.sysinit. في المسار التالي: الموجود ifcfg-eth0وذلك باستخدام ملف االعداد كروت الشبكة في اعدادريد هات نهجا أكثر عمومية لذلك استخدمت

/etc/sysconfig/network-scripts/ifcfg-ethX وعند عرض محتويات الكارت نجد االتي:

وغيرها. ipحيث نالحظ من المثال السابق ان الملف يحتوي على بعض المتغيرات الى تعن طريقها يتم اعداد كارت الشبكة من ifcfg-ethXعلى معظم المتغيرات التي يتم استعمالها في الملف يحتوييجدول يليوفيما

Variable Ex. Description

DEVICE eth0 ويعتبر اسم كارت الشبكة التي يتم اعداداهاالسم التعريفي للملف

HWADDR MAC address اليوضع فيه عنوان MAC الخاص بكارت الشبكة

IPADDR 192.168.16.1 اليوضع فيه رقم IP

BOOTPROTO none|static|dhcp static تعنى وضع إعداداتNIC يدويا وdhcp وضعه تلقائيا باستخدام سيرفرdhcp

NETMASK 255.255.255.0 وضع اعدادات ال netmask

ONBOOT yes | no الوضع االفتراضيyes انه سوف يتم تفعيل الشبكة مع بداية التشغيل اما وتعنىno تعنى تفعيل الشبكة يدويا بواسطة المستخدم بعد بداية عمل نظام التشغيل.

USERCTL Yes | no الوضع االفتراضيno وتعنى ان المتحكم الوحيد في التحكم في كارت الشبكة من تفعيل تعنى ان أي مستخدم يمكن تعديل كارت الشبكة. yesاو الغاء المستخدم الجذري فقط اما

GATEWAY 192.168.0.254 الوضع gateway.

Page 232: Linux Admin I II

RHCSA/RHCE Egypt ®

تعديل او وضع اعدادات الشبكة عن طريق االتي 231

صبحي طيبه دد. محم

Variable Ex. Description

NM_CONTROLLED Yes | no وتعنى السيرفس المتحكمة فيNIC وyes = NetworkManager وno=network

TYPE Etherent|Wirles لتوضح نوع اتصال الشبكة وتكتب هكذاTYPE=Ethernet

NAME System eth0 توضع فيه اسم للشبكة المستخدمة

IP aliases ، باإلضافة إلى كارتكل IP aliasing، وذلك باستخدام مفهوم يسمى كارت شبكه واحدمتعددة إلى IPعناوينبنواة لينكس يسمح مستعارة الواجهات الويشار إلى (additional aliases) إضافيةمستعارة اعدادات 255ما يصل إلى الى دعم ي قد ،له األساسي االعداد

كاالتى:ip addr addمع labelعن طريق الخيار وتتم (eth0:1 – eth0:191) مثل:بإلحاق: رقم إلى اسم الواجهة،

ifcfg-ethXويمكن انشائه عن طريق الملف

Page 233: Linux Admin I II

RHCSA/RHCE Egypt ®

IP برتوكول ال 232

صبحي طيبه دد. محم

Virtual LAN كارت شاشه وهمى ؟ VLANي البداية ما هي الـف

.و هي تقسيم منطقي(ليس فيزيائي) لشبكة داخلية إلى عدة شبكات منفصلة مع الحفاظ على بعض التوصيلية بينهم Virtual LAN اختصار لـ ؟ eth0.2 و eth0:2 و eth0 ما الفرق بين الـ

eth0 هو اسم الكرت األول في الجهاز و هو كرت حقيقي / فيزيائي eth0:2 هذا ما يسمى Alias أي إسم أو اسم مستعار لنفس الكارت الحقيقي و تستخدم إلعطاء أكثر من IP فس الكارت و كثيرا ما تكون نل

.ولكن هذا ليس شرطا أبدا Subnetالعناوين من نفس الـ eth0.2 لكنه وهمي و يستخدم في الـوكرت متكامل هنا نقوم بإنشاء VLAN لكي يفصل الـ LANs عن بعضها و إن كانوا على نفس الـ Switch و هنا يسمى هذا بـSub Interface

VLAN هناك طريقتين إلنشاء مثال ووضع االعدادات السابقة الخاصة بالكارت ولكن مع إضافة السطرين التالين ifcfg-eth0.2طريق انشاء ملف نع يدوية:طريقة .1

DEVICE=”eth0.2” VLAN=yes vconfigاالمر طريق نع :اليهطريقة .2

IP ال لبرتوكو

يتكون من جزأين، IPكل عنوان . (router)شبكات الفردية من اآلالت التي ترتبط معا باستخدام أجهزة التوجيهالعلى IPيستند بروتوكول ، الجزء الذي يحدد عنوان الشبكة والجزء الذي يحدد المضيف IPي عنوان . أل(host part) وجزء المضيف ،(network part) جزء الشبكة

.للتمييز بين االثنين )netmask(قناع الشبكةيستخدم ، لذلك انيختلف .الشبكة نفسه، وبالتالي قناع الشبكة نفسهعنوان في يشتركون IPكل مضيف على شبكة IPلحسن الحظ، يتم تعريف العديد من شبكات . وIPعنوان من (network part) الشبكةجزء لتحديد (netmask)باستخدام قناع الشبكة

.(CLASS A – CLASS B – CLASS C) بأنهاوالتي يشار إليها .يمكن تطبيقها بسهولهباستخدام أحد أقنعة الشبكة الثالثة التي

.IPيوجد حاليا نسختين من بروتوكول ، فإننا "IPبروتوكول " ر الىعندما يشا .عاما 20لمدة تم استخدامه الذي االفتراضي IPوهو بروتوكول IPv4، ويطلق عليه 4اإلصدار

.ما لم ينص على خالف ذلك IPv4 عناوين نقصد .inet6أو IPv6 ، عادة يسمى ب6اإلصدار

IPv6بروتوكول

vconfig addجديد عن طريق االمر VLANإنشاء

proc/عن طريق VLANعرض معلومات عن

VLANإيقاف

vconfigعن طريق االمر VLANإزالة

Page 234: Linux Admin I II

RHCSA/RHCE Egypt ®

IP برتوكول ال 233

صبحي طيبه دد. محم

مجموعه تتكون من اربع ارقام وكل (,)بقولون ثماني مجموعات مفصولة يتكون منبت، 128رقم عباره عن هو IPv6 عنوانال ).FFFFإلى 0000تتراوح من ( hexadecimalمن النوع

. prefix، فإنها تستخدم (netmask)قناع شبكةاستخدام عنوان إلى جزء الشبكة وجزء المضيف، ولكن بدال من الوينقسم األخيرة. ، وبالتالي جزء الشبكة هو المجموعات األربع األولى وجزء المضيف هو المجموعات األربع64 /يفترض دائما أن يكون prefixال

.على سبيل المثالالشبكات الفرعية، 65535يعطيها القدرة على الحصول على ما يصل إلى التي بدورها و، 48 /قد يتم تعيين منظمة شبكة هناك زوجين من القواعد التي يمكن استخدامها لتتكثف لهم في االستخدام:لذلك يمكن أن تكون طويلة، IPv6ألن عنوان

:0: هكذا تكتب :0000:و :db8:تكتب هكذا :0db8:اختصارها مثالفي أي مجموعة، األصفار يمكن :: بمتتالية يمكن استبدالها المرة واحدة فقط في العنوان، األصفار

1::تكتب هكذا 0:0:0:0:0:0:0:1و db8::1:2001 هكذا تكتب db8:0:0:0:0:0:1:2001 - على سبيل المثال:الخاصة multicast addressولكن العديد من اآلالت يحتوى عادة على عدد من ،broadcast addressال يملك IPv6 بروتوكول

.إلجراء محادثات مع المضيفين على الرابط المحليةالتي يتم استخدامها فقط IPv4في النسخة االصدار 127.0.0.1 والتي تعادل العنوان IPv6 في النسخة اإلصدار (1::) :بيكون unicaseالعنوان

MAC address MAC addressوالعنوان الثاني هو IP addressجميع كروت الشبكة تملك عنوانين العنوان األول هو

هيأتي مع (شبكه)بطاقة إيثرنت لنفسها. ك ) Network Interface Cardالشبكةبطاقة واجهة ( NICجزء من هوية هو MAC ال عنوان عن طريقه يتم تعريف بطاقة الشبكة.، الذي الخاص بالكارت غير قابل للتغير او التشابه firmwareتكون مختزنه على فريد MACعنوان

The ARP cache باستخدام بروتوكولa protocol) arp (address resolution 192.168.10.8للمضيف المستقبل الذي يملك العنوان MAC البد له من اكتشاف ال 192.168.10.51المضيف المرسل الذي يملك عنوان

(segment)وهذا ينطبق على أي اتصال بين اثنين من المضيفين على نفس الشبكة الفرعية إيثرنت .ARP cacheوالمعروفة باسم ذاكرة التخزين المؤقت،في اكتشفوا الذين MAC وعنوان IPآالت تحافظ على عنوان فأن لتسريع هذا األمر،

فكرة عمل الشبكة واالتصال بين المضيف الذين ليسوا على شبكه واحده

The Routing Table .(routing table) باسم جدول التوجيه المعروفيحتفظ كل نواة لينكس جدول داخلي

Page 235: Linux Admin I II

RHCSA/RHCE Egypt ®

234 DNS (Domain Name Service)

صبحي طيبه دد. محم

هوية أي جهاز تحديد بالشبكات المحلية، وها بطالتي يتم ر (network interface)يحدد كروت الشبكة (routing table)جدول التوجيه على الشبكة المحلية التي ينبغي استخدامها كبوابة إلى الشبكات الخارجية.

:التقليدية routeباستخدام األمر (routing table)يمكن فحص جدول التوجيه

توجيها الى الشبكة المحلية يجب 192.168.16.0/255.255.255.0 التي عنوانها السطر األول ان أي حزمه موجه للشبكةيحدد في الشبكة المحلية hosts وهذه المعلومة مهمه في االتصال بين ال eth0عن طريق كارت الشبكة

التصال بالشبكة الخارجية يتم توجيهها الى هذا الوتعنى ان أي حزمه موجه الى موقع غير مسجل في الشبكة المحلية أي ا gateway وهذا (internet)مفيد في االتصال بين المضيف والشبكة العامة

وذلك اسم المضيف، بدال من IP ب gatewayيتم ربط أكثر سهولة عندما يصبح فهمه (route table) في كثير من األحيان، جدول التوجيه :routeمع االمر n–عند استخدام الخيار

.بشكل حيوي هفي للتعديلأن تستخدم (routing table)والذي يستخدم لفحص جدول التوجيه ip route مرلألويمكن أيضا افة وازالة المدخالت ضبإتلقائيا تقوم نواة لينكس وذلك الن .تعديل جدول التوجيه مباشرةمن اإلداريين يقوم العملية، نادرا ما الحياةفي

.ipتشغيل او ايقاف كارت الشبكة عن طريق االمر لتعريف الشبكات المحلية عندما يتم المناسبةومع ذلك، ال يمكن أن تحدد من اعداد كارت الشبكة مباشرة، ويجب أن يتم يستخدم في االتصال بشبكة االنترنت الخارجية gateway ال

(ip route del default) من جدول التوجيه عن طريق استخدام التالي gateway ويمكن إزالة ال .توفيرها من قبل مسؤول IP تعبر عن ال IPADDRحيث (ip route add default via IPADDR)الجديد يتم اضافته عن طريق االتي: gateway وال

.gateway الخاص بال

:التاليبإضافة السطر ifcfg-eth0في الملف يدويةبطريق gatewayويتم أيضا إضافة GATEWAY=192.168.16.1 # routeadddefaultgw192.168.1.1 eth0

DNS (Domain Name Service)

.DNSلذلك يستخدم يفضلون أن أشير إلى أجهزة الكمبيوتر بواسطة أسماء بدال من األرقام، ، المستخدمينالعملية الحياةفي DNS يعمل عل تحويلIP .الى أسماء عند بدء حل اسم resolv libraryمشتركة لحل أسماء المضيفين، المعروف تقنيا باسم اساسيه بنيةن ستخدماتلينكس ويونكس توزيعاتمعظم

(static lookup) وتسمى etc/hosts/ينظر أوال الى الملف resolv libraryفان ipالمضيف أي تحويل االسم الى (dynamic lookup) وتسمىetc/resolv.conf/ لم يجد ينظر الى األسماء المخزنة في الملف ثم إذا

Page 236: Linux Admin I II

RHCSA/RHCE Egypt ®

235 DNS (Domain Name Service)

صبحي طيبه دد. محم

STATIC LOOKUPS (/etc/hosts)

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

DYNAMIC LOOKUPS (/etc/resolv.conf)

قواعد باستخدام بدرجة كبير وتتم سماء هذه االكافة ترجمةتقريبا يتم و ipفتم وضع اسم لكل ip حيث ان المستخدمين ال يتعاملون مع ال IP ينبيانات كبيرة ومرنة، كما أنه يغطي كل عنواناليجب أن يكون قاعدة و. DNSالوصول إليها من خالل خوادم والتي يتم البيانات الموزعة

ال توجد على جهاز واحد وال في مكان واحد قاعدة البيانات هذه .واالسم المضيف المقابل له DNS يتم تسجيل فيه ال يأ (name server) لتعريف خوادم األسماء resolv libraryقبل من etc/resolv.conf/ملفاليتم استخدام

(search – nameserver – domain) سطر فيه ال بد ان يبدا بأحد الكلمات األتية أيفي هذا الملف نجد ان

ameservern .كل على سطر واحد DNSالخاص بالمضيف الذي يشغل خدمة IP عنوانبتبع ت ثم nameserverبكلمة األسطر التي تبدأ عباره عن

والسطر الذى يليه عباره عن primary nameserverبحيث السطر األول يكون عباره عن nameserverاكثر من سطر يبدا يمكن استخدام secondary nameserver وعند استخدام ال.DNS فانه يذهب أوال الىprimary name server فانه يذهب لفاذا كان لسبب ما ال يعم

وهكذا. secondary nameserverالى search

، مثل Fully Qualified Domain Name (FQDN)يشار إلى والتيطويل مضيف لديه شكل محدد اسم كل station5.example.com

، فيتم اختصار ذلك بحذف االسم المشترك، Domainارك في اسم التتشفي كثير من األحيان، عند استخدام العديد من أسماء المضيفين التي etc/resolv.conf/التي تم حذفه الختصار يتم تسجيلها في الملف Domainبال قائمةفان من أجل أداء هذا االختصار، و. station5مثل

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

.server1.example.comثم بعد ذلك يبحث ثانيا كاالتى: server.isp.netفانه يتم البحث أوال كاالتى: server1عند كتابة domain

searchالذي يتم اختصاره أللحاق اسم المضيف به وعلى خالف السطر الذي يبدا ب domain ولكن يتم الحاق اسم ال searchمثل في سطر لوحده domainفانه يتم تسجيل كل

Proxy server . (proxy server) بروكسيسمى خوادم يتطبيق لالتصال بإنترنت من خالل (station) الحاالتفقط لبعض في بعض الحاالت، يسمح

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

etc/resolv.conf/او اعداده في الملف DNS الفي هذه الحالة من الممكن عدم تحديد )hostname(تعيين أسماء المضيف

hostnameاالمر باستخدام على االسم المضيف الخاص بالة ما االطالع الكيرنل. ويمكن ديناميكيا في ذاكرة االسم المضيف للجهازيحافظ نواة لينكس على

.والتي ترجع ببساطة اسم المضيف الحالي، على النحو التالي ،hostnameاألمر

ره التي سيتم تفسيو مدخلبإضافة والتي تتملتعيين اسم المضيف ديناميكيا، hostname أيضا استخدام األمر يللمستخدم الجذر ايضا يمكنو .على أنه اسم المضيف الجديد

Page 237: Linux Admin I II

RHCSA/RHCE Egypt ®

236 DNS (Domain Name Service)

صبحي طيبه دد. محم

etc/sysconfig/network/الملف االله الحالية فانه عند إعادة التشغيل فانه يرجع الى االسم المضيف القديم ولحل ذلك نستخدم (hostname)بعد تسجيل اسم المضيف

والذي يتم قراءته عند إعادة التشغيل. etc/sysconfig/network/الملف

networkبعض المتغيرات التي يستخدمها الملف

Variable Ex. Description

NETWORKING yes | no Yes يعنى ان جميع الشبكات تعمل مع إعادة التشغيل والعكس معno

NETWORKING_IPV6 yes | no No تعنى ان جميع الip غير مستخدمه وغير مفعله والعكس مع 6النسخةyes

HOSTNAME Jana.teba اسم المضيف الخاص باأللة وعند عدم تحديديها تكونlocalhost.localhost

NISDOMAIN RHA130 لوضع ال NIS دومين مع بداية التشغيل إذا كان يوجد

GATEWAY 192.168.0.254 وضع اعدادات ال gateway بطريقه يدوية

GATEWAYDEV eth1 العند استخدامها فان ip الذي تم تعينه بواسطة ال dhcp للجهازeth1 يتم استخدامه gatewayك

تكوين شبكة االتصال يمكن أن تدار من قبل الخدمة كاالتى:

#servicenetworkstop =ifdown #servicenetworkstart =ifup #servicenetworkrestart

etc/sysctl.conf/في الملف ip forwardingتفعيل ال

على األقل. ipأكثر من واحد وعلى اثنين (network interface)الروتر (جهاز التوجيه) يحتوي على واجه شبكه للولوج الى شبكة النت الخارجية لشبكه داخليه. (gateway)ويعتبر الروتر بمسابة البوابة

.ألف جهاز التوجيه بمثابة بوابة لحزم الشبكة من الشبكة المحلية ال تتطابق مع نفسها، ومحاولة إلعادة توجيه الحزمة إلى ipالتي لها عنوان الوجهة من قبل الحزم ي، على عكس المضيفين اآلخرين، الروتر .IP forwarding باسم إليهيشار هذا أخرى أقرب إلى وجهتها، و IPشبكة

ولكن االوضع االفتراضي بتكون غير فعاله. واذا استخدمت االله لكى يعمل IP forwardingوحيث نجد ان الكيرنل له اإلمكانية في عمل تفعيلها. فالبد من ركراوت

etc/sysctl.conf/ويتم تفعيلها عن طريق إضافة السطر التالي في الملف net.ipv4.ip_forward = 1

sysctl –pويمكن أيضا اضافته عن طريق االمر 0حيث ان الوضع االفتراض له بيكون

Page 238: Linux Admin I II

RHCSA/RHCE Egypt ®

237 DNS (Domain Name Service)

صبحي طيبه دد. محم

DHCP (IP – GATEWAY – NETMASK – DNS)يتم استخدامه لوضع إعدادات الشبكة بطريقه اليه من

dhcp تلقائيا إلدارة طلب الوجه في اعدادها عن طريق ال dhclient daemonفي اعدادها فانه يتم تشغيل DHCP الوجه التي تستخدم ال يتم تخزينها تلقائيا في ملف نصى كاالتى: dhclient daemonأي معلومة يتم استقبالها من ال

/var/lib/dhclient/dhclient-name.leases name = eth0 (example)

tui-network-config-systemاعداد الشبكة عن طريق األداة

عباره عن اداه تسمح لك بإعداد الشبكة التي لديك عن طريق نص حواري وتعتبر سهله في اعداد الشبكة والتي تتيح لك عدم حفظ المتغيرات اليدوي.التي تستخدم في االعداد

سوف تظهر شاشه مثل الشاشة التالية. لوعند كتابة االمر في التر منا

RETRUNاو Enterثم نضغط (Device configuration)نختار اعداد الشبكة و اذا اردت ا <New Device>ثم بعد ذلك تظهر الشاشة التالية والتي نالحظ فيها اعداد الشبكة الحالية وإذا اردت ادخال اعداد جديد نختار

التعديل في اعداد الشبكة الحالية نختار الشبكة الحالية .

Page 239: Linux Admin I II

RHCSA/RHCE Egypt ®

238 DNS (Domain Name Service)

صبحي طيبه دد. محم

تظهر الشاشة التالية والتي فيها تحدد نوع الشبكة returnاو enterوالضغط <New Device>عند اختيار

Returnاو Enterثم نضغط Etherentنختار

ثم حفظ okنضع االعداد التي تريدها ثم نضغط على ifupثم ifdownاو نكتب على networkولتفعيل ما قمنا به نعمل على إعادة تشغيل الخدمة

المتاح dhcp يستخدم لجعل الجهاز يأخذ اعداداته من سيرفر ال dhclientاالمر

Page 240: Linux Admin I II

RHCSA/RHCE Egypt ®

239 : Network Diagnostic Utilities أدوات فحص الشبكة

صبحي طيبه دد. محم

: NETWORK DIAGNOSTIC UTILITIES أدوات فحص الشبكة

pingاالمر IP 2يعمل على اختبار االتصال بين pingاالمر

ICMPالى المضيف والذي بدوره سوف يقوم بإرسال نفس الطلب ICMP (echo request)سوف تقوم بإرسال pingاألداة المساعدة (echo replay) .إذا كان هناك اتصال بينهم

كاالتى: CTRL + Cاء من ذلك عن طريق المفاتيح وسف يتم االستمرار في االرسال واالستقبال بمعدل كل ثانيه حتى يتم االنته

كاالتى pingالتي تأتى مع االمر تالخيارا

hostاالمر لالسم المضيف ipبمعنى معرفة ال DNS lookupيستخدم لعمل

tracerouteاالمر حتى وجهته النهائية.مسار الفي اخر موجود رراوتإلى رراوتتفاصيل مسار حزمة من يستخدم لعرض

Page 241: Linux Admin I II

RHCSA/RHCE Egypt ®

240 : Network Diagnostic Utilities أدوات فحص الشبكة

صبحي طيبه دد. محم

tcpdumpاالمر CTRL + Cولكنه سوف يستمر لغاية لما المستخدم يضغط على يستخدم لفحص نشاط الشبكة

الخيارات المهمة التي تأتى معه

WIRESHARK wiresharkواالن يوجد اداه أفضل من هذه في تحليل الشبكة وهيا

لتثبيتها على نظام التشغيل نستخدم االتي: yum clean all yum install wireshark wireshark-gnome

فتظهر شاشه رسوميه كاالتى wiresharkاداه رسوميه يتم تشغيلها عن طريق كتابة االمر وهي

Page 242: Linux Admin I II

RHCSA/RHCE Egypt ®

241 : Network Diagnostic Utilities أدوات فحص الشبكة

صبحي طيبه دد. محم

netstatاالمر التصال ا والتي تنتظرمع المنافذ المستخدمة المستخدمةوالبروتوكوالت " في عرض معلومات عن االتصاالت بالشبكة netstat"تستخدم األداة

ولينكس.لحاسبك وتتواجد على نظامي ويندوز والعناوين المتصلة للكل aو ip العناوين عرض nو udpلعرض االتصاالت التي تستخدم uوالخيار tcpلعرض االتصاالت التي تستخدم tيستخدم الخيار

r لعرض الrouting table وp ال لعرضprocess id وe لعرض معلومات اضافيه المعطيات:بشرح فقط نبدأهذا األمر سيظهر االتصاالت الجارية

Proto :) نوع البرتوكول المستخدم في االتصالTCP ,UDP( Local Address : الحظ أنه يفصل بين أسم الحاسب و المنفذ باستخدام ":" . المستخدم,عنوان الجهاز المستخدم (جهازك) و المنفذ

Foreign Address: يفصل بينها بـ ":". المنفذ,عنوان الحاسب الذي يتم االتصال به مع رقم State :" حالة االتصال و في هذه الحالةESTABLISED,” " و لكي تفهم الحاالت األخرى سأتطرق بشكل مبسط لبرتوكولTCP و ""UDP".

netstat-ntap :كالتالي netstatاألمر استخداملكشف البرامج المتصلة باألنترنت في لينكس تستطيع :كالتالي "listen" االتصالتنتظر والبرامج التيالجارية االتصاالتسيقوم البرنامج بطباعة

netstat-ntlp :ة األمر التاليفقط قم بطباع "listen" االتصال انتظارالتي في حالة ولعرض البرامج

Page 243: Linux Admin I II

RHCSA/RHCE Egypt ®

242 Etherent Bonding

صبحي طيبه دد. محم

nslookupاالمر لعرض جميع االيبهات التي تخص موقع معين كاالتى:

nslookupيعادل االمر digاالمر ethtoolاالمر

mii-toolوالتي تعادل يستخدم لعرض معلومات كامله عن كارت شبكه

ETHERENT BONDING

والتكرار bandwidthفي في واحد، وخلق زيادة (network interface)اكثر من جه على الجمع بين Etherent Bondingيستخدم channel bonding interfaceكارت شبكه خاص ويسمى المتاحة. ويتم ذلك عن طريق إنشاء

مى يربط بين االثنين كاالتى:كارت شبكه وتتم ربط بينها عن طريق انشاء كارت شبكه وه 2عندنا مثال: كاالتى (Alias bond0 bonding )ونكتب فيه السطر التالي: (text editor)بأي برنامج devننشى ملف -1

وذلك تخبر فيه السيرفر بمراقبة حالة options bond0 max_bonds=2 miimon=100 mode=1ويمكن إضافة هذا السطر معه الكارت حتى ال يحدث تداخل في البيانات بين الكارتين.

بأي برنامج etc/sysconfig/network-scripts/ifcfg-bond0عن طريق إنشاء الملف eth0ننشأ له واجة شبكه مثل -2text_editor ويحتوى على الip فيه االتي: ونكتبالحقيقي الذى سوف يتم التعامل معه

ويجب ان يكون فيهما السطور التالية: ثم نقوم بتعديل كارتي الشبكة كل على حده كاالتى:-3DEVICE=eth1 (eth1 and eth2) BOOTPROTO=none

Page 244: Linux Admin I II

RHCSA/RHCE Egypt ®

243 NFS (The Network Filesystem)

صبحي طيبه دد. محم

ONBOOT=yes MASTER=bond0 SALVE=yes USERCTL=no

ifconfig bond0 up# بعد ذلك نقوم بعمل إعادة تشغيل للسيرفس كاالتى:

NFS (THE NETWORK FILESYSTEM)

وهذا المجلد يجب ان يتواجد .بينهم (directory)مجلد مشاركة ب ويونكسشبكات لينكس للعديد من االت يسمح (NFS)نظام ملفات الشبكة NFS. أي أله ذات نظام تشغيل ريدهات فانه يمكن اعدادها لكي تكون بمثابة خادم NFSفعليا على أله واحده والتي يشار اليها على انها خادم

.NFSعن طريق تصدير أي مجلد من خالل . readmeوالذي يحتوي على المجلدين ريدهات والصور والملف ،var/ftp/pub/آلة لتصدير المجلد server1هنا اختارت

انشاء نقط ضم للمجلد الذي صدر بواسطة الخادم ، من خالل NFS للخادم تعمل كعميل ايضا ان ممكنريد هات أله تحمل نظام التشغيل أي NFS بمعنى اخر ربط المجلد الخاص بالخادمNFS (NFS server) بالمجلد الخاص بالمستقبل (NFS client).

mnt/pub/ الى المجلد. NFS (SERVER1)عمل نقط ضم للمجلد المصدر من الخادم station7هنا الجهاز

من المعلومات لألمر نفإننا ال بد من توفير جزئيي mountموجود على الشبكة باستخدام االمر NFSإلنشاء نقطة ضم لمجلد مصدر من خادم mount 1لكي يتم ذلك وهم-remote hostname اسم المضيف الخاص بخادم)NFS

2-directoryن الخادم مسار المجلد المصدر مNFS Remote Hostname: Directory

سوف ننشئ فيه نقطة الضم. الذياما بالنسبة للمستقبل فنحدد فقط المجلد CIFSوالويندوز NFSولكننا نستخدم CIFS protocolو NFS protocolيوجد نوعين من البروتوكوالت للتحكم في هذه الخدمة

nfslockو rpcbindالسيرفس المتحكمة في هذه هما وبداية من النسخة الخامسة من ريدهات بات ايجاده بطريقه اليه لذلك ليس من المهم استخدام nfsنوع نظام الملفات المستخدم دائما يكون

.mountمع االمر tالخيار

تعتبر كأنها مجلد عادى في النظام التشغيل ويمكن رؤية محتوياته بالطريقة NFSالتي أنشأنها الخاص بالخادم (mount point)نقطة الضم كاالتى: lsالتقليدية عن طريق االمر

كاالتى: umountويمكن ايضا الغاء نقطة الضم باألمر

Page 245: Linux Admin I II

RHCSA/RHCE Egypt ®

244 NFS (The Network Filesystem)

صبحي طيبه دد. محم

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

في هذه الحالة، يمكن إضافة ال يملك تنفيذه بطريقه اليه. ه، ولكنالضملنقطة تحديد اعادةرغب في ي (admin)مسؤولالفي بعض األحيان، فإن :، فيما يليfstabفي الملف والمستخدم إلى خط التكوين noautoخيارات نشاء نقط يسمح ألي مستخدم على الجهاز أل userتلقائيا عند بدء التشغيل، في حين أن الخيار همن حدوث mountال يمنع noautoالخيار

.ة كاالتىبسيط الضم بطريقه

showmount-eاالمر -حتاج المسؤول ي، أو قد مجلدات ةأي حاليا رصدي NFSبالخادم خاص الجهاز الأن يعرف إذا كان (admin)مسؤول يريد الفي بعض األحيان،

.showmount على حد سواء يمكن أن يتحقق باستخدام األمر.هتصديرالذي تم المجلدالكتشاف مسار .NFS clientو NFS severمن كل لأن تكون مفيدة على showmountتم تصميم األمر

#showmount-ehostname كاالتى:، hostnameالتي يتم تصديرها حاليا من قبل المضيف NFSالمجلدات من النوع كافة عنعرض قائمة سوف يقوم بهذا األمر

CIFS هو البروتكول المتحكم في خدمةnetwork filesystem وهو اختصار ل(common internet filesystem) التشغيل ويندوز ويتح لينكس الولوج لهذا البروتوكولويعتبر البروتكول األساسي لنظام

CIFSتستخدم لتعريف الخادم الذي يستخدم samba-clientتكون موجودة مع حزمة smbclientاألداة

Page 246: Linux Admin I II

RHCSA/RHCE Egypt ®

245 NFS (The Network Filesystem)

صبحي طيبه دد. محم

#smbclient-Lcifsserver.domain #mkdir/remote2 #mount //cifsserver.domain/sharename/remote2

بطريقة غير متوقعه او عندما يتم فصل االتصال بطريقة ما؟ NFSكيف يستجيب الجهاز عندما يغلق الخادم ولكن نجد ان NFSبالخادم صخا (NFS mount)فان عملية القراءة لملف من مجلد . إذاhard mountيعتبر NFS mountافتراضيا،

.uninterruptible sleep Dالخادم ال يستجيب فان الكيرنل يعامله كان يحاول قراءة ملف من قرص تخزيني غير متاح ويضعه في عملية killفال يمكن اغالقه باألمر uninterruptibleمن الممكن ان يستمر طويال ونتيجة انه (uninterruptible sleep)ولكن هذا الوضع

ولذلك ال يوجد شيء يمكن ان يفعله المسئول اال ان يأمل ان يعاد فتح الخادم مرة أخرى. CTRL + Cاو ب كاالتى: intrولحل هذه المشكلة فإننا عند انشاء نقطة الضم نجعل له الخيار

Dوالتي تستجيب بالمقارنة ب interruptible sleep Sفي هذه الحالة نجد انه عند غلق الخادم فان الكيرنل يضعه في حالة :كاالتى soft mountتكون من النوع NFSنقطة الضم الخاصة بالخادم الحل االخر وهو ان يكون

ثانيه ثم بعد ذلك يغلق االمر مع خطا. 30ونجد ان الخادم توقف فان االمر يستمر معلق لمدة lsعند استخدما االمر الحالةفي هذه etc/auto.net/ الملف -

ويتم انشاء نقطة ضم لها تلقائيا في المسار التالي NFSان يكتشف المجلدات المصدرة من قبل خادم automounterسمح ل ملف سكريبت /net/hostname/exported/path

قطة ضم مدرجه ليس له ن NFSونجد ان الخادم rha/data/و var/ftp/pub/نجد في المثال التالي ان المضيف يعمل على تصدير المجلدات فارغ. net/والمجلد

و ه rha-serverان حيث ،net/rha-server/مع المسار االتي lsد استخدام االمره عن، ومع ذلك، فإنفارغ net/على الرغم من كون المجلد .الذى سوف يقوم بتصدير الملفات كاالتى NFSخادم لاسم المضيف ل

مجلداته التي يصدرها لنا.وإنشاء مسارات لكافة NFSخادم قد اكتشف تلقائيا automounterومن هذا نرى ان ال

والتي يمكن etc/hostsسيرفر او قواعد بيانات مسجله في الملف / DNSلذلك تحتاج الى net/ال يعمل مع IPولكن يجب ان تالحظ ان .netوالذي يجعله يتعامل مع المجلد /تسجيل اسم الخادم بداخله

access file remotelyالوصول الى الملف عن طريق الشبكة

Page 247: Linux Admin I II

RHCSA/RHCE Egypt ®

246 NFS (The Network Filesystem)

صبحي طيبه دد. محم

االتي رفيظه places connect to serverيمكن الوصول الى الملفات عن طريق الشبكة في البيئة الرسومية عن طريق اختيار

وبعد اختيار net/host/الى autofsويعمل على االتصال عن طريق NFSيشير الى windows shareوالخادم ثم نختار نوع الخادم نوع السيرفر ندخل اسم السيرفر والبورت المستخدم واسم المستخدم إذا كان يوجد.

ssh (Remote shell access)الخادم .telnetاو sshهو الولوج الى شل نظام تشغيل اخر عن طريق الشبكة وتتم عن طريق استخدام

(ssh) ----------------------- (secure connection) (telnet) ---------------------- (not secure connection) (ssh) --------- Communication between two encrypted hosts

يغته:ص#sshremotehost or #sshremoteuser@remotehost or #sshremotehosthostname #ssh-xhost_ip ويستخدم هذا الخيار لعرضه في بيئة رسوميه

عن طريق االتي: (public-key , private-key)يستخدم نوعين من المفاتيح sshنجد ان #ssh-keygen ويستخدم في انشاء المفاتيح

ssh/.وهذه المفاتيح يتم تخزينها افتراضيا في

(public key , 644 ---- private key----- 600)مثال ssh-copy-id-i.ssh/id-rsa.pubrootdestination_ip#نظام التشغيل عن طريق الى public key الفيتم نقل

#ssh-keygen (create public key) ssh-copy-id (copy public key)

manage system clockاعداد الساعة لنظام التشغيل فتظهر system administrator data&time managementاو عن طريق system-config-dateعن طريق

فتظهر Synchronize date and time over the networkنعلم في المربع

www.ntp.orgونضع السيرفر الذي سوف يأخذ منه الوقت ونأتي بهذه السيرفرات من الموقع addنضغط على لتسريع التوافق. speed up initial synchronizationنختار advanced optionsوعند اختيار

االمر التالي: والختباره نكتب#ntpq -p

Page 248: Linux Admin I II

RHCSA/RHCE Egypt ®

247 Selinux

صبحي طيبه دد. محم

SELINUX

,National Security Agency (NSA)تم تطويرها بواسطة Enhanced Security linuxهو اختصار الى فيما بعد أكثرسوف نتكلم عليه

يتكون من ثالث أنواع 1-enforcing mode log on - protect)( 2-permissive mode (log on only – no protect) 3-third mode (disable)

etc/selinux/ويتم التحكم فيه عن طريق الملف setenforceنستخدم االمر mode لوضع ال

sestatusنستخدم االمر selinuxلرؤية الوضع الحالي ل

نستخدم األوامر األتية: selinuxمع sestatus Shows the current status of SELinux getenforce Shows the enforcing status of SELinux setenforce Changes the enforcing status of SELinux getsebool Returns the Boolean value of a service option setsebool Sets the Boolean value of a service option chcon Changes the context of a file, directory, or service restorecon Resets the context of an object

Page 249: Linux Admin I II

RHCSA/RHCE Egypt ®

248 exams

صبحي طيبه دد. محم

EXAMS

Every questions in this is mandatory for you to complete.example.com and remote.test has 192.168.0.0 and 192.168.1.0 network respectively. You have one system with one virtual system in build Packet filtering should not affect the network integrity. Yum baseurl is baseurl=ftp://192.168.0.254/pub/rhel6/dvd. Exam time: 2 1/2 hrs. Questions 1 | CREATE LVM Create the "LVM" with the name volgrp by using with the extends of 10 from the volume group named as logical. Consider the PE size as "16MB". Mount it on /lvm1 with filesystem vfat. Questions 2 | USER'S GROUPS AND PERMISSION: Create a group named "manager" A user sarah and natasha should belongs to "manager" group as a secondary group . A user harry should not have access to interactive shell and he should be a member of "manager" group as secondary. passwd for all user created should be "jenny". Questions 3 | DIRECTORY COLLABORATION: Create the Directory "/home/manager" with the following characteristics. Group ownership of "/home/manager" should go to "manager" group. The directory should be have full permission for all members off "manager" group but other users don't have any permissions accept "root". Files created under "/home/manager" should get the same group ownership is set to the "manager" group. Questions 4 | UPDATE THE KERNEL: Install the appropriate Kernel from ftp://instructor.example.com/ftp/pub/updates. Your machine should boot with updated kernel. Questions 5 | CRON JOB: The user sarah must configure a cron job that runs today at 23:14. and executes "/bin/echo "linux Is freedoM" and deny the user max for creating cronjob . Questions 6 | RESIZE LVM: Resize the lvm "/dev/vgsrv/home" so that after reboot size should be in between 90MB to 120MB.. Questions 7 | BIND THE "LDAP" FOR USER AUTHENTICATION: Note the following. BASE DN: dc=example,dc=com ldap path ldap://instructor.example.com/ Download the certificate from "ftp://instructor.example.com/pub/EXAMPLE-CA-CERT" ldapuserX should login into your system . Where "X" is your system no. Questions 8 | "NTP" CLIENT: Configure your system as "NTP" client for "instructor.example.com". Questions 9 | AUTOMOUNT THE HOME DIRECTORY FOR LDAPUSER Note the following. instructor.example.com(192.168.0.254) "Nfs exports" /home/guests to your system where "x" is your station ip. Ldapuser's home directory is instructor.example.com:/home/guests/ldapuserX. Ldapuser's home directory should be automounted locally beneath at /home/guests/ldapuserX. While login with any of the ldapuser then only home directory should accesible from your system that ldapuserX. Questions 10 | ACCESS CONTROL LIST: Copy the file /etc/fstab to /var/ and configure the "ACL" as mention following. The file /var/fstab is owned by the "root". The file /var/fstab belongs to the group "root" The file /var/fstab should not be executable by other's. The user "sarah" should able to read and write to the file. The user "natasha" can neither read nor write to the file. other users (future and current) shuold be able to read /var/fstab. Questions 11 | CONFIGURE FTP SERVER: Configure FTP access from your system. Clients within the example.com should have anonomyous FTP access to your system. Questions 12 | CONFIGURE "web server": Configure your system as "web server" for the site http://serverX.example.com . Download the web page from ftp://instructor.example.com/pub/updates/station.html Rename the the downloaded page as "index.html" Copy the "index.html" page to the "document root" Do not make any modifications to the content of index.html. Questions 13 | ADD USERS: Create the user "john" with uid 4223 with password john.

Page 250: Linux Admin I II

RHCSA/RHCE Egypt ®

249 SOLUTION

صبحي طيبه دد. محم

Questions 14 | EXTEND SWAP SPACE: Extend the SWAP space with "250" MB dont remove the existing swap. Questions 15 | LOCATE THE FILES: locate the files of owner "john" and copy those files to the /root/john. Questions 16 | Find words: Download file from "http://192.168.0.254/test/cracker.txt" Search lines which contains alpha-numeric words( combination of alphabets and number) and copy those lines is sorted order to /root/lines (output should not contain any blank lines). Questions 17 | SEARCH FOR WORD: List all lines which have string "full" from "/usr/share/dict/words" file and copy the lines in /root/directory file. SOLUTION

Solution 1- partprobe fdisk -l pvcreate /dev/sdb vgcreate -s 16M logical /dev/sdb lvcreate -n volgrp -l 10 mkfs.vfat /dev/logical/volgrp mount /dev/logical/volgrp /lvm1

Solution 2- groupadd manager useradd sarah -p -G manager useradd natasha -p -G manager useradd harry -p -G manager -s /sbin/nologin

Solution 3- ckdir -p /home/manager chown root:manager /home/manager chmod 770 /home/manager chmod g+s /home/manager

Solution 4- Wget ftp://instructor.example.com/ftp/pub/updates/kernel.rpm Rpm -ivh kernel.rpm

Solution 5- Crontab -e 14 23 * * /bin/echo "linux is freedoM" echo "max" > /etc/cron.deny

Solution 6 - partprobe lvs umount /dev/vgsrv/home e2fsck -f /dev/vgsrv/home

----to reduce resize2fs /dev/vgsrv/home 100m lvreduce -l 100m /dev/vgsrv/home

----to increase lvextend -l +100m /dev/vgsrv/home resize2fs /dev/vgsrv/home

Solution 7- system-config-authentication To ensure getent passwd username_name(ex ldapuser1)

Solution 8- system-configure-date

Page 251: Linux Admin I II

RHCSA/RHCE Egypt ®

250 SOLUTION

صبحي طيبه دد. محم

To ensure use this #ntpq -p Solution 9-

chconfig autofs on vi /etc/auto.master /home /etc/auto.ldap cp /etc/auto.misc /etc/auto.ldap vi /etc/auto.ldap ldapuser40 -rw,soft,intr 192.168.0.254:/home/guests service autofs relaod showmount -e 192.168.0.254 su - ldapuser40

Solution 10- cp /etc/fstab /var/fstab chown root:root /var/fstab chmod 770 /var/fstab setfacl -m u:others:r /var/fstab setfacl -m u:sarah:rw /var/fstab setfacl -m u:natasha:--- /var/fstab getfacl /var/fstab

Solution 11- yum install vsftp vi /etc/vsftpd/vsftpd.conf anonymous_enabled=yes chkconfig vsftpd on

Solution 12- yum install httpd vi /etc/httpd/conf/httpd.conf edit bottom as needed cd /var/www/html/ wget ftp://instructor.example.com/pub/updates/station.html mv station.html index.html

Solution 13- useradd john -u 4223

Solution 14- fdisk -l partprobe mkswap /dev/sda5 blkid vi /etc/fstab uuid=xxxxxx swap swap defaults 0 0 swapon -a swapon -s

Solution 15- find / -user john > /root/john

Solution 16- wget http://192.168.0.254/test/cracker.txt cat /cracker.txt | grep '[[:alnum:]]' | tr –d [[:blank:]] | sort > /root/line

Solution 17- grep /usr/share/dict/words "full" > /root/dictionary