كويست لينكس. مبروك للفائزين وتحدث عن حل المشكلات



25 مارس ، فتحنا التسجيل في Linux Quest ، هذه لعبة للجماهير والخبراء في نظام التشغيل Linux. بعض الإحصاءات: 1117 شخصًا مسجلاً في اللعبة ، 317 منهم وجدوا مفتاحًا واحدًا على الأقل ، 241 أكملوا بنجاح مهمة المرحلة الأولى ، 123 - الثاني و 70 اجتازوا المرحلة الثالثة. لقد انتهت لعبتنا اليوم ونهنئ الفائزين!

  • اتخذ الكسندر تيلديكوف المركز الأول.
    قال الكسندر لنفسه انه مسؤول النظام الأكثر نموذجية. يعيش في فولغوغراد ، ويدير مختلف أنظمة تشبه يونيكس لمدة عشرين سنة. تمكنت من العمل في مزودي الإنترنت ، البنك ، تكامل النظام. يعمل الآن عن بعد في شركة صغيرة ، وهو يعمل في البنية التحتية السحابية لعميل أجنبي كبير. يحب القراءة والاستماع إلى الموسيقى. حول اللعبة ، وقال الكسندر أنه يحب اللعبة بشكل عام ، وقال انه يحب هذه الألغاز. في واحدة من الشركات في المقابلة التي شاركت فيها على غرار Hackerrank ، كان الأمر ممتعًا.
  • المركز الثاني - رومان سوسلوف.
    رواية من موسكو. عمره 37 سنة. يعمل مهندس Linux / Unix في Jet Infosystems. من أجل العمل ، لا بد لي من إدارة واستكشاف أنظمة Linux / Unix + SAN. الاهتمامات مختلفة تمام الاختلاف: أنظمة Linux ، والبرمجة ، والهندسة العكسية ، وأمن المعلومات ، و Arduino. حول اللعبة ، أشار رومان إلى أنه يحب اللعبة عمومًا. "لقد ثنيت عندي التلفيف قليلاً وصرفت انتباهي عن الحياة اليومية الرمادية للعمل اليومي. :) أرغب في المزيد من المهام ، وإلا لم يكن لدي وقت لأتعلم كيف انتهت اللعبة بالفعل. "
  • والثالث هو alex3d.
    اليكس يعيش في موسكو ، وتشارك في تطوير البرمجيات. "شكرًا على المسابقة ، كان من الممتع التحقق من مهارة google-fu."

أيضا في ترتيب أفضل 10 لاعبين:

  • يفغيني سالداييف
  • ماركيل موخناتشيفسكي
  • كونستانتين كونوسوف
  • بافيل سيرجيف
  • فلاديمير بوفاييف
  • إيفان بوبنوف
  • بافلو klets

نحن نفهم أن هناك العديد من الخيارات لحل جميع مشاكلنا ، أحد الحلول الممكنة موضحة أدناه.

1. المرحلة الأولى


أطلقنا عليها "هل أنت متأكد من المشرف؟" ، لأن المهمة كانت بسيطة للغاية - لإصلاح خدمة مصباح دافئ.

1.1. حقائق مثيرة للاهتمام:


وجد لاعبان المفتاح الأول في الدقائق الـ 15 الأولى من اللعبة ، وفي الساعة الأولى كان لدينا ثلاثة قادة تعاملوا مع المهمة.

1.2. مهمة


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

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

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

الجميع ينتظر حلا سريعا لهذه القضية!

1.3. قرار


1. أولاً وقبل كل شيء ، تحتاج إلى تغيير كلمة مرور الجذر في الجهاز الظاهري من أجل الوصول إليها. عند بدء التشغيل ، نلاحظ أن هذا هو خادم Ubuntu 16.04.

لإعادة تعيين كلمة مرور الجذر ، نقوم بإعادة تشغيل الجهاز ، عند بدء التشغيل ، عندما يتم عرض قائمة نكش ، انتقل إلى تحرير عنصر أوبونتو مع زر "e". نقوم بتحرير خط linux ، ونضيف init=/bin/bash إلى النهاية. نقوم بالتحميل من خلال Ctrl + x ، نحصل على bash. أعد تحميل الجذر باستخدام rw ، وقم بتغيير كلمة المرور:

 $ mount -o remount,rw /dev/mapper/ubuntu--vg-root $ passwd 

لا تنسى المزامنة ، إعادة التشغيل.

2. تشير الحالة إلى أن خادم الويب لا يعمل من أجلنا ، فنحن ننظر إلى:

 $ curl localhost Not Found The requested URL / was not found on this server. Apache/2.4.18 

هذا ، في الواقع ، يعمل Apache ، لكنه يستجيب للكود 404. نلقي نظرة على التكوين:

 $ vim /etc/apache2/sites-enabled/000-default.conf 

هناك أيضًا مفتاح - StevenPaulSteveJobs.

نحن نتحقق من المسار /usr/share/WordPress - هذا ليس كذلك ، ولكن يوجد /usr/share/wordpress . نقوم بتصحيح التكوين وإعادة تشغيل Apache.

 $ systemctl restart apache2 

3. نحاول مرة أخرى ، حصلنا على خطأ:

 Warning: mysqli_real_connect(): (HY000/2002): Connection refused in /usr/share/wordpress/wp-includes/wp-db.php on line 1488 

قاعدة البيانات لا تعمل؟

 $ systemctl status mysql Active: active (running) 

ما هو الموضوع؟ من الضروري أن نفهم. للقيام بذلك ، تحتاج إلى الوصول إلى MySQL ، وكيفية القيام بذلك موصوفة في الوثائق . توصي إحدى النقاط في الوثائق بأن نكتب خيار skip-grant-tables في /etc/mysql/mysql.conf.d/mysqld.cnf . هنا أيضا المفتاح - AugustaAdaKingByron.

نصلح حقوق المستخدم 'wp'@'localhost' . نبدأ تشغيل MySQL ، وجعله متاحًا عبر الشبكة ، مع التعليق على خيار skip-networking في التكوين.

4. بعد الإجراءات المتخذة ، يبدأ خادم الويب ، ولكن لا يزال الموقع لا يعمل ، مثل

 Warning: require_once(/usr/share/wordpress/wp-content/themes/twentysixteen/footer.php): failed to open stream: Permission denied in /usr/share/wordpress/wp-includes/template.php on line 562 

نحن نصحح الحقوق في الملف.

 $ chmod 644 /usr/share/wordpress/wp-content/themes/twentysixteen/footer.php 

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

2. المرحلة الثانية


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

2.1. حقائق مثيرة للاهتمام


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

2.2. مهمة


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

2.3. قرار


1. لم يتم تحميل الخادم بسبب قسم المبادلة غير الموجود في fstab ، في التمهيد يحاول النظام تحميله وتعطله. كيفية التمهيد؟

قم بتنزيل الصورة ، وقمنا بتنزيل CentOS 7 ، والتمهيد من القرص المضغوط المباشر / قرص DVD (استكشاف الأخطاء وإصلاحها -> الإنقاذ) ، وقم بتحميل النظام ، وتحرير /etc/fstab . هنا نجد المفتاح الأول - GottfriedWilhelm11646Leibniz!

إنشاء مبادلة:

 $ lvcreate -n swap centos -L 256M $ sync && reboot 

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

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

من الضروري حذف أو تعليق السطر echo b > /proc/sysrq-trigger في /etc/crontab .

3. بعد ذلك ، تم تمهيد الخادم ، ويمكنك إكمال مهمة المديرين: "ما هي عناوين إفريقيا؟" هذه المعلومات متاحة بشكل عام للجمهور. يمكنك العثور على هذه المعلومات على الإنترنت باستخدام عبارات "عنوان IP أفريقيا" ، "قاعدة بيانات geoip". لحل المشكلة ، يمكنك استخدام قواعد توزيع العناوين المتاحة مجانًا (geoip). استخدمنا قاعدة بيانات MaxMind GeoLite2 ، المتاحة بموجب ترخيص Creative Commons Attribution-ShareAlike 4.0 ، كمرجع.

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

بادئ ذي بدء ، نحصل فقط على أزواج "مرسل IP - مستلم" من سجل البريد /var/log/maillog ( /var/log/maillog نبني جدولًا للمستلمين بالبريد الإلكتروني - مرسل IP). يمكن القيام بذلك باستخدام الأمر التالي:

 $ cat /var/log/maillog | fgrep -e ' connect from' -e 'status=sent' | sed 's/[]<>[]/ /g' | awk '/connect from/ {ip=$11} /status=sent/ {print $10" "ip}' > log1.txt 

وقبل أن نواصل تجميع قاعدة بيانات العناوين الأفريقية ، ننظر إلى عناوين IP للمرسلين.

 $ cat log1.txt | cut -d' ' -f1 | sort | uniq -c | sort -r | head -n 40 5206 L2JhbjAbM67GA99jg@mail.ru 4165 iHKTBkegOQa6fIALq@mail.ru 3739 nHkcBl7BdgXxijSYD7@mail.ru 3405 SMAzPJAzbl9vp4hAXo@mail.ru 3346 xILz6d7P@mail.ru 

من بين كل شيء ، يتم تمييز المتلقين الثلاثة الأوائل من الأعلى بشكل واضح بعدد الحروف. إذا كنت grep عناوين IP للمرسلين التي تم إرسالها إلى عناوين من أعلى 3 ، يمكنك رؤية الغلبة الواضحة لشبكات معينة:

 $ cat log1.txt | fgrep 'L2JhbjAbM67GA99jg@mail.ru' | cut -d' ' -f2 | sort | cut -d'.' -f1 | uniq -c | sort -r | head 831 105 806 41 782 197 664 196 542 154 503 102 266 156 165 45 150 160 108 165 

يتم تخصيص معظم الشبكات 105/8 ، 41/8 ، 196/8197/8 بواسطة AFRINIC - أحد مسجلي الإنترنت الإقليميين الخمسة الذين يوزعون موارد الإنترنت. AFRINIC توزع مساحة العنوان في أفريقيا. و 41/8 يشير إلى AFRINIC تماما.

 https://www.nic.ru/whois/?searchWord=105.0.0.0 https://www.nic.ru/whois/?searchWord=41.0.0.0 

وبالتالي ، فإن الإجابة على المشكلة ، في الواقع ، هي في السجل نفسه.

 $ cat log1.txt | fgrep -e '105.' -e '41.' -e '196.' -e '197.' -e '154.' -e '102.' | awk '{print $1}' | sort | uniq -c | sort -r | head -n 21 4209 L2JhbjAbM67GA99jg@mail.ru 3313 iHKTBkegOQa6fIALq@mail.ru 2704 nHkcBl7BdgXxijSYD7@mail.ru 2215 uvRbp1O@mail.ru 1774 sPmMsmmFiV@mail.ru 1448 BtG3aHgQgCKuze2AKuRH@mail.ru 1233 eQpuuQ2uQdbwRL3@mail.ru 958 nJT5dpaBZ@mail.ru 862 ef4WbQiB@mail.ru 762 dQCqKL6eVminFfH7wLA@mail.ru 632 ifq6Rd1HxuCQOdO9@mail.ru 539 cFwm2ssypMmx1sA7@mail.ru 531 twtTnr4G@mail.ru 431 TSrczgYASrR11Hs3qCi@mail.ru 380 o3r3exc3OL@mail.ru 357 rzmjr2VAHK@mail.ru 348 vnPr6YjJ3ndw@mail.ru 312 anOjFXrwOtLP2Rl1Vcz6@mail.ru 289 dvny5zHmRW8fiT@mail.ru 282 sgg9jPxFDYvzw8Kr@mail.ru 274 tKSevzA7GntJ@mail.ru 

في هذه المرحلة ، نحصل على السلسلة "LinuxBenedictTorvadst".

المفتاح الصحيح هو LinusBenedictTorvalds.

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

مع التوضيح الكافي لأكبر الشبكات المخصصة للبلدان الأفريقية ، يمكنك الحصول على الإجابة الدقيقة:

 $ cat log1.txt | fgrep -e' '105.{30..255}. -e' '41. -e' '196.{64..47}. -e' '196.{248..132}. -e' '197.{160..31}. -e' '154.{127..255}. -e' '102.{70..255}. -e' '156.{155..255}. | awk '{print $1}' | sort | uniq -c | sort -r | head -n 21 3350 L2JhbjAbM67GA99jg@mail.ru 2662 iHKTBkegOQa6fIALq@mail.ru 2105 nHkcBl7BdgXxijSYD7@mail.ru 1724 uvRbp1O@mail.ru 1376 sPmMsmmFiV@mail.ru 1092 BtG3aHgQgCKuze2AKuRH@mail.ru 849 eQpuuQ2uQdbwRL3@mail.ru 712 nJT5dpaBZ@mail.ru 584 ef4WbQiB@mail.ru 463 dQCqKL6eVminFfH7wLA@mail.ru 365 ifq6Rd1HxuCQOdO9@mail.ru 269 cFwm2ssypMmx1sA7@mail.ru 225 twtTnr4G@mail.ru 168 TSrczgYASrR11Hs3qCi@mail.ru 142 o3r3exc3OL@mail.ru 111 rzmjr2VAHK@mail.ru 96 vnPr6YjJ3ndw@mail.ru 78 anOjFXrwOtLP2Rl1Vcz6@mail.ru 56 lHzWiB7ExvRtSbAcU9@mail.ru 56 dvny5zHmRW8fiT@mail.ru 40 sgg9jPxFDYvzw8Kr@mail.ru 

يمكن أيضًا حل المشكلة بطريقة أخرى.
قم بتنزيل MaxMind وفك العلبة والفرق الثلاثة التالية أيضًا لحل مشكلتنا.

 $ cat GeoLite2-Country-Locations-ru.csv | grep "" | cut -d',' -f1 > africaIds.txt $ grep -Ff africaIds.txt GeoLite2-Country-Blocks-IPv4.csv | cut -d',' -f1 > africaNetworks.txt $ grepcidr -f africaNetworks.txt log1.txt | cut -d' ' -f1 | sort | uniq -c | sort -r | head -n21 

بطريقة أو بأخرى ، عدنا الإحصاءات في النهاية ، وحصل المديرون على البيانات التي يحتاجونها للعمل!

3. المرحلة الثالثة


المرحلة الثالثة تشبه إلى حد ما المرحلة الأولى - تحتاج أيضًا إلى إصلاح خدمة المصابيح الدافئة ، ولكنها أكثر صعوبة مما كانت عليه في المهمة الأولى.

3.1. حقائق مثيرة للاهتمام


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

3.2. مهمة


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

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

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

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

3.3. قرار


1. نحاول التمهيد بدوره من محركات الأقراص الموجودة لدينا وفي كل مكان نتلقى نفس الرسالة:

 No bootable medium found! System halted 

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

كيف وماذا تفعل:

 $ ls /dev/sd* 

ومن الواضح على الفور ذلك

 /dev/sdb1 - ext4 /dev/sdb2 -  lvm /dev/sda1  /dev/sdc1 -   /dev/sda2  /dev/sdc2 -         

جبل sdb1 ، فمن الواضح أن هذا هو قسم التمهيد من CentOS 6.

 $ mkdir /mnt/sdb1 && mount /dev/sdb1 /mnt/sdb1 

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

2. ندرس الكهروضوئية والجهد المنخفض ، ونحن نعمل مع LVM. نرى أنه يجب أن يكون هناك مجلدان ماديان ، أحدهما غير موجود ويقسم على المستخدم الضائع. نرى أنه يجب أن يكون هناك حجمان منطقيان: الجذر والمبادلة ، بينما يتم فقد الجذر جزئيًا (السمة P لمستوى الصوت). جبل لا يعمل ، ولكن آسف! نحن حقا في حاجة إليه.

يوجد قرصان آخران ، انظر إليهما ، وقم بالتجميع والتركيب:

 $ mdadm --examine --verbose --scan $ mdadm --assemble --verbose --scan $ mkdir /mnt/md127 && mount /dev/md127 /mnt/md127 

ننظر ، من الواضح أن هذا هو قسم التمهيد CentOS 6 وأخذ ما هو بالفعل على /dev/sdb1 ، وهنا مرة أخرى نفس المفتاح هو James191955Gosling!

نحن ننظر إلى كيفية بناء /dev/md127 .

 $ mdadm --detail /dev/md127 

نرى أنه كان يجب تجميعها من 4 أقراص ، وتجميعها من اثنين /dev/sda1 و /dev/sdc1 ، ويجب أن يكون الرقمان 2 و 4 في النظام. نفترض أنه يمكنك أيضًا إنشاء صفيف من /dev/sda2 و /dev/sdc2 . ليس من الواضح سبب عدم وجود بيانات وصفية عليها ، ولكن هذا على ضمير المسؤول ، الموجود في مكان ما في غوا. نحن نفترض أنه ينبغي أن يكون هناك RAID10 ، على الرغم من وجود خيارات. نحن نجمع:

 $ mdadm --create --verbose /dev/md0 --assume-clean --level=10 --raid-devices=4 missing /dev/sda2 missing /dev/sdc2 

نحن ننظر إلى blkid ، pvs ، lvs. نجد أننا جمعنا حجمًا ماديًا ، والذي افتقرنا إليه سابقًا.

نحن على الفور إصلاح lvroot ، تركيبه ، ولكن أولا تفعيل VG:

 $ vgchange -ay $ mkdir /mnt/lvroot && mount /dev/mapper/vg_c6m1-lv_root /mnt/lvroot 

وكل شيء موجود ، بما في ذلك مفتاح DennisBMacAlistairCRitchie - في الدليل الرئيسي للجذر - /root/sweet .

3. ومع ذلك ، نحن نحاول إحياء خادمنا بحيث يبدأ بشكل طبيعي. يتم سحب كل وحدة التخزين المنطقية c من /dev/md0 (حيث لدينا كل شيء) إلى /dev/sdb2 ، حيث عمل الخادم بالكامل في البداية.

 $ pvmove /dev/md0 /dev/sdb2 $ vgreduce vg_c6m1 /dev/md0 

نقوم بإطفاء الخادم وإزالة الأقراص 1 و 3 ، وترك القرص الثاني ، والتمهيد من Live CD / DVD في الإنقاذ. نجد قسم التمهيد ، واستعادة أداة تحميل التشغيل في اليرقة:

 root (hd0,0) setup (hd0) 

نقوم بتمزيق قرص الإقلاع والتمهيد بنجاح ، لكن الموقع لا يعمل.

4. هناك خياران لبدء الموقع: قم بتهيئة Apache من البداية أو استخدم nginx الذي تمت تهيئته مسبقًا مع php-fpm:

 $ /etc/init.d/nginx start $ /etc/init.d/php-fpm start 

أخيرًا ، تحتاج إلى بدء MySQL:

 $ /etc/init.d/mysqld start 

لا يبدأ ، والحل يكمن في /var/log/mysql . بمجرد حل المشكلة في MySQL ، سيعمل الموقع ، سيكون هناك مفتاح في الصفحة الرئيسية - RichardGCCMatthewGNUStallman! الآن لدينا إمكانية الوصول إلى 1C ، وسيكون بإمكان الموظفين الحصول على أموال. وكما هو الحال دائمًا ، أمامك الكثير من العمل لبناء البنية التحتية والأمن في الشركة.

يمكننا أيضًا مرة أخرى مشاركة قائمة بالكتب التي ساعدتنا ومشاركينا في الاستعداد للعبة: linux.mail.ru/books .

شكرا لك لأنك معنا! اتبع إعلانات الألعاب القادمة!

Source: https://habr.com/ru/post/ar447222/


All Articles