إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

سؤال عن تشغيل سكربت

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • [طلب] سؤال عن تشغيل سكربت

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

  • #2
    GPL - GNU General Public License رخصّة أخي الكريم

    إذا كنت تقصد سيكربت لايعمل الا بكلمة مرورو الخطوات التالية ستحقق ماتريد :

    1- دع المستخدم يدخل كلمة مرور
    2- كلمة المرور التي يدخلها المستخدم ثمّ شفّرها بتشفير MD5 أو تشفير أقوى مثل sha512
    3- إجعل السيكربت يطابق كلمة المرور المشفّرة مع ناتج التشفير داخل السيكربت نفسه
    4-
    إجعل السيكربت يتحقق من مكانه (كي لاينسخة لمكان آخر)
    5- إجعل السكربت يطابق
    MD5 مع نفسه (بحيث لن يعمل إذ أجري تعديل عليه) ويطابقه مع ناتج MD5 في ملف آخر
    6- كي لاتجعل المستخدم يطّلع على مصدر السيكربت (ممكن ينسخة ويحذف شرط المقارنة) شفّر السيكربت نفسه (طبعاً ستعملها مرتين كي تعرف بصمة MD5 له بعد التشفير)
    7- أزل صلاحيات الكتابة على السيكربت إجعلها قرآءة والتفيذ فقط

    أعتقد أننا ضيقنا الخناق كثيرا
    كتب مفيدة : كتاب لينكس الشامل | دليل المستخدم العربي في أوامر لينكس | مخطوطتك الأولى (script) في الشيل | أوبنتو ببساطة

    تعليق


    • #3
      السلام عليكم اخ بركات جميل جدا ولكن ضيقة الخناق علي كثيرًَ الفكره كثير رائعه وتصلح لما اريد لكن يبقى الجانب العملي من الكود هو الذي استصعب منه هذا الامر
      اذا كان لديك سكربت يقوم بهذه المهمه اخذ منه الفكره اعتقد تكون افضل

      بالنسبة لتشفير اسف لم اكن اقصد gpl عفوا هو GPG key
      كنت متوقع انه ممكن اعمل مفاتحين اذا تتطابق المفتاح الرئيسي مع الفرعي يعمل سكربت

      انتظرك

      تعليق


      • #4

        1- دع المستخدم يدخل كلمة مرور
        2- كلمة المرور التي يدخلها المستخدم ثمّ شفّرها بتشفير MD5 أو تشفير أقوى مثل sha512
        3- إجعل السيكربت يطابق كلمة المرور المشفّرة مع ناتج التشفير داخل السيكربت نفسه
        -------------------------------------------------------------------------
        ضع هذه الأجزاء (بعد التعديل) في مقدّمة السيكربت :

        -------------------------------------------------------------------------
        كود:
        #!/bin/bash
        
        printf "Password: "
        
        read -s $PASSWORD
        
        if  [  $($PASSWORD | md5sum --text | cut -d" " -f1)="28b9f918094de9bb18f614fab50e6300" ] ;then
           [B][COLOR=red] @@@@[/COLOR][/B]
        else
            echo "Access denied!"
            exit 0
        fi
        .....


        معناه :

        إطبع
        Password

        إطلب من المستخدم أن يدخل كلمة المرور وإستقبلها بالوضع المخفي ثم أسندها للمتغيّر
        $PASSWORD

        إذا كان
        md5 sum تلك الكلمة التي أدخلها المستخدم تساوي 28b9f918094de9bb18f614fab50e6300 "وهي كلمة المرور الصحيحة , لكن مشفرة"

        تجاهل الكتلة
        @@@@

        وإذا كان لايساوي ..
        else إطبع Access denied ثمّ إخرج من السيكربت

        هكذا منعنا الوصول

        أولاً تحتاج لصيانة السيكربت (بشكله هذا خطأ << لا أجيد السيكربت باش , فلم تنجح معي عملية مقارنه أبدا ! )


        يوجد في بايثون pass وتعني كتلة فارغة (لا أعرف نظيرتها في البايثون) إستبدلها بـ
        @@@@

        يمكنك إستبدل md5sum بـ sha512sum لزيادة قوّة كلمة السر (لم أستخدمها لأن الناتج طويييل) ..

        وإستبدل
        28b9f918094de9bb18f614fab50e6300 بكلمة السر المشفرة التي تريد أن يطابق معها

        -------------------------------------------------------------------------

        4-
        إجعل السيكربت يتحقق من مكانه (كي لاينسخة لمكان آخر)

        كود:
        if [$PWD = "/home/Rami" ]; then
            @@@@
        else
            exit 0
        
        .....



        صححه , وإستبدل /home/Rami بالمسار الذي ستضع به السيكربت

        ----------------------------------------------------------------------

        5- إجعل السكربت يطابق
        MD5 مع نفسه (بحيث لن يعمل إذ أجري تعديل عليه) ويطابقه مع ناتج MD5 في ملف آخر
        6- كي لاتجعل المستخدم يطّلع على مصدر السيكربت (ممكن ينسخة ويحذف شرط المقارنة) شفّر السيكربت نفسه (طبعاً ستعملها مرتين كي تعرف بصمة MD5 له بعد التشفير)

        ----------------------------------------------------------------------

        كود:
        if [$(md5sum $PWD/????  | cut -d" " -f1)=$(cat /etc/sh_md5)]; then
            @@@@
        else
            exit 0
        
        .....



        صححه , وإستبدل ???? بإسم ملف السكربت الناتج بعد ترجمة ملف c ثم أنشئ ملف نصّي سمّه sh_md5 بالمجلّد "/etc" مثلا أو أي مجلد يتطلّب صلاحية الروت للتعديل فيه

        الآن .. السيكربت جاهز , قم
        بتشفير السيكربت ,, سيتحوّل لكود C قم بترجمته وخذ بصمة md5 له وضعها في الملف sh_md5 الموجود داخل etc

        ماسيحدث ,,

        سيستخرج السكربت بصمة MD5 لنفسه , وسقارنها مع البصمة المخزنة في الملف sh_md5 ..
        في حال غيّر أحد ما في السيكربت بايت واحد فقط (عن طريق hex editor مثلا ) ! لن يعمل


        ----------------------------------------------------------------------

        7- أزل صلاحيات الكتابة على السيكربت إجعلها قرآءة والتفيذ فقط

        امممممم ليست بتلك الأهميّة ,,,


        كتب مفيدة : كتاب لينكس الشامل | دليل المستخدم العربي في أوامر لينكس | مخطوطتك الأولى (script) في الشيل | أوبنتو ببساطة

        تعليق


        • #5
          فنان اخوي بركات تسلم ايدك يا غالي يبدوا انه الطريقة ستنجح معي بأذن لله تعالى جاري تجربه يا غالي وتطبيق , بس سؤال اخوي بركات افرض مثلا السكربت اريد مثلا ان اعمل سكربت يجب ان يدخل المستخدم كلمة مرور كما تفضلت وشرحته لي

          وسكربت اخر اريد ان اعمله بعيد عن المستخدم اي عن طريقة النظام يعمل هل لديك فكره مثلا اذا لديك فكره كيف يمكن ان اجعل السكربت لا يعمل الا اذا كان الشرط صحيح بالنسبة ﻷسم الجهاز
          hostname و ip اذا كان له اي بي ثابت
          يعني لا يعمل السكربت الا اذا كان الهوست نيم صحيح
          hostname و ip الجهاز صحيح
          وهل برأيك جزئية الباسورد التي تفضلت بها بالاعلى لها فائده والا شرط اسم الجهاز واي بي للجهاز يكفي
          ما رأيك هل لديك فكره عن كيفية الشرط كيف يصنع في هذه الحاله

          واشكرك جزيلا على تعبك معي وسأبدأ بالتجربة اﻷن شكرا لك

          تعليق


          • #6
            لا أعتقد أنني إستوعبت ماقلت جيداً .. يمكنك الحصول على hostname بـ :

            كود:
            hostname -v


            والآيبي :

            كود:
            hostname -i | cut -d' ' -f2


            ثم تعمل لها مقارنة مع القيم التي تريد , في حال تحقق .. قم بكذا . لم يتحقق قم بكذا
            كتب مفيدة : كتاب لينكس الشامل | دليل المستخدم العربي في أوامر لينكس | مخطوطتك الأولى (script) في الشيل | أوبنتو ببساطة

            تعليق

            يعمل...
            X