مشاركة الملفات بأستخدام برنامج samba

Posted on Updated on

مرحباً
في هذه التدوينة البسيطة سوف اشرح لكم كيفية عمل شبكة محلية لمشاركة
الملفات بين اجهزة الكمبيوتر بأستخدام samba
مقدمة:
يعتبر SAMBA برنامج جيد لمشاركة الملفات بين انظمة التشغيل المختلفة
ويمكنه مشاركة الملفات لويندوس و الهواتف المحمولة
يعتمد هذا البرنامج علا بروتكول SMB الذي يستخدم في شبكات مشاركات الملفات لويندوس
و الن لنبدء المغامرة
تركيب SAMBA  علا التوزيعات الدبيانية و التوزيعات المبنية علا ابونتو:
لتركيب البرنامج اكتب في الطرفية
sudo apt-get install samba
تركيب البرنامج علا ارتش وما بني عليها
اكتب في الطرفية
pacman -s samba
تركيب البرنامج علا التوزيعات الردهاتية
اكتب في الطرفية
dnf install samba

اعداد samba:
لكي يعمل البرنامج عليك تحديد المجلد الذي سوف يتم مشاركته و اسم الشبكة
وكلمة السر و المستخدم
اتبع هذه الخطوات ل اعداد البرنامج
1- انشء مجلد المشاركة فل نفترض هو في
/home/rrr/net
2- انشء كلمة السر ل المستخدم المطلوب
اكتب في الطرفية
sudo smbpasswd -a user
استبدل usr باسم المستخدم الذي تريده
و سوف يطلب منك كلمة سر اكتب كلمة السر التي ترغب بستخدامها لالدخول لالشبكة
3- انشاء الشبكة
افتح ملف الاعدادات /etc/samba/smb.conf
في اي محرر نصوص ( عليك ان تكون مستخدم جذر لكي يمكنك تعديله )
قم باضافة هذ النص في نهاية الملف

[folder_name]
path = /home/user_name/folder_name
valid users = rose
read only = no
استبدل folder_name ب اسم الشبكة الذي ترغب به

استبدل path = /home/user_name/folder_name بمسار المجلد الذي تريد مشاركته

استبدل rose باسم المستخدم الذي تريد استخدامه
ثم قم بحفض الملف و اعد تشغيل samba بستخدام الامر التالي
./etc/init.d/smbd restart

ل الوصول ل الملفات من جهاز لينكس بعيد
عليك فعل هذه الخطوات في الجهاز البعيد
 – يجب عليك ضم الشبكة كنظام ملفات كالتالي
– انشء مجلد فارغ
 سوف نستخدمه ل الوصول ل ملفات الشبكة
علا سبيل المثال
mkdir netfiles
ثم اكتب في الطرفية
mount -t cifs //server-name/share-name netfiles -o
username=shareuser,password=sharepassword
– استبدل //server-name بايبي السيرفر
– استبدل /share-name باسم الشبكة
– استبدل netfiles باسم المجلد الذي تريد استخدامه ل الوصول لملفات الشبكة
– استبدل shareuser باسم مستخدم الشبكة
– استبدل sharepassword بكلمة سر الشبكة
الن يمكنك الوصول ل الشبكة بالدخول ل المجلد الذي قمنا ب انشاءه

و للوصول للشبكة عن طريق جهاز يحتوي على ويندوس يمكنك الوصول الى
الشبكة من خلال مدير الشبكات (Network Manager).

Advertisements

تجنب التعليق وتوقف البرنامج في الاردوينو

Posted on Updated on

مرحباً
في هذه التدوينة البسيطة سوف اشرح لكم كيفية تجنب مشاكل التعليق و توقف
البرنامج عن العمل في متحكم الاردوينو
مقدمة:
في اجهزة الكمبيوتر او الهواتف الذكية اذا حدثت مشكلة في الجهاز سوف
يتصرف بشكل غير طبيعي ربما يعلق او يصبح بطيء الاستجابة
فيظطر معظم المستخدمين لاعادة تشغيل الجهاز
ولكن ماذا عن الاجهزة المضمنة (Embedded Devices) التي لا تحتوي على شاشة وتحتوي على ذاكرة قليلة وتحكم بدائي؟
ماذا اذا اردت صنع مشروعك في الاردوينو وتخاف ان يعلق في المتحكمات لا
يمكن ل المستخدم معرفة ان الجهاز يعلق او فيه مشاكل لكي يقوم باعادة
تشغيله ف اذا علق المتحكم يتوقف البرنامج الذي بداخله عن العمل بدون
شعورك
لا تقلق يا عزيزي القاريء فالحل بسيط
توفر معظم المتحكمات منها الاردوينو تقنية اسمها Watchdog (كلب المراقبة )
وهي تقوم على مبدأ ان البرنامج يجب ان يعيد تشغيل الWatchdog قبل وصوله
الى الوقت المحدد ف اذا وصل الWatchdog للوقت المحدد يقوم باعادة تشغيل
المتحكم.

فعلى البرنامج اعادة تفعيل الWatchdog كي يستمر بالعمل فالبرنامج
المتوقف او المعلق لا يستطيع اعادة تفعيل الWatchdog فيتم اعادة تشغيل
الجهاز ويعود البرنامج يعمل بشكل طبيعي

و الان لنبدء المغامرة
سوف نقوم بكتابة برنامج يطبع كلمة عند تشغيل المتحكم ثم نجعله لا يقوم
باعادة تفعيل كلب المراقبة ليعيد تشغيل المتحكم
في البداية علينا استدعاء المكتبة المطلوبة
#include <avr/wdt.h>

الان في دالة setup() التي تعمل عند تشغيل الجهاز لنطبع عبارة علا المنفذ التسلسلي

void setup()
{
  Serial.begin(115200);
  Serial.print(F(“\r\n start start”));

}
ثم بنفس الدالة علينا تفعيل كلب المراقبة بستخدام الدالة
ولتي تءخذ معامل واحد وهو المدة التي يعيد تشغيل المتحكم اذا لم يتم اعادت تتشغيله
المعامل يكون بهذه الصورة
WDTO_15MS
استبدل الرقم ب رقم اجزاء الثانية الذي تريدها و اذا تريده يعتمد علا
الثواني ازل حرف m
مثال:

wdt_enable(WDTO_15MS);     // enable the watchdog
هذه دالة setup بعد الاضافة

void setup()
{
  Serial.begin(115200);
  Serial.print(F(“\r\n start start”));

wdt_enable(WDTO_15MS);     // enable the watchdog
}
اترك دالة loop فارغة و قم برفع البرنامج لالمتحكم وسوف تلاحز انه سوف
يطبع عبارة كل مدة لءنه سوف يعيد التشغيل

الن لنعدل البرنامج لنجعله يعيد تفعيل كلب المراقبة كل مدة كي يتجنب
اعادة تشغيل المتحكم
يتم اعادة تفعيل كلب المراقبة بستخدام الدلة wdt_reset
يمكنك وضعها في الدالة loop ويستحسن وضعها في حلقة مثال
loop()
{
  while(1)
  {wdt_reset();          // uncomment to avoid reboot
  }
}

الان قم برفع برنامجك المعدل للمتحكم وسوف تلاحظ انه يطبع العبارة لمرة
واحدة لانه لم يعيد تشغيل المتحكم

تركيب شهادة SSL مجانية علا خادمك

Posted on Updated on

مرحبًا
في هذه التدوينة سوف اشرح لكم كيفية اعداد خادمك ليستخدم https بدلا من http

في البداية لنتعرف اولا على بروتكول https,

https هو اختصار ل HyperText Transport Protocol Secure وهو نسخة معدلة من بروتكول http باضافة حماية كبيرة عليه عن طريق استخدام شهادة التحقق .
لعمل اتصال https تحتاج شهادة ssl وهي عبارة عن مفتاح تشفير يقوم بعمل الحماية لك , هذه الشهادة يجب ان تكون موقعة من مؤسسات موثوقة ليتم الوثوق بها من خلال متصفحات الويب.

و الان لنبدأ المغامرة
سوف نستخدم في هذه التدوينة شهادة مجانية مقدمة من lets encrypt وهي اشبه بمؤسسة مدعومة من مؤسسة لينكس تعمل على توفير شهادة ssl مجانية .
لاستخدام هذه الخدمة علينا تركيب خادم lets encrypt

افتح الطرفية و اكتب

wget https://dl.eff.org/certbot-auto

سوف يقوم بتنزيل ملف اسمه certbot-auto
قم بتغير صلاحيته لملف تنفيذي بكتابة

chmod +x certbot-auto

ثم قم بتنفيذه بكتابة

./certbot-auto

ليقوم بتنزيل العميل و يصبح هذ الملف هو الاداة المستخدمة لتثبيت الشهادة

اعداد https على خادم الويب:
اذهب الى المجلد الذي فيه العميل الذي قمنا بتحميله من خلال الطرفية ثم اكتب في الطرفية:

./certbot-auto --apache

سوف يطلب منك النطاق و بريدك الالكتروني ثم يصبح خادمك يعمل بستخدام https

اعداد https على خادم الويب :nginx
اذا كنت تستخدم خادم الويب nginx فيجب ان تستخدم هذه الطريقة
1- قم بتعديل ملف اعداد السيرفر الذي هو في المسار

/etc/nginx/sites-available/default

على سبيل المثال قم بفتحه باستخدام nano

sudo nano /etc/nginx/sites-available/default

اضف اعداد خادم جديد كتالي

server {
# SSL configuration
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
root /var/www/html;
server_name example.com;
# Add index.php to the list if you are using PHP
index index.html index.php index.htm index.nginx-debian.html;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
location ~ /.well-known {
allow all;
}
}

استبدل كل

example.com

بالنطاق الذي تريد ان تعمل عليه الشهادة و استبدل

/var/www/html

بمسار ملفات موقعك ثم احفظ ملف الاعدادات,
الان اذهب الى المكان الذي حفظت فيه العميل ثم نفذ هذ الامر في الطرفية

./certbot-auto certonly --webroot -w /var/www/html -d example.com

ايضا , استبدل

example.com

بالنطاق الذي تريد ان تعمل عليه الشهادة و استبدل

/var/www/html

بمسار ملفات موقع الويب الذي تريد ان تعمل عليه الشهادة

اعادة تنشيط الشهادة:

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

اذهب الى المجلد الذي ثبتت فيه العميل ونفذ الامر

./certbot-auto renew --quiet --no-self-upgrade

تقنية طرق المنافذ (PORT KNOCKING)

Posted on Updated on

في هذه التدوينة البسيطة سوف اشرح لكم تقنية طرق المنافذ
مقدمة:
طرق المنافذ (PORT KNOCKING)
هي تقنية اتصال بين الاجهزة مثل الحواسيب عبر المنافذ المغلقة , سميت ب ” طرق المنافذ ” لان الخادم يستخدم محاولة الاتصال بالمنافذ المغلقة بصورة متسلسلة كرمز تأكيد,  التقنية تعمل بالطريقة التالية:-
يقوم السيرفر باغلاق المنافذ المطلوب اغلاقها ويتم برمجته على ان يستخدم محاولة الوصول الى عدد من المنافذ بطريقة متسلسلة , الطريقة التي يستخدمها للمراقبة هي مراقبة سجلات جدار النار فجدار النار يسجل أقرأ باقي الموضوع »

ذاكرة EEPROM في الاردوينو

Posted on

في هذا الدرس سنشرح عن ذاكرة EEPROM في الاردوينو

EEPROM هي ذاكرة لا تفقد محتوياتها بعد اعادة تشغيل الجهاز او انقطاع التيار عنه , و يمكنك الاستفادة منها في اشياء كثيرة مثل حفظ كلمات السر فهي لا تفقد بعد اعادة التشغيل لكن تذكر ان ذاكرة EEPROM بطيئة و مساحة تخزينها قليل

أقرأ باقي الموضوع »

الدرس الثامن و العشرون : اساسيات قواعد البيانات

Posted on Updated on

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

المتطلبات:

1- ان تمتلك اساسيات في التعامل مع قواعد mysql من اوامر الاستعلام و الى اخره و هناك كتب كثيرة لشرح هذا الموضوع

2- تنصيب مكتبة تطوير قواعد بيانات mysql اسم المكتبة قد يكون مختلف في بعض التوزيعات ولكنه يبدأ بعبارة أقرأ باقي الموضوع »

الدرس السابع و العشرون : ارسال الاشارات و استقبالها

Posted on Updated on

الاشارة هي طريقة لارسال اوامر لبرنامج من برنامج اخر(غالباً تكون انهاء البرنامج)

في سي يمكنك استخدام الدالة kill وهي تأخذ 2 معامل

1- معرف البرنامج الذي تريد ارسال الاشارة اليه(فهناك طرق كثيرة لعرض معرف العملية اسهلها هي عن طريق الامر ps من الطرفية) أقرأ باقي الموضوع »