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

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

Samba ، اعدادات الخدمة والمشاركات والمستخدمي&#

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

  • Samba ، اعدادات الخدمة والمشاركات والمستخدمي&#

    السلام عليكم ورحمة الله وبركاته

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

    بداية يجب علينا تركيب الحزمة samba كتركيب اي برنامج ، ثم قم بتشغيلها حالياً وتشغيلها عند اقلاع النظام بهذه الامرين

    كود:
    service smb start
    chkconfig smb on
    الان نقوم بتحرير ملف الاعداد /etc/samba/smb.conf هذا هو ملف الاعداد الرئيسي للخدمة.

    يحتوي هذا الملف على 3 اقسام مهمة سنتطرق بالحديث عن كل قسم ، لكن علينا اولاً معرفتها :

    -1 الاعدادات العامة للخدمة وتقع تحت قسم يسمى Global ، نستخدم هذا المكان لوضع جميع الاعدادات العامة للخدمة.
    -2 اعدادات المستخدمين وتقع تحت قسم يسمى Homes ، نستخدمة لعمل المشاركات بمافيها منازل المستخدمين لدينا
    -3 اعدادات الطابعة ، ويقع تحت قسم يسمى Printers ، ونستخدمة لمشاركة أي طابعة موجودة في السيرفر ، ليستطيع استخدامها عن طريق اجهزة الشبكة الاخرى.


    أولا / قسم [global] ، وهذا مثال لبعض الاعدادات اللي توضع فيه.
    كود:
    [global]
    workgroup = mygroup
    server string = Samba Server
    hosts allow = 192.168.1. 192.168.2. 127.
    printcap name = /etc/printcap
    load printers = yes
    log file = /var/log/samba/%m.log
    max log size = 50
    كماترى فهذه اعدادات للخدمة بشكل عام ، كاسم مجموعة العمل بالاضافة الى تحديد عنوان الشبكة المحلية لدواعي امنية واعداد الطابعة بشكل تلقائي من الخدمة وتحديد اماكن تخزين ملفات اللوق لها ، هذا ليس كل شي فعند فتحك لملف الاعداد وقرائته ستجد عشرات الخيارات والاعدادات في قسم global او قسم الاعدادات العامة ، مالاتعرفه لا تعدل فيه واتركه افتراضي كما هو.


    ثانيا / قسم [homes] ، القسم الخاص بتعريف الملفات المشتركة بالاضافة الى تحديد صلاحياتها ، سيتضح ذلك ببعض الامثلة
    كود:
    [my-home]
    comment = Abdulaziz's home is sharing
    path = /home/abdulaziz/
    valid users = abdulaziz linuxac
    public = no
    writable = yes
    printable = no
    هذا مثال بسيط لعمل مشاركة للهوم تبعي /home/abdulaziz/ لاحظ ان المجلد المشترك نضع للخيار path

    أول سطر من المشاركة هو اسمها [my-home] ، اما السطر الثاني في لاضافة اي معلومات او تعليق حول المشاركة ، والسطر الثالث لتحديد الملف المشترك من الخيار path واما السطر الرابع هو لتحديد المستخدمين المسموح لهم باستخدام هذه المشاركة وهم هنا abdulaziz و linuxac فقط ، اما السطر الخامس public لجعل المشاركة عمومية لكامل مستخدمين الشبكة نقوم بوضع yes بدلا من no ، والسطر السادس writable لجعل المجلد المشتركة يمكن الكتابة فيه yes ولمنعهم نضع no ، اما السطر الاخير printable فهو لتحديد اذا كانت هذه المشاركة عبارة عن طابعه او عبارة عن disk

    هناك الكثير من الخيارات وسأسرد أهمها والاكثر استخداما ، كما يلي
    كود:
    comment = لتعليق
    path = المجلد المراد مشاركته عبر الشبكة
    valid users = لتحديد المستخدمين افصل بينهم بمسافة بحيث لا يمكن لغيرهم الوصول للمجلد ويمكننا وضع مجموعة
    public = لجعلة متاح للزوار والمستخدمين بالخيارات yes-no
    writable = للسماح بالكتابة داخل المجلد اثناء الوصول اليه
    printable = لتعريف ما اذا كانت المشاركة عبارة عن طابعه او مجلد
    browseable = المجلد مرئي اثناء البحث عن المجلدات المشتركة
    هذه أهم الخيارات المتوفره لمشاركة مجلد ما عبر الشبكة ، نسخدمها كماهو واضح من المثال السابق.

    وهنا مثال آخر لمجلد مشترك متوفر للجميع ، باسم public بمعنى عام او عمومي
    كود:
    [public]
       path = /usr/somewhere/else/public
       public = yes
       only guest = yes
       writable = yes
       printable = no
    لاحظ الخيار only guest بمعنى انه مسموح للجميع لا يطلب مستخدم معين للوصول للمشاركة.

    مثال آخر لسيرفر اف تي بي
    كود:
     
    [FTP-Server]
    	comment = READ ONLY - Corp FTP Server
    	path = /var/ftp
    	guest ok = Yes
    	browseable = Yes
    	create mask = 0755
    	directory mask = 0755
    	write list = john, fred
    	force group = ftp
    	force user = ftp
    لاحظ الخيار الجديدة
    كود:
    guest ok
    write list
    force group
    force user
    استخدمناهم عندما كنا بحاجه لذلك ;)


    ثالثا / الطابعات [printers] سأذكر أمثلة ، لكن علينا بالبداية وضع الاعدادات العامة في قسم [global] كما يلي
    كود:
    [global]
       load printers = yes
       printing = cups
       printcap name = cups
       cups options = raw
    مثال على طابعة مشتركة
    كود:
    [printers]
    	comment = All Printers
    	path = /var/spool/samba
    	browseable = no
    	public = yes
    	printable = yes
    يجب أن تكون الطابعة تعمل لديك ، ثم وبهذه الاعدادات يمكن لجميع مستخدمي الشبكة باستخدامها


    وهنا مثال آخر أكثر دقة وشمولية من الاول
    كود:
    [printers]
       comment = Network Printers
       path = /var/spool/samba
       browseable = No
       public = Yes
       guest ok = Yes
       writable = No
       printable = Yes
       admin users = @printadmins
       use client driver = Yes

    بعد اتمام اللازم واعداد المشاركات كمايجب في ملف الاعداد علينا الان التحقق منها بالامر testparm ، قم بكتابته في سطر الاوامر وانظر النتائج.
    كود:
    [[email protected] RHCE]# testparm
    Load smb config files from /etc/samba/smb.conf
    Processing section "[homes]"
    Processing section "[printers]"
    Processing section "[Shared]"
    Processing section "[SmallGroup]"
    Processing section "[Financial]"
    Processing section "[FTP-Server]"
    Processing section "[WEB-Server]"
    Loaded services file OK.
    Server role: ROLE_STANDALONE
    Press enter to see a dump of your service definitions
    وعند الضغط على انتر ، يظهر لنا تفاصيل هذه المشاركات


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

    المستخدمين لا يستطيعون مباشرة استخدام المشاركات ، لأن خدمة السامبا تطلب وجود مستخدمين خاصين بها

    أولا يجب أن يكون المستخدم موجود فعلا في النظام ، بمعنى اخر يجب ان يكون مسجل في ملف /etc/passwd حتى نستطيع تعريفه كمستخدم سامبا.

    تستطيع انشاء يوزر خاص فقط لاستخدام السامبا من خلال الامر
    كود:
    useradd -c "Samba User" -d /home/smbuser -s /sbin/nologin smbuser
    انشأنا هذا المستخدم smbuser واصبح موجود في النظام ، ولتعريفه كمستخدم سامبا ، يجب علينا استخدام الامر
    كود:
    smbpasswd -a smbuser
    سيطلب منا باسوورد واعادة كتابته.

    في النظام يخزن المستخدمين في الملف /etc/passwd وفي سامبا يخزن المستخدمون في ملف /etc/samba/smbpasswd

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

    لازالة مستخدم سامبا يمكنك من خلال الامر
    كود:
    smbpasswd -x smbuser
    مستخدمي لينوكس يمكنهم البحث عن المشاركات من خلال الامر findsmb
    كود:
    [[email protected] RHCE]# findsmb
    
                                    *=DMB
                                    +=LMB
    IP ADDR         NETBIOS NAME     WORKGROUP/OS/VERSION
    ---------------------------------------------------------------------
    10.0.0.3        EX4MPLE       +[MYGROUP] [Unix] [Samba 3.0.10-1.4E.2]
    [[email protected] RHCE]#
    ويمكنهم رؤية تفاصيل المشاركة من خلال الامر

    كود:
    smbclient -U smbuser -L 10.0.0.3
    فعند كتابة الامر سيطلب منا باسوورد المستخدم ثم سيظهر مايلي حسب المشاركات
    كود:
    Domain=[EX4MPLE] OS=[Unix] Server=[Samba 3.0.10-1.4E.2]
    
            Sharename       Type      Comment
            ---------       ----      -------
            Shared          Disk      Global Share - All Users
            SmallGroup      Disk      Small Share - Few Users
            Financial       Disk      RESTRICTED - Financial Cell
            FTP-Server      Disk      READ ONLY - Corp FTP Server
            IPC$            IPC       IPC Service (Samba Server)
            ADMIN$          IPC       IPC Service (Samba Server)
            alice           Disk      Home Directories
    Domain=[EX4MPLE] OS=[Unix] Server=[Samba 3.0.10-1.4E.2]
            Server               Comment
            ---------            -------
            Workgroup            Master
            ---------            -------
            MYGROUP              EX4MPLE
    [[email protected] RHCE]#
    وللوصول الى المجلدات المشتركة يجب عليهم عمل mount للمجلد البعيد ليمكنهم الدخول عليه محلياً عبر الواجهة الرسومية ان ارادوا

    يمكننا عمل mount بعدة طرق والافضل هو وضع المعلومات في ملف fstab لتبقى المشاركة موجودة مباشرة في كل مره يشتغل فيها النظام ، هذه عدة امثله لعمل mount
    كود:
    smbmount //EX4MPLE/Shared /media/shared -o guest
    smbmount //EX4MPLE/SmallGroup /media/cdrive -o username=administrator
    mount -t smbfs //EX4MPLE/FTP-Server /media/anyfolder -o username=administrator
    smbmount //10.0.0.3/Financial /media/smbmnt -o username=administrator,password="secret"
    لاحظ اننا نعمل ال mount بوضع الاي بي أو الهوست ثم اسم المشاركة كما يلي
    كود:
    //10.0.0.3/ShareName
    //EX4MPLE/FTP-Server
    ولجعل الوصول متوفر عند تشغيل الجهاز ، يجب علينا وضع هذه المعلومات في ملف /etc/fstab بالطريقة التاليه
    كود:
    //10.0.0.3/Shared    /home/user/shared    smbfs    noauto,user,username=smbuser,password=secret 0 0
    لاحظ ان نوع نظام الملفات smbfs ومن ضمن الخيارات نقوم بتمرير اليوزر والباسسورد كما ترى

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

    اخيراً يمكننا اعداد كل هذا بواسطة الاداة system-config-samba وهي اداة رسومية للتحكم بالمشاركات والمستخدمين وهذه بعض الصور للأداة ، وهي تجعل سامبا سهلة جداً بعد قرائتك للموضوع وفهم التفاصيل

    هذه الواجهة


    ومن هنا نضع الاعدادات العامة للخدمة




    وهذه صورة لاضافة وازالة المستخدمين بها


    وهذه صورة لاضافة مشاركة



    وبالتوفيق للجميع ، ان شاء الله الكل يستفيد

  • #2
    100 100

    smbfs اعتقد not supported في التوزيعات الاخيرة لفيدورا
    استخدم cifs بدلا منه .. هو نفسه ولكن الاسم تغير

    ملاحظة: وضع اليوزر والباس في fstab يعرضك لمخاطر امنية لان fstab يمتلك صلاحيات القراءة للكل .. ولا يمكن تغيير ال permissions له
    ولكن فيه حل انا بستخدمه

    كود:
    //192.168.0.1/share    /media/sharename cifs  credentials=/root/.smbcredentials    0  0
    انشأ الملف /root/.smbcredentials .. ومحتواه:
    كود:
      username=myusername
      password=mypassword
    وبكده مفيش مخاطر امنية
    There's no place like 127.0.0.1

    تعليق


    • #3
      ربنا يخلى إمتحان ال RHCE اللى بيخليك تنزل مواضيع روعة ياعزوز
      Programming-Fr34ks[dot]NET
      Ma Weblog
      ابدأ بتعلم Python | Ruby
      كتاب البايثون متوافر الآن
      لا اتواجد بهذا المنتدى ... للإتصال

      تعليق


      • #4
        الله الله عليك.
        انت مخبي كل هذا علينا ؟
        ما شاء الله درس قمة في الروعة.

        تعليق


        • #5
          Net_Spider يعطيك العافية ، وكنت هذكر هالنقطه بس قلت مش عاوز اتشعب وكفاية كدا جت منك

          StrikerX لسى باقي كتيرر

          fakir الله يخليك ياحووبي

          تعليق


          • #6
            بارك الله فيك عبد العزيز باشا


            just a User innately
            اللهم اهدنا إلى الطيب من القول ؛ واهدنا إلى صراط الحميد

            تعليق


            • #7
              جزاك الله خيرا يا عبد العزيز
              حقيقي موضوع جامد جدا وثبت عندي حاجات كتير كان غايبه عني
              ربنا يبارك فيك

              تعليق


              • #8
                انا ثبت برناامج السامبا عندى
                كود:
                sudo apt-get install samba
                ونزل
                ولما جيت انفذ الامرين الاولنيين
                ده كانت النتائج
                كود:
                [email protected]:~$ service smb start
                The program 'service' can be found in the following packages:
                 * debian-helper-scripts
                 * sysvconfig
                Try: sudo apt-get install <selected package>
                bash: service: command not found
                قلت اما انزله تانى
                لقيته موجود فعلا
                كود:
                [email protected]:~$ sudo apt-get install samba
                Reading package lists... Done
                Building dependency tree       
                Reading state information... Done
                samba is already the newest version.
                0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
                انا مش عاارف ايه الى بيحصل الصرااحه
                ياريت لو حد عنده حل

                تعليق


                • #9
                  المشاركة الأصلية بواسطة scorpionabdo مشاهدة المشاركة
                  انا ثبت برناامج السامبا عندى
                  كود:
                  sudo apt-get install samba
                  ونزل
                  ولما جيت انفذ الامرين الاولنيين
                  ده كانت النتائج
                  كود:
                  [email protected]:~$ service smb start
                  The program 'service' can be found in the following packages:
                   * debian-helper-scripts
                   * sysvconfig
                  Try: sudo apt-get install <selected package>
                  bash: service: command not found
                  قلت اما انزله تانى
                  لقيته موجود فعلا
                  كود:
                  [email protected]:~$ sudo apt-get install samba
                  Reading package lists... Done
                  Building dependency tree       
                  Reading state information... Done
                  samba is already the newest version.
                  0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
                  انا مش عاارف ايه الى بيحصل الصرااحه
                  ياريت لو حد عنده حل
                  الشرح موجه أخي الكريم لتوزيعات ريدهات... لذلك الأمر service ليس موجودا في اوبنتو والتوزيعات الديبيانية...

                  في التوزيعات الديبيانية عليك ان تنادي الخدمة باستخدام مسارها الكامل مثل:

                  كود PHP:
                  /etc/inid.d/smb start 

                  مراجعة:
                  Links
                  V.I.P

                  (وَاصْبِرْ فَإِنَّ اللَّهَ لَا يُضِيعُ أَجْرَ الْمُحْسِنِينَ)
                  هود 115

                  Linux is user-friendly, but it happens to be selective about its friends

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


                  مجتمع لينوكس العربي: وقف لله تعالى وصدقة جارية، فلا بارك الله في كل من يحاول الإساءة إليه في الظاهر أو في الخفاء...


                  تعليق


                  • #10
                    الف شكر على الاهتمام والرد
                    جزاك الله خيرا

                    تعليق


                    • #11
                      I am running a samba server. I have shared the folder using samba and have added the same user and password to the smbpasswd file (encrypted password). I can access for folder
                      but if i run any command the error is :
                      Access is denied.

                      تعليق


                      • #12
                        Access is denied. in samba server on redhat 5

                        I am running a samba server. I have shared the folder using samba and have added the same user and password to the smbpasswd file (encrypted password). I can access for folder
                        but if i run any command the error is :
                        Access is denied.

                        تعليق

                        يعمل...
                        X