سامبا - الخطوات الأولى. Samba و Windows File Server for Windows Networks Basic تكوين Samba

09.11.2020

Samba هو برنامج يتيح لك الوصول إلى محركات أقراص الشبكة على مختلف أنظمة التشغيلعبر بروتوكول SMB / CIFS. لديه أجزاء العميل والخادم. إنه برنامج مجاني تم طرحه بموجب ترخيص GPL.
يعمل Samba على معظم الأنظمة الشبيهة بـ Unix مثل GNU / Linux و Solaris المتوافق مع POSIX و Mac OS X Server ، والعديد من نكهات BSD ، و OS / 2 ، و Windows. يتم تضمين Samba في جميع توزيعات GNU / Linux تقريبًا ، بما في ذلك ، بالطبع ، Ubuntu.
التركيب

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

sudo apt-get install samba

سيتم تنزيل التطبيق وتثبيته تلقائيًا.

التخصيص

لنقم بعمل نسخة احتياطية باستخدام المحطة الملف الأوليإعدادات:

Sudo cp /etc/samba/smb.conf(،.bak)

يمكنك الآن تحرير ملف الإعدادات /etc/samba/smb.conf من خلال فتحه في أي محرر نصوص له حقوق المستخدم المتميز. على سبيل المثال ، مثل هذا:

Sudo nano /etc/samba/smb.conf مثال على تكوين Samba كخادم ملفات مستقل مع إذن :؛ إعدادات الخادم العالمية ؛ إعدادات الخادم العامة ؛ اسم الكمبيوتر الذي سيتم عرضه في بيئة الشبكة netbios name = main-server server string =؛ مجموعة عمل العملاء = WORKGROUP يعلن عن الإصدار = خيارات مأخذ التوصيل 5.0 = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF = 8192 SO_SNDBUF = 8192 passdb backend = أمان tdbsam = كلمات مرور فارغة للمستخدم = صحيح ؛ ملف لأسماء المستخدمين المستعارة اسم المستخدم map = / etc / samba / smbusers name resolution order = hosts wins bcast؛ wins تم تعيين الدعم إلى نعم إذا كان nmbd الخاص بك (8) في Samba هو خادم WINS. لا تقم بتعيين هذه المعلمة إلى "نعم" إلا إذا كان لديك شبكات فرعية متعددة ولا تريد أن يعمل nmbd كخادم WINS. لا تقم أبدًا بتعيين هذه المعلمة على "نعم" على أكثر من جهاز داخل نفس الشبكة الفرعية. يفوز بالدعم = لا ؛ طباعة دعم الطابعة = اسم طباعة CUPS = CUPS ؛ ملف سجل السجلات = /var/log/samba/log.٪m syslog = 0 syslog فقط = no ؛ تكوين الربط للواجهات ، التي يتم الاستماع عليها ، إذا لم يتم تحديدها يستمع إلى جميع الواجهات ؛ واجهات = lo ، eth0 ؛ ربط الواجهات فقط = صحيح ؛ ؛ ؛ المسار = / فار / ليب / سامبا / طابعات ؛ قابل للتصفح = نعم ؛ ضيف طيب = نعم ؛ قراءة فقط = نعم ؛ قائمة الكتابة = الجذر ؛ إنشاء قناع = 0664 ؛ قناع الدليل = 0775 ؛ ؛ ؛ المسار = / tmp ؛ قابل للطباعة = نعم ؛ ضيف طيب = نعم ؛ قابل للتصفح = لا ؛ ؛ ؛ المسار = / media / cdrom ؛ قابل للتصفح = نعم ؛ للقراءة فقط = نعم ؛ ضيف طيب = نعم ؛ كرة القرص الصلب؛ كرات الأسماء ، التي يراها العملاء ؛ المسار إلى مسار القرص المشترك = / media / sda1 ؛ هل يمكنني التصفح القابل للتصفح = نعم للقراءة فقط = لا يوجد ضيف طيب = لا يوجد قناع إنشاء = 0644 قناع الدليل = 0755 ؛ الارتباط باسم مستخدم أو مجموعة محددة ، والأسماء مفصولة بمسافة ؛ فرض المستخدم = user1 user2 ؛ مجموعة القوة = group1 group2 ؛ مرة اخرى HDD، عن طريق القياس مع المسار أعلاه = / media / sde1 للتصفح = نعم للقراءة فقط = لا ضيف طيب = لا إنشاء قناع = 0644 قناع الدليل = 0755

الآن نحن بحاجة للتعامل مع المستخدمين.

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

Smbpasswd -مستخدم

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

مستخدم Smbpasswd

بعد ذلك ، سننشئ اسمًا مستعارًا لمستخدم اسم المستخدم من أجل تسهيل الوصول من جهاز Windows الذي لدينا ، على سبيل المثال ، مستخدم باسم Admin ، لذلك سننشئ ونعدل الملف / etc / samba / smbusers:

Sudo touch / etc / samba / smbusers sudo gedit / etc / samba / smbusers

اكتب سطرين للملف

# Unix_name = SMB_name1 مستخدم SMB_name2 = المسؤول

هذا يكمل التكوين ، إعادة تشغيل Samba.

خادم ملفات سامبا لشبكة ويندوز

غالبًا ما يتم استخدام Samba لإنشاء خادم ملفات على شبكة Windows.

خادم الملفات في مجال Active Directory

لإنشاء خادم ملفات مدمج في مجال Active Directory ، تحتاج أولاً إلى إدخال جهاز Ubuntu الخاص بك في المجال. تم تخصيص مقال منفصل لهذا:

لإنشاء خادم ملفات ، لا تحتاج إلى تكوين PAM ، ما عليك سوى إضافة مستخدمي المجال والمجموعات إلى النظام عبر Winbind.

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

تجدر الإشارة هنا إلى شيء مهم جدًا على الفور: يحاول Samba عرض أذونات على ملفات Windows لأذونات Unix ، ولكن نظرًا للاختلافات الجوهرية في آليات تعيين الأذونات ، فإن هذا ليس ممكنًا دائمًا. يرجى ملاحظة أن حقوق الملفات يتم التحكم فيها دائمًا وعلى أي حال من خلال نظام الملفات الخاص بك على جهاز كمبيوتر مزود بـ Ubuntu ، يمكن لـ samba التكيف معها فقط ، ولكن لا يمكن تغيير سلوكها.

لذلك ، بشكل افتراضي ، سيكون للموارد المشتركة خيارات تحكم في الوصول ضئيلة للغاية - تعيين حقوق مختلفة لمستخدم ، ومجموعة ، وكل شخص آخر. ومع ذلك ، من السهل إصلاح ذلك عن طريق إضافة دعم POSIX ACL إلى نظام الملفات الخاص بك. في هذه الحالة ، سيكون من الممكن تعيين حقوق مختلفة لمستخدمين ومجموعات مختلفة ، تمامًا كما هو الحال في Windows.

دعم POSIX ACL موجود على الأقل في ext3 / 4 ، لتنشيطه تحتاج فقط إلى إضافة معلمة ACL إلى خيارات التحميل للقسم المطلوب.

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

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

على سبيل المثال ، أستخدم دائمًا أقراص LVM منفصلة لتنظيم الموارد المشتركة ، وخطوط fstab الخاصة بي تبدو كالتالي:

/ dev / mapper / data-profiles / var / data / profile ext3 ، noexec ، acl ، user_xattr 0 2

هناك حاجة إلى خيار noexec لأنه لا ينبغي أن تكون هناك ملفات Linux قابلة للتنفيذ على كرات Windows بنسبة 100٪ ، ولا يضر تشغيلها بأمان مرة أخرى.

للعمل مع ACL على Ubuntu ، تحتاج إلى تثبيت حزمة من الأدوات المساعدة المقابلة:

Sudo aptitude install ACL

بعد ذلك ، يمكنك إلقاء نظرة على الحقوق الممتدة (مثل ACL) في ملف أو دليل باستخدام الأمر

ملف Getfacl

وتثبيت مع الأمر

ملف Setfacl

فقط في هذه الحالة ، أود أن ألفت انتباهك إلى حقيقة أن آلية POSIX ACL لا علاقة لها بـ Samba - إنها مجرد وظيفة إضافية على آلية امتياز Linux القياسية. وفقًا لذلك ، يمكن لـ Samba استخدامه ، لكن لا يمكنه تغييره أو الالتفاف حوله بأي شكل من الأشكال.

للعمل مع سمات نظام الملفات الممتدة ، تحتاج إلى حزمة أدوات مساعدة تشبه إلى حد بعيد acl - attr ، والتي يمكن تثبيتها باستخدام الأمر

Sudo aptitude install Attr

لعرض السمات الممتدة ، يمكنك استخدام الأمر

ملف Getfattr

وللتثبيت

ملف Setfattr

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

حسنًا ، سيتعين عليك إدارة وراثة الحقوق من جهاز يعمل بنظام Windows باستخدام الأدوات القياسية لهذا النظام. أو باستخدام الأداة المساعدة smbcacls ، إذا كان بإمكانك معرفة كيفية استخدامها.

هناك أيضًا وحدة VFS تجريبية ، acl_xattr ، والتي تسمح لك بتخزين NT ACLs بالكامل في سمات ممتدة. لسوء الحظ ، لا يوجد توثيق عليه ، لذلك من الصعب قول شيء واضح عنه. من المتوقع أن يتمتع Samba 4 بدعم NT ACL المتكامل بالكامل ، ولكن في الوقت الحالي ، يمكنك استخدام ما هو موجود.

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

بالإضافة إلى ذلك ، تسمح سمات نظام الملفات الموسعة لـ Samba بدعم سمات ملفات DOS بشكل كامل مثل المخفي ، والمؤرشف ، وما إلى ذلك.

لذلك ، سنفترض أن لديك دليلًا على النظام تريد مشاركته من خلال Samba (وهو موجود على قرص مزود بدعم ACL و user_xattr). أنت الآن بحاجة إلى تكوين مشاركتها بالفعل. للقيام بذلك ، تحتاج إلى إدخال المعلومات المناسبة في ملف /etc/samba/smb.conf.

دعنا نبدء ب الاعدادات العامة، والتي يمكن إضافتها إلى قسم هذا الملف (هذه بعيدة كل البعد عن جميع المعلمات الممكنة ، فقط عدد قليل من المعلمات المفيدة للغاية):

# تعطيل مشاركة الطابعة. ما لم تكن ، بالطبع ، تريد حقًا مشاركتها. # لتعطيله تمامًا ، تحتاج إلى تحديد جميع الأسطر الأربعة الموجودة أسفل طابعات التحميل = عدم إظهار معالج إضافة طابعة = لا يوجد اسم printcap = / dev / null تعطيل spoolss = نعم # إنشاء الملفات المخفية بالأسماء التالية عند عرضها من Windows إخفاء الملفات = / $ RECYCLE .BIN / desktop.ini / lost + found / Thumbs.db / # استخدم مستخدم UNIX التالي للمشاركة العامة كحساب ضيف ضيف = لا أحد # تعامل المستخدمين غير المسجلين كخريطة ضيف إلى الضيف = مستخدم سيء ## الإعدادات باستخدام ملف متقدم سمات النظام # معالجة وراثة الحقوق باستخدام مخطط سمات FS الموسعة وراثة ACL = نعم # استخدم سمات FS الموسعة لتخزين سمات DOS تخزين سمات دوس = نعم # تعطيل تعيين سمة DOS على حقوق UNIX ، ممكّن افتراضيًا # وفقًا لرجل smb.conf عند الاستخدام السمات الموسعة يجب تعطيل هذه الخيارات في أرشيف الخريطة = لا يوجد نظام خرائط = لا توجد خريطة مخفية = لا توجد خريطة للقراءة فقط = n ا

الآن إعدادات المورد المشترك مباشرة. اسميها مظهر، وهي موجودة فعليًا على جهاز Ubuntu / فار / بيانات / ملفات شخصية:

تعليق تعليق # = ملفات تعريف المستخدمين # المسار إلى المجلد الذي نشاركه path = / var / data / profiles / # المستخدمون الذين لديهم حقوق وصول غير محدودة إلى المشاركة # لدي مجموعة من مسؤولي المجال. # عند العمل مع الملفات ، يتم التعامل مع هؤلاء المستخدمين كمستخدمين جذر محليين = "DOMAIN \ Domain Administrators" # إخفاء المجلدات التي لا يملك المستخدم حق الوصول إليها إخفاء غير قابل للقراءة = نعم # ليس الوصول للقراءة فقط للقراءة فقط = لا # أقنعة لـ الملفات التي تم إنشاؤها - يمكن ضبطها حسب الرغبة #create mask = 0600 # قناع الدليل = 0700 # تعطيل الأقفال - من الأفضل تعطيل القفل = لا

هناك العديد من الخيارات الأخرى - راجع وثائق Samba للحصول على التفاصيل.

لا تنسَ وضع المالك الصحيح وحقوق الوصول للمجلد الذي تشاركه ، وإلا ، على الرغم من أي إعدادات لـ samba ، فقد يتم حظر الكتابة إليه على مستوى حقوق Linux. عادة ما أفعل هذا:

Sudo chmod ug + rwx / var / data / profiles sudo chown root: "مستخدمو المجال" / var / data / profiles

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

تحقق من صحة تكوين Samba باستخدام الأمر

Testparm

ثم أعد تشغيل Samba:

إعادة تشغيل Sudo /etc/init.d/samba

يمكنك الآن الوصول إلى المورد المشترك من أي جهاز في المجال.

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

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

خادم ملفات مستقل

لا يمتلك كل شخص مجال Active Directory. لذلك ، غالبًا ما يكون من الضروري تنظيم تخزين ملفات مستقل على جهاز Linux خاص به النظام الخاصتفويض. هذا من السهل جدا القيام به.

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

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

عادة ما تكون القيمة حصة أو مستخدم.

خادم ملفات مستقل بدون إذن

إنه مناسب للمنزل حتى يتمكن الجميع من رؤية الجميع. يمكن القيام بذلك عن طريق إضافة 4 أسطر إلى قسم /etc/samba/smb.conf من الملف. قد يكون البعض موجودًا بالفعل.

[global] workgroup = WORKGROUP تعيين الضيف = اسم netbios للمستخدم السيئ = أمان دفتر الملاحظات = مستخدم

NOTEBOOK - اسم الكمبيوتر الذي سيكون على الشبكة. بالإضافة إلى ذلك ، تحتاج إلى تثبيت برامج إضافية:

sudo apt-get install samba

بالنسبة إلى kubuntu ، تحتاج أيضًا إلى تثبيت smb4k. بعد تحرير التكوينات ، تحتاج إلى إعادة تشغيل الخدمات. في systemd (منذ 15.04) تبدو إعادة التشغيل كما يلي:

أعد تشغيل sudo systemctl smbd.service nmbd.service

يمكنك عرض "الكرات" من خلال متصفح الملفات nautilus أو konkueror أو مثل هذا:

Smbclient -L 127.0.0.1

... الوثائق الرسمية باللغة الإنجليزية.

مشاركة مجلد على ubuntu

قم بإنشاء مجلد لمشاركة الملفات.

mkdir ~ / حصة

أضف الأسطر التالية إلى نهاية ملف /etc/samba/smb.conf ، واستبدل yuraku1504 باسم مستخدم كمبيوتر samba:

[MyShareWork] تعليق = مسار مشاركة Samba مجهول = / home / yuraku1504 / مشاركة ضيف طيب = نعم قابل للتصفح = نعم قابل للكتابة = نعم للقراءة فقط = لا يوجد مستخدم فرض = yuraku1504 Force Group = yuraku1504

سيتم فتح المجلد للقراءة والكتابة.

Samba هو برنامج يسمح لأجهزة الكمبيوتر التي تعمل بنظام UNIX / Linux بتقليد أجهزة Windows. باستخدام Samba ، يمكن لأجهزة الكمبيوتر تبادل الملفات أو إدارة مهام الطباعة كخوادم ملفات أو خوادم طباعة Windows. مثل نظام التشغيل UNIX / Linux الذي يعمل عليه ، يعد Samba برنامجًا مفتوح المصدر تم تطويره بواسطة العديد من المبرمجين. مصدر الرمز.

يتم استخدام بروتوكول SMB بواسطة أنظمة التشغيل Microsoft Windows 2000 و NT و 95/98 لتوفير الوصول إلى الأقراص والطابعات. استخدام مجموعة أدوات Samba من Andrew Tridgell ( [بريد إلكتروني محمي]) ، يمكن لأجهزة UNIX (بما في ذلك Linux) تنظيم الوصول إلى الأقراص والطابعات لأجهزة Windows. أدوات smbfs التي كتبها Paal-Kr. انجستاد ( [بريد إلكتروني محمي]) وفولكر لينديك ( [بريد إلكتروني محمي]) ، قم بتمكين أجهزة UNIX من تحميل مشاركات SMB المتوفرة على أجهزة Windows أو Samba.

يمكن تنفيذ الإجراءات التالية الأكثر شيوعًا باستخدام Samba:

  1. امنح قرص Linux الوصول إلى أجهزة Windows.
  2. الوصول إلى أقراص Windows لأجهزة Linux.
  3. امنح حق الوصول إلى طابعات Linux لأجهزة Windows.
  4. الوصول إلى طابعات Windows من أنظمة Linux.

تركيب واختبار سامبا

التثبيت ، كما تعلم ، يجب أن يبدأ بدراسة مفصلة للوثائق. ومع ذلك ، يتجاهل معظم مسؤولي النظام هذه القاعدة ، مسترشدين بأخرى: "إذا فشل كل شيء آخر ، اقرأ الوثائق." بشكل عام ، نوصي ببدء تثبيت Samba باستخدام أمر بسيط: $ man samba (الشكل 1).

وأيضًا من خلال قراءة الوثائق المتوفرة على http://www.samba.org/. وتجدر الإشارة إلى أنه لاستخدام Samba ، يجب أن يكون جهازك على مقطع Ethernet LAN واحد باستخدام بروتوكول TCP / IP. لن يعمل Samba مع بروتوكولات الشبكة الأخرى. هذا سهل من حيث المبدأ ، لأن Linux و Windows 95/98 / NT يأتيان مع دعم TCP / IP. ومع ذلك ، إذا كنت تستخدم أجهزة Windows 3.x ، فأنت بحاجة إلى إضافة دعم TCP / IP.

من أين احصل على

للحصول على النصوص المصدر احدث اصدار Samba ، انتقل إلى http://www.samba.org/ وحدد خادم مرآة أقرب إليك: ftp://ftp.samba.org/. يتم تضمين حزمة Samba مع توزيعات عدد من أنظمة UNIX / Linux ، مثل Rad Hat أو Suse Linux. اقرأ وثائق Linux الخاصة بك بعناية ، ومن الممكن أن تحتاج فقط إلى إدخال القرص المضغوط وتثبيت حزم Samba. في هذه الحالة ، يمكنك متابعة قراءة المقال من الفصل التالي.

بعد استلام هذه الحزمة ، نقوم باستخراج كل ما هو موجود تحت "الختم" * .tar.gz ، على سبيل المثال ، في الدليل / tmp (ولهذا ليس من الضروري أن يكون الجذر :) ، وهذا هو:

$ tar -zxvf samba-latest.tar.gz

إذا لم تكن لديك مشكلة في استخراج هذه الحزمة ، فستجد دليلًا جديدًا ، مثل samba-latest ، بالملفات المستخرجة. انتقل إليه ، وابحث في ملفي "README" و "Manifest" - تعليمات التثبيت موجودة في الملف الأخير وتبدو كما يلي:

$ ./configure جعل تثبيت $ su #

الآن نحن بحاجة إلى الانتباه إلى مكان وجود ملفات التكوين الخاصة بك. تضعها معظم توزيعات Samba في الدليل / etc افتراضيًا وتضعها في الدليل / usr / local / samba.

تكوين سامبا

توجد معلومات تكوين Samba الأساسية في ملف smb.conf. يجب التعامل مع هذا الملف بعناية. إذا كنت تخطط لتغيير إصدار العمل بأي طريقة ، فتأكد من عمل نسخة.

لبدء تشغيل الخادم لأول مرة ، يجب أن يكون لديك نسخة صالحة للعمل من ملف smb.conf. قم بالتغيير إلى الدليل حيث يجب أن يوجد ملف التكوين الخاص بك. على الأرجح سيكون / etc أو / usr / local / samba / lib. اعمل نسخة من هذا الملف، على سبيل المثال smb.old - هذا ممكن مع امتيازات الجذر. الآن بعد أن أصبح لديك ملف "نظيف" ، يمكنك إدخال أبسط تكوين ، أي اكتب الأسطر التالية:

# ملف تكوين Samba الأساسي (smb.conf) مجموعة العمل = PTO اسم netbios = GALKA

أدناه سنكتشف ما تعنيه هذه الأسطر في ملف التكوين ، لكن أولاً سنأخذ استراحة مؤقتًا منه وننتقل إلى شياطين SMB.

إطلاق الشياطين

هناك نوعان من شيطان SMB: / usr / sbin / smbd و / usr / sbin / nmbd. يمكنك بدء Samba daemons من inetd أو كعملية قائمة بذاتها. سوف يستجيب Samba بشكل أسرع قليلاً عندما يبدأ كعملية قائمة بذاتها.

في بعض الأحيان يكون من الضروري التحقق من وجود سطور مشابهة لما يلي في ملف / etc / services:

Netbios-ns 137 / tcp nbns netbios-ns 137 / udp nbns netbios-dgm 138 / tcp nbdgm netbios-dgm 138 / udp nbdgm netbios-ssn 139 / tcp nbssn

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

لبدء الشياطين من inetd ، ضع الأسطر التالية في ملف التكوين inetd ، /etc/inetd.conf:

# خدمات SAMBA NetBIOS (لمشاركة ملفات الكمبيوتر والطباعة) netbios-ssn stream tcp nowait root / usr / sbin / smbd smbd netbios-ns dgram udp wait root / usr / sbin / nmbd nmbd

ثم أعد تشغيل البرنامج الخفي inetd عن طريق تشغيل الأمر:

Kill -HUP 1 `cat / var / run / inetd.pid`

لبدء الشياطين من البرامج النصية لبدء تشغيل النظام ، ضع النص التالي في /etc/rc.d/init.d/smb (لتوزيع RedHat) أو /etc/rc.d (لتوزيع Suse Linux) وأنشئ روابط رمزية لها باستخدام أسماء مثل /etc/rc.d/rcX.d/S91smb (تبدأ خدمات SMB في وضع متعدد المستخدمين) ، /etc/rc.d/rcX.d/K91smb (تقتل خدمات SMB عند الإغلاق) ، /etc/rc.d/ rc6 .d / K91smb (يقتل خدمات SMB عند إعادة التشغيل) ، حيث X هو رقم مستوى تمهيد النظام ، وعادة ما يكون 2 أو 3.

#! / بن / ش. /etc/rc.config # حدد القاعدة واتبع اسم ارتباط مستوى التشغيل. base = $ (0 ## * /) link = $ (base # *) # فرض التنفيذ إذا لم يتم استدعاؤها بواسطة دليل مستوى التشغيل. test $ link = $ base && START_SMB ​​= yes test "$ START_SMB" = "yes" || exit 0 # قيمة إرجاع الصدى للنجاح (المحددة في /etc/rc.config). return = $ rc_done case "$ 1" في البداية) echo -n "بدء خدمات SMB:" startproc / usr / sbin / nmbd -D || العودة = rc_failed $ startproc / usr / sbin / smbd -D || return = rc_failed echo -e "$ return" ؛؛ startd) echo -n "بدء خدمات SMB:" startproc / usr / sbin / nmbd -D -d 10 || العودة = $ rc_failed startproc / usr / sbin / smbd -D -d 10 || return = rc_failed echo -e "$ return" ؛؛ stop) echo -n "إيقاف تشغيل خدمات SMB:" killproc -TERM / usr / sbin / nmbd || العودة = rc_failed killproc -TERM / usr / sbin / smbd || return = rc_failed echo -e "$ return" ؛؛ إعادة التشغيل | إعادة التحميل) $ 0 توقف && $ 0 ابدأ || العودة = rc_failed دولار ؛؛ status) echo -n "التحقق من خدمة smb:" checkproc / usr / sbin / nmbd && echo -n "OK" || echo -n "بدون معالجة" checkproc / usr / sbin / smbd && echo "OK" || صدى "لا توجد معالجة" ؛؛ *) صدى "الاستخدام: $ 0 (بدء | إيقاف | إعادة تشغيل | إعادة تحميل | الحالة)" خروج 1 esac # إبلاغ المتصل ليس فقط بإسهاب وتعيين حالة الخروج. اختبار "$ return" = "$ rc_done" || خروج 1 مخرج 0

إذا تلقيت ، عند بدء تشغيل Samba ، رسالة تفيد بأن البرنامج الخفي لا يمكنه الاتصال بالمنفذ 139 ، فمن المرجح أن لديك بالفعل عمليات Samba قيد التشغيل ولم يتم إنهاؤها. انظر إلى قائمة العمليات (باستخدام الأمر "ps ax | grep mbd") لمعرفة ما إذا كان هناك المزيد من خدمات Samba قيد التشغيل. إذا رفضت الشياطين البدء لسبب آخر ، فعلى الأرجح أن هذا البرنامج النصي لا يتناسب مع نظام UNIX / Linux الخاص بك وسيتعين عليك البحث في الوثائق مرة أخرى ، وإصلاح شيء ما فيه ، وربما إعادة كتابته.

إعداد smb.conf الأساسي

من الواضح ، في التكوين الموصوف أعلاه ، أن Samba يمكن أن يعمل ، لكن عمليا لا يمكنه فعل أي شيء. سيتم مناقشة المزيد من الأمثلة المفيدة والمعقدة أدناه. لكن عليك أولاً أن تفهم توجيهات smb.conf.

يبدأ كل قسم من الملف بعنوان قسم مثل ، إلخ.

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

أخيرًا ، أخبرنا Windows أن Samba هو خادم WINS وأن Samba سيكون خادم التصفح. للقيام بذلك ، انتقل إلى خصائص بروتوكول TCP / IP (الشكل 4). في النافذة التي تظهر ، حدد تكوين WINS. حدد المربع "تمكين حل WINS." في الحقل الظاهر "خادم WINS الرئيسي" (ترتيب بحث خادم WINS) ، اكتب عنوان IP للخادم (سامبا) - 192.168.0.1 وانقر على "إضافة" أو انتقل إلى علامة التبويب خيارات متقدمة وانقر فوق في استعراض Master في النافذة اليسرى واضبط القيمة على معطل في النافذة اليمنى.

في Windows NT ، تختلف شاشات خصائص الشبكة قليلاً (كما هو موضح في الأشكال) ، لكن مفهوم البناء العام يظل كما هو.

بعد إعادة تشغيل Windows ، لا تتردد في النقر فوق " بيئة الشبكة»(جوار الشبكة) وستتمكن من رؤية خادم Samba بالإضافة إلى دليلك الرئيسي على خادم Linux. الآن يمكنك ببساطة تعيين هذه الموارد كمحركات أقراص شبكة وتعيين أحرف محركات أقراص لها.

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

التعليق = مسار الأشياء العامة = / home / public = نعم قابل للكتابة = نعم للطباعة = لا توجد قائمة كتابة =ADMINS

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

الوصول إلى أقراص Windows من Linux

من غير المحتمل أن يتمكن مستخدمو Linux OS المبتدئون من فهم النظام بسرعة للوصول إلى ملفات Linux من نظام Windows ، والعكس صحيح. لكن ليس كل شيء معقدًا جدًا. تم وصف الوصول إلى موارد Linux من نظام Windows بإيجاز أعلاه ، وسننظر الآن في الوصول إلى موارد Windows من نظام Linux.

برنامج عميل SMB لأجهزة UNIX / Linux مضمن في توزيع Samba. يوفر واجهة سطر أوامر تشبه بروتوكول نقل الملفات. يمكنك استخدام هذه الأداة لنقل الملفات بين "خادم" Windows وعميل Linux.

لمعرفة الموارد المتاحة على جهاز معين ، قم بتشغيل الأمر:

/ usr / sbin / smbclient -L host

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

لاستخدام العميل ، قم بتشغيل الأمر التالي:

/ usr / sbin / smbclient الخدمة

حيث service هي اسم الجهاز والخدمة. على سبيل المثال ، إذا كنت تحاول الوصول إلى دليل يمكن الوصول إليه باعتباره عامًا على جهاز يسمى galka ، فيجب أن يكون اسم الخدمة \\ galka \ public.

سوف تتلقى مطالبة smbclient:

توقيت الخادم هو Wen May 22 15:58:44 2001 المنطقة الزمنية هي UTC + 10.0 المجال = OS = Server = smb: \>

أوامر استخدام Samba هي نفس أوامر ftp ، ولكن إذا لم تكن مرتاحًا لأي منهما ، فاكتب h للحصول على المساعدة.

يمكنك بالطبع استخدام smbclient للاختبار ، لكنك ستتعب منه قريبًا جدًا. ستحتاج على الأرجح إلى حزمة smbfs لكي تعمل. يأتي Smbfs مع اثنين من المرافق البسيطة ، smbmount و smbumount. إنهم يعملون مثل mount و umount لموارد SMB. على سبيل المثال،

Smbmount // computer_name /atalog / Mountpoint -U user_name

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

خادم الطباعة لينوكس

لتنظيم الوصول إلى طابعة Linux من أجهزة Windows ، تحتاج إلى التأكد من أن الطابعة تعمل في نظام Linux. إذا كان بإمكانك الطباعة على نظام Linux ، فسيكون الوصول إلى الطابعة أمرًا سهلاً للغاية.

أضف إعداد الطابعة إلى ملف smb.conf الخاص بك:

الطباعة = اسم printcap bsd = / etc / printcap load printers = yes log file = /var/log/samba-log.٪m lock directory = / var / lock / samba comment = أمان جميع الطابعات = مسار الخادم = / var / spool / lpd / lp التصفح = لا للطباعة = نعم عام = نعم قابل للكتابة = لا يوجد وضع إنشاء = 0700 أمان = مسار الخادم = / var / spool / lpd / lp printer name = lp writable = yes public = yes printable = yes print command = lpr -r -h -P٪ p٪ s

تأكد من أن المسار إلى الطابعة (في حالتنا) يطابق الدليل المخزن المحدد في ملف / etc / printcap ، أي تحقق من الأسطر:

اسم Printcap = / etc / printcap تحميل الطابعات = نعم

تتحكم هذه الخطوط في ما إذا كان يجب تحميل جميع الطابعات المدرجة في / etc / printcap افتراضيًا. في هذه الحالة ، ليست هناك حاجة لتهيئة كل طابعة على حدة. يحدد القسم إعدادات الطابعات التي تريد تحديدها بشكل صريح. إذا كان نظام الطباعة الفرعي الذي تستخدمه لا يعمل بهذه الطريقة (BSD) ، فأنت بحاجة إلى إعداد ملف printcap مزيف (أو استخدم "أمر الطباعة" ، انظر أدناه). لمزيد من المعلومات حول نظام printcap ، راجع Printing-HOWTO.

الوصول إلى طابعة Windows من Linux Machines

للوصول إلى الطابعة على جهاز يعمل بنظام التشغيل Windows ، يجب استيفاء الشروط التالية:

  1. يجب أن يكون لديك الإدخالات الصحيحة في الملف / etc / printcap ، والتي يجب أن تتطابق مع بنية الدليل المحلي (للدليل المخزن ، وما إلى ذلك)
  2. يجب أن يكون لديك سكربت / usr / bin / smbprint. يأتي مع مصادر Samba ، ولكن ليس مع كل ثنائيات Samba.
  3. إذا كنت تريد تحويل ملفات ASCII إلى PostScript ، فيجب أن يكون لديك nenscript أو ما يعادله. برنامج nenscript هو محول PostScript يتم تثبيته عادةً في الدليل / usr / bin.

الإدخال في الملف أدناه / etc / printcap مخصص لطابعة HP 5MP في مشغل برامج وندوز NT. الحقول التالية في ملف / etc / printcap مستخدمة:

سم - تعليق ؛ lp هو اسم الجهاز الذي سيتم فتحه للإخراج ؛ sd - دليل التخزين المؤقت للطابعة (على الجهاز المحلي) ؛ af - ملف محاسبة استخدام الطابعة ؛ mx - الحجم الأقصى للملف (صفر - بلا حدود) ؛ إذا كان اسم عامل تصفية الإدخال (البرنامج النصي).

مقتطف من ملف / etc / printcap:

# / etc / printcap # # // galka / oreilly عبر smbprint # lp: \: cm = HP 5MP Postscript OReilly على galka: \: lp = / dev / lp1: \: sd = / var / spool / lpd / lp: \: af = / var / spool / lpd / lp / acct: \: mx # 0: \: if = / usr / bin / smbprint:

تأكد من وجود الدلائل المخزنة والدليل المستخدم للمحاسبة وقابليهما للكتابة. تأكد من أن سطر "if" يحتوي على المسار الصحيح لبرنامج smbprint النصي (الوارد أدناه) وأن الإدخالات تشير إلى جهاز الإخراج الصحيح (/ ملف خاص dev).

#! / bin / sh –x # # ملف سجل التصحيح ، قم بالتغيير إلى / dev / null إذا أردت. # logfile = / tmp / smb-print.log # logfile = / dev / null # # المعلمة الأخيرة لعامل التصفية هي اسم ملف المحاسبة. # spool_dir = / var / spool / lpd / lp config_file = $ spool_dir / .config # يجب قراءة المتغيرات التالية المعينة في ملف التكوين: # server # service # password # user Eval `cat $ config_file` # # بعض تعليمات التصحيح ، قم بتغيير >> إلى> إذا كنت تريد نفس المساحة. # echo "server $ server، service $ service" >> $ logfile (# NOTE قد ترغب في إضافة السطر "echo translate" إذا كنت تريد ترجمة # CR / LF تلقائيًا عند printing.echo ترجمة echo "print -" cat) | / usr / bin / smbclient "\\\\ $ server \\ $ service" $ password -U $ user -N -P >> $ logfile

تأتي معظم توزيعات Linux مع nenscript لتحويل مستندات ASCII إلى PostScript.

استنتاج

في الآونة الأخيرة ، اقتصرت قدرات سامبا على تلك المذكورة أعلاه فقط. ومع ذلك ، يمكن القول بثقة أن الإصدار الجديد من Samba 2.2 يلائم نظام التشغيل Windows 2000 من حيث الوظائف ويحتوي على تحسينات إضافية. مطور Samba الرئيسي ، Jeremy Allison ، يسميه "تحديثًا مهمًا" من شأنه أن يساعد أنظمة Samba على الانتشار بسهولة أكبر على شبكة Microsoft. يوفر البرنامج مدخرات ليس فقط لأنك لست مضطرًا للدفع مقابل نظام تشغيل الخادم ، ولكن أيضًا لأنك لست مضطرًا لدفع تراخيص "CAL" لجميع أجهزة الكمبيوتر التي تستخدم الخادم.

حول الميزات الجديدة لسامبا 2.2. اقرأ مقالتنا “Samba 2.2 - what الجديد » .

كمبيوتر برس 10 "2001

سامبا- برنامج يتيح لك الوصول إلى محركات أقراص الشبكة على أنظمة تشغيل مختلفة باستخدام بروتوكول SMB / CIFS. لديه أجزاء العميل والخادم. إنه برنامج مجاني تم طرحه بموجب ترخيص GPL.

سامبايعمل على معظم الأنظمة الشبيهة بـ Unix مثل GNU / Linux و Solaris المتوافق مع POSIX و Mac OS X Server ، والعديد من نكهات BSD ، و OS / 2 ، و Windows. سامبامضمن في جميع توزيعات جنو / لينكس تقريبًا ، بما في ذلك ، بالطبع ، Ubuntu.

التركيب

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

للتثبيت ، فقط افتح Terminal وأدخل:

سودو apt-get install samba

سيتم تنزيل التطبيق وتثبيته تلقائيًا.

التخصيص

لنقم بعمل نسخة احتياطية من ملف التكوين الأولي باستخدام Terminal:

Sudo cp /etc/samba/smb.conf(،.bak)

يمكنك الآن تحرير ملف الإعدادات /etc/samba/smb.conf من خلال فتحه في أي محرر نصوص له حقوق المستخدم المتميز. على سبيل المثال ، مثل هذا:

سودو نانو /etc/samba/smb.conf

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

مثال على تكوين Samba كخادم ملفات مستقل مع إذن:

؛ إعدادات الخادم العالمية ؛ إعدادات الخادم العامة ؛ اسم الكمبيوتر الذي سيتم عرضه في بيئة الشبكة netbios name = main-server server string =؛ مجموعة عمل العملاء = WORKGROUP يعلن عن الإصدار = خيارات مأخذ التوصيل 5.0 = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF = 8192 SO_SNDBUF = 8192 passdb backend = أمان tdbsam = كلمات مرور فارغة للمستخدم = صحيح ؛ ملف لأسماء المستخدمين المستعارة اسم المستخدم map = / etc / samba / smbusers name resolution order = hosts wins bcast؛ wins تم تعيين الدعم إلى نعم إذا كان nmbd الخاص بك (8) في Samba هو خادم WINS. لا تقم بتعيين هذه المعلمة إلى "نعم" إلا إذا كان لديك شبكات فرعية متعددة ولا تريد أن يعمل nmbd كخادم WINS. لا تقم أبدًا بتعيين هذه المعلمة على "نعم" على أكثر من جهاز داخل نفس الشبكة الفرعية. يفوز بالدعم = لا ؛ طباعة دعم الطابعة = اسم طباعة CUPS = CUPS ؛ ملف سجل السجلات = /var/log/samba/log.٪m syslog = 0 syslog فقط = no ؛ تكوين الربط للواجهات ، التي يتم الاستماع عليها ، إذا لم يتم تحديدها يستمع إلى جميع الواجهات ؛ واجهات = lo ، eth0 ؛ ربط الواجهات فقط = صحيح ؛ ؛ ؛ المسار = / فار / ليب / سامبا / طابعات ؛ قابل للتصفح = نعم ؛ ضيف طيب = نعم ؛ قراءة فقط = نعم ؛ قائمة الكتابة = الجذر ؛ إنشاء قناع = 0664 ؛ قناع الدليل = 0775 ؛ ؛ ؛ المسار = / tmp ؛ قابل للطباعة = نعم ؛ ضيف طيب = نعم ؛ قابل للتصفح = لا ؛ ؛ ؛ المسار = / media / cdrom ؛ قابل للتصفح = نعم ؛ للقراءة فقط = نعم ؛ ضيف طيب = نعم ؛ كرة القرص الصلب كرات الأسماء ، التي يراها العملاء ؛ المسار إلى مسار القرص المشترك = / media / sda1 ؛ هل يمكنني التصفح القابل للتصفح = نعم للقراءة فقط = لا يوجد ضيف طيب = لا يوجد قناع إنشاء = 0644 قناع الدليل = 0755 ؛ الارتباط باسم مستخدم أو مجموعة محددة ، والأسماء مفصولة بمسافة ؛ فرض المستخدم = user1 user2 ؛ مجموعة القوة = group1 group2 ؛ محرك أقراص ثابت آخر ، مشابه للمسار أعلاه = / media / sde1 قابل للتصفح = نعم للقراءة فقط = لا يوجد ضيف طيب = لا يوجد قناع إنشاء = 0644 قناع الدليل = 0755

الآن نحن بحاجة للتعامل مع المستخدمين.

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

Smbpasswd -مستخدم

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

مستخدم Smbpasswd

بعد ذلك ، سننشئ اسمًا مستعارًا لمستخدم اسم المستخدم من أجل تسهيل الوصول من جهاز Windows الذي لدينا ، على سبيل المثال ، مستخدم باسم Admin ، لذلك سننشئ ونعدل الملف / etc / samba / smbusers:

Sudo touch / etc / samba / smbusers sudo gedit / etc / samba / smbusers

اكتب سطرين للملف

# Unix_name = SMB_name1 مستخدم SMB_name2 = المسؤول

هذا يكمل التكوين ، إعادة تشغيل Samba.

يمكنك تثبيت أبسط واجهة مستخدم رسومية لـ Samba باستخدام الأمر:

سودو apt-get install system-config-samba

يبدأ بالأمر:

نظام سودو config-samba

يقوم بكتابة جميع التغييرات التي تم إجراؤها على ملف تكوين السامبا.

للإدارة عن بعد ، يعتبر Samba كواجهة ويب لـ Samba مثاليًا

أصبح من الشائع الآن العثور على أجهزة كمبيوتر تعمل بنظامي Linux و Windows على نفس الشبكة المحلية. يمكن أن تكون أسباب هذا التعايش مختلفة: على سبيل المثال ، لم يكن لدى مالكي مقاهي الإنترنت أموال كافية لشراء نظام تشغيل مرخص لجميع أجهزة الكمبيوتر ، أو ببساطة انجذب مسؤول النظام إلى الجوانب الإيجابية لنظام Linux. يتم تحديد شعبية أنظمة تشغيل Microsoft إلى حد كبير من خلال برنامج العميل لنظام التشغيل Windows. ليس سرا أن هذا القطاع البرمجياتتم تطويره بقوة. لقد بذلت العديد من الشركات جهودًا جادة لتحقيق ذلك وأنشأت برامج جيدة حقًا ، والأهم من ذلك ، سهلة الاستخدام يمكن حتى للمستخدم العادي إتقانها بسهولة. ولكن كخادم ، لم يعد موقع Windows واضحًا جدًا. يتميز الخادم الذي يعمل بنظام التشغيل Unix تقليديًا بالاعتمادية والاستقرار في التشغيل والأمان ومتطلبات أقل لموارد النظام في كثير من الأحيان. ولكن على أي حال ، ببساطة عن طريق توصيل أجهزة الكمبيوتر بمنصات برمجية مختلفة بالشبكة ، لن نحصل على النتيجة المتوقعة. تكمن المشكلة برمتها في أن هذين النظامين يستخدمان مبادئ مختلفة لتنظيم موارد الشبكة ، والتي لا تتوافق مع بعضها البعض.
نظرًا لعدم وجود حاجة لانتظار نعمة Microsoft ، ومن غير المرجح أن يتعلم Windows العمل مع نظام ملفات شبكة Unix (NFS) بالوسائل القياسية ، ولكي أكون صادقًا ، لا أعرف برامج الجهات الخارجية ، الأكثر شيوعًا الطريقة هي محاولة تعليم Unix "التظاهر" بأنه سيكون Windows NT.

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

ما الذي يجب أن يوفره SAMBA للتشغيل العادي في شبكة من أجهزة Windows؟ أولاً ، التحكم في الوصول ، والذي يمكن تنفيذه إما على مستوى المشاركة ، عند تعيين كلمة مرور لأي مورد على الشبكة وقواعد الاستخدام المقابلة (على سبيل المثال ، "للقراءة فقط") ، بينما لا يحتوي اسم المستخدم على الإطلاق لا قيمة أو منظمة أكثر كمالا ومرونة على مستوى المستخدم ، عندما يتم إنشاء حساب لكل مستخدم ، والذي يحتوي ، بالإضافة إلى الاسم وكلمة المرور ، على جميع المعلومات الضرورية حول حقوق الوصول إلى المورد. قبل الوصول إلى المورد المطلوب ، تتم المصادقة على كل مستخدم ، وبعد ذلك يتم منحه الحقوق وفقًا للحسابات. ثانيًا ، من الضروري محاكاة حقوق الوصول المحددة بواسطة نظام الملفات. الشيء هو أن الأنظمة قيد النظر لها حقوق وصول مختلفة إلى الملفات والدلائل الموجودة على القرص. تقليديا ، يحتوي يونكس على ثلاث فئات من مستخدمي الملفات: صاحب, مجموعةو بقية (أخرى)... يمكن توفير كل من هذه الموضوعات قراءة الأذونات, اكتبو ينفذ... في Windows NT ، يكون نظام الوصول أكثر مرونة إلى حد ما ، ويتم منح الوصول إلى عدة مجموعات أو مستخدمين ، ويتم تحديد حقوق الوصول المقابلة بشكل منفصل لكل موضوع. لذلك ، من المستحيل محاكاة حقوق الوصول إلى NTFS باستخدام SAMBA.

مع تشغيل العملاء نظام التشغيل Windows 9x، الوضع مختلف. منذ جد DOS ، نظرًا لحقيقة أن النظام مستخدم واحد ولا يمكن أن يكون هناك أي سؤال لأي مستخدم ، ناهيك عن المجموعات ، تم تحديد أربع سمات فقط لنظام الملفات FAT - للقراءة فقط ، والنظام ، والأرشيف والمخفي... بالإضافة إلى ذلك ، في نظام التشغيل Windows ، على عكس نظام التشغيل Unix ، فإن امتداد الملف له معنى خاص - تلك التي يراد تنفيذها لها الامتدادات .exe أو .com أو .bat. عند نسخ الملفات من أجهزة Unix إلى أجهزة الكمبيوتر التي تعمل بنظام Windows ، يتم تعيين السمات على النحو التالي:

للقراءة فقط- القراءة والكتابة للمالك ؛

أرشيفية- إعدام للمالك ؛

النظامية- التنفيذ للمجموعة ؛

مخفي - تنفيذ للمجموعة.

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

لقد تناولنا مسائل تنظيمية عامة. دعنا الآن نلقي نظرة خاصة على تنفيذ وتكوين خادم SAMBA في Linux. لكي يعمل خادم Samba ، يجب تشغيل شيطانين: smbdالتي توفر خدمة الطباعة ومشاركة الملفات لعملاء Samba (مثل Windows بجميع الخطوط) ، و nmbdالذي يوفر خدمات تسمية NetBIOS (يمكن استخدامه أيضًا للاستعلام عن شياطين خدمة التسمية الأخرى). يستخدم البروتوكول للوصول إلى العملاء TCP / IP... عادةً ما يتم تثبيت Samba جنبًا إلى جنب مع توزيع Linux. كيف تفحص؟ فقط أعط الأمر:

$ أين السامبا

ويجب أن تحصل على شيء مثل هذا:

سامبا: / usr / sbin / samba / etc / samba /usr/share/man/man7/samba.7.gz

إذا لم يتم تضمينه في التوزيع القياسي ، فمرحبًا بك في ftp://ftp.samba.org/pub/samba/samba-latest.tar.gz أو تقريبًا إلى أي خادم يحتوي على برامج Linux. الحزمة سهلة التثبيت ، لذا لتوفير مساحة ، سنفترض أنك قمت بتثبيتها. دعنا الآن نتحقق مما إذا كان البرنامج الخفي قيد التشغيل:

$ ps -aux | جذر grep smbd 1122 0.0 0.6 4440380؟ ق 16:36 0:00 smbd -D

كما ترون ، لقد بدأت بالفعل. إذا لم يكن لديك ، وتريد أن يبدأ عند بدء تشغيل النظام ، فعندئذٍ في Linux Mandrake ، على سبيل المثال ، تحقق من العنصر المطلوب في دراك كونفبدء الخدماتأو في لوحة تحكم Red Hatتكوين الخدمةهذا عادة ما يكون كافيا. أو ابدأ يدويًا: ./etc/rc.d/init.d/smb start. يُطلق على ملف إعداد Samba الوحيد اسم smb.conf وعادة ما يتم العثور عليه في الدليل / etc / (على الرغم من أنه في AltLinux ، على سبيل المثال ، يوجد في الدليل / etc / samba). تقرأها خدمة SAMBA كل 60 ثانية ، لذلك تسري التغييرات التي تم إجراؤها على التكوين بدون إعادة التشغيل ، ولكنها لا تؤثر على الاتصالات التي تم إنشاؤها بالفعل.

هذا هو السبب في أنني أحب Linux ، لأن ملفات التكوين عبارة عن نص عادي (إلى جانب ذلك ، يتم التعليق عليها جيدًا في الداخل) ، ومن أجل استخدام معظم المعلمات ، تحتاج فقط إلى إلغاء التعليق على السطر المقابل. ملف smb.conf ليس استثناء. وهي تتألف من أقسام مسماة تبدأ باسم القسم ، ومحاطة بأقواس مربعة. يحتوي كل قسم على عدد من المعلمات في شكل مفتاح = القيمة. يحتوي ملف التكوين على أربعة أقسام خاصة: ، ومصادر منفصلة (مشاركات). كما يوحي الاسم ، يحتوي القسم على أكثر الخصائص العامة التي سيتم تطبيقها في كل مكان ، ولكن يمكن بعد ذلك إعادة تعريفها في أقسام الموارد الفردية. العديد من الخيارات في هذا القسم ذات صلة بتكوين عميل Samba.

قيم معلمات القسم النموذجية عالمي:

مجموعة العمل = group_name # اسم مجموعة العمل على شبكة Windows اسم netbios = اسم الخادم على خادم الشبكة سلسلة = تعليق مرئي في نافذة خصائص عرض الشبكة ضيف موافق = نعم # إذن تسجيل دخول الضيف (ضيف طيب = لا - تم رفض تسجيل دخول الضيف) حساب الضيف = لا أحد # الاسم الذي بموجبه يُسمح بتسجيل دخول الضيف الأمان = مستخدم # مستوى الوصول. المستخدم - على مستوى المستخدم ، الأمان = مشاركة - المصادقة القائمة على اسم المستخدم وكلمة المرور. عند تخزين قاعدة بيانات كلمات المرور على خادم SMB آخر ، يتم استخدام القيم الأمنية = الخادم وكلمة المرور الخادم = name_server_NT. إذا كان الخادم عضوًا في المجال ، فإن القيمة security = domain مستخدمة ، ويتم تحديد كلمة مرور الوصول في الملف المحدد باستخدام خيار smb passwd file = / path / to / file.

بالإضافة إلى ذلك ، عند التسجيل ، يمكنك استخدام كلمات المرور المشفرة والنص العادي... يتم استخدام الأخير في Windows القديم (Windows for Workgroups ، و Windows 95 (OSR2) ، وجميع إصدارات Windows NT 3.x ، و Windows NT 4 (حتى Service Pack 3)). لتمكين خيار استخدام كلمة مرور مشفرة ، استخدم خيار تشفير كلمة المرور = نعم. يرجى إيلاء اهتمام خاص لهذا الخيار. توزيعات Linux الأقدم التي تم إنشاؤها في عصر Windows 95 (ومع إصدار أقدم من Samba) تم تعطيل تشفير كلمة المرور افتراضيًا ، وسامبا تصل إلى الإصدار 2.0لا يدعم هذا الوضع على الإطلاق (بالمناسبة ، هذا الخيار وما شابه ذلك - تلك التي لا تتعلق بالوصول إلى موارد محددة - تُستخدم أيضًا في العميل).

لعرض أسماء الملفات الروسية بشكل صحيح ، تحتاج إلى الخيارات التالية: صفحة رموز العميل = 866 ومجموعة الأحرف = koi8-r. التوزيعات ذات التوطين الجيد ، على سبيل المثال ، المشتقات من Mandrake والروسية ، لديها بالفعل هذا الخط ، وأحيانًا يكفي إلغاء التعليق عليه ، ولكن في معظم الآخرين عليك إضافته بنفسك.

يحدد خيار واجهات = 192.168.0.1/24 الشبكة (الواجهة) التي يجب أن يعمل بها البرنامج إذا كان الخادم متصلاً بعدة شبكات في وقت واحد. إذا قمت بتعيين واجهات الربط فقط = معلمة نعم ، فلن يستجيب الخادم إلا للطلبات الواردة من هذه الشبكات.

يسمح المضيفون = 192.168.1. 192.168.2. 127. - يحدد العملاء الذين يُسمح لهم بالوصول إلى الخدمة.

في القسم العام ، من الممكن استخدام متغيرات متنوعة لتكوين أكثر مرونة لعملية الخادم. بعد إنشاء الاتصال ، يتم استبدال القيم الحقيقية لهم. على سبيل المثال ، في ملف سجل التوجيه = /var/log/samba/٪m.log ، تساعد المعلمة٪ m في تحديد ملف سجل منفصل لكل جهاز عميل. المتغيرات الأكثر شيوعًا المستخدمة في القسم العام هي:

٪ أ - بنية نظام التشغيل على جهاز العميل (القيم الممكنة - Win95 و Win NT و UNKNOWN وما إلى ذلك) ؛

٪ m هو اسم NetBIOS للكمبيوتر العميل ؛

٪ L - اسم NetBIOS لملقم SAMBA ؛

٪ v - إصدار سامبا ؛

٪ I هو عنوان IP لجهاز كمبيوتر العميل ؛

٪ T - التاريخ والوقت ؛

٪ u - اسم المستخدم الذي يعمل مع الخدمة ؛

٪ H هو الدليل الرئيسي للمستخدم٪ u.

أيضًا ، لمزيد من التخصيص المرن ، يتم استخدام توجيه التضمين باستخدام المتغيرات المذكورة أعلاه. على سبيل المثال: include = /etc/samba/smb.conf.٪m - الآن ، عند الطلب من مبيعات الكمبيوتر إذا كان الملف /etc/samba/smb.conf.sales ، فسيتم أخذ التكوين من هذا الملف. إذا لم يكن هناك ملف منفصل لبعض الأجهزة ، فسيتم استخدام ملف شائع للعمل معه.

هناك أيضا فرصة مثيرة للاهتمام إنشاء خادم افتراضي... يتم استخدام معلمة الأسماء المستعارة netbios لهذا:

الأسماء المستعارة لـ Netbios = مسؤول محاسبة المبيعات

نطلب الآن من Samba استخدام ملف التكوين الخاص به لكل خادم افتراضي:

قم بتضمين = /etc/samba/smb.conf.٪L

ستكون ثلاثة خوادم مرئية في نافذة متصفح الشبكة: مبيعات, محاسبة, مشرف.

يؤدي تمكين حالة الحفظ وخيارات حالة الحفظ القصيرة إلى إجبار الخادم على تخزين جميع المدخلات بطريقة حساسة لحالة الأحرف (في Windows ، لا تهم الحالة ، في جميع أنظمة Unixes تكون العكس بالعكس).

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

يبدو الوصف النموذجي لهذا القسم كما يلي:

Comment = Home الدلائل # التعليق المرئي في نافذة خصائص الشبكة القابل للتصفح = no # يحدد ما إذا كان سيتم عرض المورد في قائمة التصفح. writable = نعم # يسمح (لا - لا يسمح) بالكتابة إلى الدليل الرئيسي وضع إنشاء = 0750 # أذونات لملفات تم إنشاؤها حديثًا وضع الدليل = 0775 # أيضًا ، ولكن للأدلة فقط

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

التعليق = مسار الأشياء العامة = / home / samba public = نعم قابل للكتابة = غير قابل للطباعة = لا توجد قائمة كتابة = مسؤول ، @ مبيعات

تشير معلمة المسار إلى الدليل حيث يوجد المورد ؛ تشير المعلمة العامة إلى ما إذا كان الضيف يمكنه استخدام المورد ، وتشير القابلة للطباعة إلى ما إذا كان يمكن استخدام المورد المحدد للطباعة. تتيح لك معلمة قائمة الكتابة تحديد المستخدمين المسموح لهم بالكتابة إلى المورد بغض النظر عن القيمة القابلة للكتابة (في هذا المثال ، مسؤول المستخدم ومجموعة المبيعات). من الممكن أيضًا استخدام القائمة المعاكسة - قائمة القراءة. إذا كانت هناك حاجة لإخفاء بعض الملفات ، فعندئذٍ في نظام التشغيل Unix / Linux لهذا الغرض ، يجب أن يبدأ اسم الملف بنقطة (معلمة إخفاء ملفات نقطة ، والتي تتحكم في العرض الملفات المخفية، الافتراضي هو نعم). بالإضافة إلى ذلك ، من الممكن تعيين قوالب لأسماء الملفات المخفية ، والتي يتم استخدام معلمة إخفاء الملفات لها. يبدأ كل نمط بشرطة مائلة للأمام (/) وينتهي ويمكن أن يحتوي على أحرف مستخدمة في التعبيرات العادية. على سبيل المثال: إخفاء الملفات = /*.log/؟؟.tmp/. يتم تجاوز هذه الحيل لمستخدمي Windows فقط عن طريق تعيين وضع "إظهار الملفات المخفية والنظام في Explorer. استخدم ملفات الفيتو وحذف معلمات ملفات الفيتو لتقييد إمكانية الوصول (القدرة على الحذف) لملف (دليل) بشكل موثوق.

مع محركات الأقراص المضغوطة ، يكون الوضع أكثر تعقيدًا إلى حد ما. الشيء هو أنه في الأنظمة الشبيهة بـ Unix ، لا يوجد مفهوم القرص على هذا النحو ، ومن أجل الوصول إلى الجهاز المطلوب ، يجب أولاً تثبيته في شجرة دليل (# mount -t iso9660 / dev / cdrom / mnt / cdrom) ، وبعد الاستخدام ، حتى لا يتم تدمير نظام الملفات ، يجب إلغاء تحميله (# umount / dev / cdrom) ، وإلا فلن يتخلى الجهاز ببساطة عن القرص. إذا كان لديك برنامج خفي يعمل على الخادم الخاص بك السيارات، ثم يمكن حل المشكلة ببساطة. لإلغاء تحميل جهاز لم يتم استخدامه لبعض الوقت تلقائيًا ، قم بتعيين القيمة المطلوبةمعلمة المهلة في الملف /etc/auto.master. على سبيل المثال:

/ mnt / auto / etc / - timeout = 5

(يوجد سطر مشابه بالفعل ، ما عليك سوى إلغاء التعليق عليه). ثم اضبط الخيارات للجهاز المناسب في ملف /etc/auto.tab:

Cdrom -fstype = auto، ro: / dev / cdrom

بعد كل هذا ، نكتب الأسطر التالية في /etc/smb.conf لإتاحة هذا المورد:

المسار = / mnt / cdrom قابل للكتابة = لا

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

المسار = / mnt / cdrom للقراءة فقط = نعم root preexec = mount / mnt / cdrom # فقط الجذر يمكنه تحميل جذر المورد postexec = umount / mnt / cdrom # بشكل طبيعي ، يجب وصف نقاط التحميل هذه في ملف / etc / fstab ، وإلا يجب عليك أيضًا تحديد باقي البيانات.

الآن ، عند الوصول إلى مورد ، يتم تحميل القرص المضغوط تلقائيًا ، وأحيانًا غير مُركب. المشكلة برمتها هي أن قرار إغلاق المورد يجب أن يتخذه الخادم - العملاء ، كقاعدة عامة ، لا يخطرون بذلك. ولكن يحدث هذا عادةً لأن المورد يستخدم في وقت واحد من قبل العديد من المستخدمين في وقت واحد أو يتم تركه على جهاز كمبيوتر واحد فتح ملفعلى هذا المورد (الجهاز مشغول). لذلك ، لن يتم إلغاء تحميل القرص المضغوط تلقائيًا ، والطريقة الوحيدة المقبولة لتحرير المورد هي البحث باستخدام الأداة المساعدة smbstatusرقم العملية باستخدام هذا المورد وقتلها باستخدام الأمر # kill pid_number (أو kill -s HUP pid_number).

مع إعداد التكوين المطلوب ، سننشئ الآن حسابات مستخدمين (باستثناء تسجيل دخول الضيف مع الحد الأدنى من الامتيازات لا أحد). لتحديد مستخدمي SAMBA ، يتم استخدام ملف / etc / samba / smbpasswd ، والذي يحتوي على أسماء المستخدمين وكلمات المرور المشفرة. نظرًا لأن آلية التشفير في شبكات أجهزة Windows غير متوافقة مع آليات Unix القياسية ، يتم استخدام أداة مساعدة منفصلة لملء ملف كلمة المرور - smbpasswd.

# useradd -s / bin / false -d / home / samba / sergej -g sales sergej # smbpasswd -a sergej # smbpasswd -e sergej

يضيف هذا المثال مستخدمًا جديدًا سيرجيينتمون إلى المجموعة مبيعات، مع قذيفة وهمية (الخيارات هي / sbin / nologin ، / dev / null) والدليل الرئيسي / home / samba / sergej. ثم نقوم بإنشاء كلمة مرور للمستخدم sergej ، وكخطوة أخيرة ، نقوم بتمكين الوصول إلى المستخدم. تم تعطيل بشكل افتراضي. نقطة مثيرة للاهتمام يمكن أن تكون محيرة في بعض الأحيان. الحقيقة هي أنه عند توصيل جهاز كمبيوتر يعمل بنظام Windows NT / 2000 بخادم SAMBA ، يُطلب من المستخدم إدخال اسم مستخدم وكلمة مرور ، كما ينبغي ، وإذا تم استخدام جهاز كمبيوتر يعمل بنظام Windows 9x / Me للوصول ، ثم يُطلب من المستخدم إدخال كلمة المرور فقط ، ويتم إنشاء تسجيل الدخول تلقائيًا بناءً على اسم التسجيل.

من الممكن أيضًا تعيين العديد من مستخدمي Windows لمستخدم Linux / Unix واحد. للقيام بذلك ، يتم إنشاء ملف تعيين /etc/smbusers.map ، حيث يتم تعيين كل تعيين على سطر منفصل:

Linux_user = user_win1 user_win2 user_winN

في القسم أضف سطر اسم المستخدم map = /etc/smbusers.map. في هذه الحالة ، يجب تسجيل دخول مستخدم Windows بكلمة مرور المستخدم المرتبط به.

باستخدام SAMBA ، يمكنك تنظيم القدرة على الطباعة عبر الشبكة من أجهزة الكمبيوتر التي تعمل بنظام Windows (إذا تم التخطيط لخادم طباعة منفصل ، فقد يكون الجهاز الذي يعتمد على معالج 486 كافيًا لذلك).

للقيام بذلك ، اكتب الأسطر التالية في القسم:

اسم Printcap = / etc / printcap # ملف يصف الطابعات المتصلة بطابعات تحميل النظام = نعم # يشير إلى الحاجة إلى التضمين التلقائي في قائمة طباعة موارد الشبكة = lprng # نظام الطباعة (بالنسبة إلى Linux ، لا يزال من الممكن استخدام bsd).

المسار = / var / spool / samba # يشير إلى الدليل حيث يتم وضع مهام الطباعة قابلة للتصفح = نعم للطباعة = نعم للقراءة فقط = نعم

بعد إنشاء الملف ، اختبره باستخدام الأداة المساعدة testparm... لسوء الحظ ، بمساعدة هذا البرنامج ، يمكنك اكتشاف أخطاء بناء الجملة فقط ، وليس الأخطاء المنطقية ، لذلك ليس هناك ما يضمن أن الخدمات الموصوفة في الملف ستعمل بشكل صحيح (أثناء الاختبار ، سيتم عرض جميع الإعدادات ، حتى تلك التي تم تثبيتها بواسطة افتراضي - لذلك ، راجع النتيجة بعناية). ولكن إذا لم يقسم البرنامج ، يمكنك أن تأمل أن يتم تحميل الملف دون مشاكل عند بدء التشغيل. يمكن التحقق من التشغيل الصحيح للطابعات المدرجة في ملف / etc / printcap مع خادم SAMBA باستخدام الأداة المساعدة testprns... بالإضافة إلى ذلك ، لا تنسَ ملفات .log: إذا كانت لديك مشاكل ، يمكنك أحيانًا إيجاد حل هناك.

الآن قليلا عن الخير. يعد تكوين Samba إجراءً معقدًا إلى حد ما ، ولكن التوزيع يأتي مع أداة إدارة قائمة على الويب تسمى قوات التدخل السريع(أداة إدارة الويب سامبا ،). يتم تشغيل Swat كخدمة أو باستخدام خادم Apache وهو مخصص لتحرير ملف smb.conf ، وكذلك للتحقق من الحالة وبدء وإيقاف برامج Samba daemons وتغيير كلمات مرور المستخدم. لكي تعمل كخدمة ، يجب أن يكون خط swat 901 / tcp موجودًا في ملف / etc / services ، و swat stream tcp nowait. 400 root / usr / local / samba / bin / swat swat في / etc / inetd ملف .conf (هذا في حالة استخدام برنامج خفي للشبكة inetdعادة في التوزيعات القديمة ؛ تستخدم التوزيعات الحديثة خيارًا أكثر أمانًا - xinetd). لاستخدام swat في الدليل /etc/xinet.d ، أنشئ ملف swat بالمحتوى التالي:

خدمة swat (تعطيل = لا يوجد منفذ = 901 socket_type = دفق انتظار = no only_from = 127.0.0.1 # هذا خط يتم تشغيله فقط من مستخدم الجهاز المحلي = خادم الجذر = / usr / sbin / swat log_on_failure + = USERID)

الآن لتشغيل Swat في نافذة المتصفح ، أدخل:

المتشعب: // المضيف المحلي: 901

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

بعد كل التغييرات في ملف smb.conf ، تحتاج أحيانًا إلى إعادة تشغيل البرنامج الخفي:

Smb: إعادة تشغيل /etc/rc.d/init.d/smb

إذا ، بعد كل الخطوات المذكورة أعلاه ، لا يزال من غير الممكن تنظيم الوصول إلى موارد SAMBA ، ثم المرافق مثل بينغ(للتحقق من توفر عقدة في الشبكة) ، nmblookup(للاستعلام عن أسماء NetBIOS) ، أو كحل أخير tcpdump... ولا تنس الأذونات ، لأنه من خلال تخصيص الدليل / gde / to / w / glubine للمستخدم ، ستمنحه القدرة على قراءة (إذن التنفيذ) والأدلة السابقة.

الآن دعنا نتحدث عن استخدام عميل Samba ، لأننا (مستخدمي Linux) نريد أيضًا العمل مع موارد شبكة Windows. لمعرفة الموارد المتاحة ، يجب عليك إدخال الأمر / usr / bin / smbclient -L host_name. سيطلب البرنامج كلمة مرور ، في معظم الحالات يكفي الضغط على Enter. الآن ، للاتصال بالمورد المطلوب ، أدخل اسم الكمبيوتر والمورد المطلوب. على سبيل المثال:

# / usr / bin / smbclient \\ Alex \ Sound

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

Mount -t smbfs -o username = user، password = 123456، iocharset = koi8-r، codepage = 866 // alex / sound / mnt / sound.

إذا لم تحدد اسم مستخدم وكلمة مرور ، فسيطلب منك النظام نفسه ذلك. لا تنس أنه بالنظر إلى الملف ~ HOME / .bash_history ، يمكنك استخدام الأوامر التي كتبتها لمعرفة كلمة المرور. دقة أخرى: إذا كان برنامج smbclient يعرض ملفات بأسماء روسية بشكل صحيح ، فإن الوحدة النمطية smbfs في بعض الأحيان لا تولي أي اهتمام على الإطلاق لترميز آخر ، حتى لو قمت بتحديده صراحة. يقولون أنه يمكن إصلاحه باستخدام تصحيح ، لكنني لم أجد واحدة من أجل Red Hat حتى الآن.

إذا كنت تريد تثبيت مشاركة SMB تلقائيًا عند بدء تشغيل النظام ، فأضف سطرًا مثل هذا إلى ملف / etc / fstab:

//[بريد إلكتروني محمي]/ sound / mnt / alex / sound smbfs rw ، noauto 0 0.

في هذا المثال ، نيابة عن المستخدم الزبون(إذا كان المورد يدعم هذا المستخدم وإذا كان هذا المستخدم لديه حق الوصول فقط عن طريق كلمة المرور ، فلا داعي للقلق: سيطلبون منك بالتأكيد) مورد شبكة الصوت على كمبيوتر alex مثبت في مجلد / mnt / alex / sound مع إمكانية للكتابة إلى هذا الدليل. بالمناسبة ، يرى عميل Samba تمامًا موارد الشبكة المخفية ، أي أولئك الذين اسم الشبكةينتهي بـ $.

كما ترى ، عليك العمل مع سطر الأوامر ، والذي يسبب رعبًا هادئًا للمستخدم الحديث. وهنا ذهب عالم OpenSource لمقابلته - تم إنشاء العديد من الأدوات المساعدة التي تتيح لك العمل مع موارد Samba بطريقة مألوفة أكثر ، عن طريق النقر فوق الأزرار في القذائف الرسومية. أشهر البرامج المدرجة في توزيعات Mandrake والمشتقات وكذلك دبيان - جنومبا... على أي حال ، يمكن العثور عليه في معظم الخوادم التي تحتوي على برامج لنظام Linux (لقد رأيته على ftp://ftp.altlinux.ru/ بالتأكيد). تتيح لك هذه الأداة المساعدة عرض موارد الشبكة المتاحة () ، وإذا لزم الأمر ، التحميل إلى الدليل المطلوب ، بينما يكون خيار التثبيت مع الإشارة إلى تسجيل الدخول وكلمة المرور لتلك الموارد التي تتطلب ذلك ممكنًا. من الممكن بدء تشغيل مدير الملفات عند التركيب (افتراضيًا جي ام سي) ، وإنشاء أدلة للموارد المثبتة ، وتحديد خيار المسح التلقائي عند بدء تشغيل البرنامج (ربما باستخدام بروتوكول SMB الافتراضي) والمسح بواسطة عناوين IP (مخطط باستخدام بروتوكول WINS). لأسباب لم أوضحها ، في بعض التوزيعات ، عند المسح باستخدام بروتوكول SMB ، لم يتم عرض موارد الشبكة ، لذلك أستخدم دائمًا الطريقة الثانية ، نظرًا لأنها تعمل بشكل لا تشوبه شائبة ، فأنت تحتاج فقط إلى تعيين مجموعة من عناوين IP للمسح ( إذا كنت تعلم). لعرض أسماء الملفات الروسية الصحيحة ، لا تنس تثبيت خطوط koi8-r في علامة التبويب خيارات> اختيار الخطوتحقق أيضًا من الخطوط التي تشير إلى الترميز السيريلي في ملف smb.conf (انظر أعلاه).

إذا كان بإمكان gnomba فقط تحميل الموارد وإلغاء تحميلها ، فإن البرنامج xsmbrowserيسمح لك أيضًا بإدخالها كمجلدات على الكمبيوتر المحلي (). صحيح ، لم أتمكن بعد من جعل هذا البرنامج يفهم الملفات ذات الأسماء الروسية ، ولكن هناك أيضًا جوانب إيجابية: عند تشغيل هذا البرنامج ، يتم عرض جميع أوامر التحميل وطلبات الشبكة المختلفة على وحدة التحكم ، مما يتيح لك فهمها حسنا. حاول مطورو KDE أيضًا: من خلال التفضيلات> المعلوماتفائدة متاحة مركز سامبا، الذي يعرض جميع الاتصالات من / إلى الكمبيوتر المحلي ، في نفس الوقت وسيلة مناسبة لعرض ملفات .log. توفر الأداة معلومات مماثلة. كومباوالتي يمكن العثور عليها في http://linux.tucows.com/ ().

بقدر ما أود أن أخبركم أكثر ، لكن المجلة هي مجلة - لا يمكنك أن تناسب كل شيء. علاوة على ذلك ، سوف يساعدك الرجل والمعلومات في كل مكان. أيضًا ، يمكن الحصول على جميع معلومات المساعدة الضرورية من أداة SWAT ، بالإضافة إلى ذلك ، في Red Hat 7.3 كان هناك كتاب باستخدام Samba روبرت "أكشتاين" أ(اللغة الإنجليزية - سيئة ، مجانية تمامًا - جيدة: / usr / share / swat / using_samba) ، متاح أيضًا من SWAT (). يمكن العثور على وثائق إضافية ، أسئلة وأجوبة ، وعينة من ملفات التكوين في الدليل / usr / share / doc / samba. في مختلف المنتديات ، يمكنك العثور على آراء متضاربة تمامًا حول عمل Samba ، من الحماس الشديد إلى الحماس التام. أنا شخصياً إلى جانب مؤيدي محاكي Windows NT هذا ، إلى جانب ذلك ، وفقًا لنتائج الاختبار مع نفس الجهاز ، يُظهر خادم Samba أداءً أعلى بحوالي 25-30 ٪ من جهاز كمبيوتر يعمل بنظام Microsoft. حظا طيبا وفقك الله.

في هذا البرنامج التعليمي ، سوف نتعلم كيفية تثبيت وتكوين خادم Samba على Ubuntu 16.04. Samba هو تطبيق مجاني ومفتوح المصدر لبروتوكول SMB / CIFS لنظامي التشغيل Unix و Linux ، والذي يسمح بالاتصال بين الملفات والطابعات على نظامي التشغيل Unix / و Windows على الأجهزة الموجودة على شبكة محلية.

Samba عبارة عن حزمة برمجيات أهمها:

  • smbd: يوفر خدمات SMB / CIFS (مشاركة الملفات وطباعتها) ويمكن أن يعمل أيضًا كوحدة تحكم مجال Windows.
  • nmbd: يوفر خدمة تسمية NetBIOS

كيفية تثبيت خادم Samba على Ubuntu 16.04

يتم تضمين Samba في معظم توزيعات Linux. لتثبيت Samba على ، ما عليك سوى تشغيل:

سودو مناسب لتثبيت السامبا

يتوفر أحدث إصدار مستقر 4.5.3 ، تم إصداره في 19 ديسمبر 2016. للتحقق من الإصدار سامبا ، يركض

سودو smbstatus

سودو smbd - الإصدار

مثال الإخراج:

إصدار Samba 4.3.11-Ubuntu

للتحقق مما إذا كانت خدمة Samba قيد التشغيل ، قم بتشغيل الأوامر التالية.

حالة Systemctl حالة smbd systemctl nmbd

لبدء هاتين الخدمتين ، قم بتشغيل الأوامر التالية:

سودو سيستم سي تي إل ستارت smbd sudo systemctl ابدأ nmbd

بعد إطلاق، smbdسيستمع على المنفذ 139 و 445.

تحرير ملف التكوين

هناك ملف تهيئة واحد فقط يحتاج إلى التعديل: /etc/samba/smb.conf.

سودو نانو /etc/samba/smb.conf

في القسم ، تأكد من القيمة مجموعة العملتنتمي إلى مجموعة عمل من أجهزة كمبيوتر Windows.

مجموعة العمل = مجموعة العمل

قم بالتمرير لأسفل إلى أسفل الملف. (في محرر نصوص nano ، اضغط على CTRL + W ثم CTRL + V.) قم بتضمين قسم جديد كما هو موضح أدناه. استبدل اسم المستخدم باسم المستخدم الذي تريده.

التعليق = مسار المجلد العام للصفحة الرئيسية = / home / username / writable = نعم مستخدمون صالحون = اسم مستخدم

Home Share هو اسم المجلد الذي سيتم عرضه على شبكة Windows. التعليق هو وصف المجلد المشترك. تشير الأسطر الثلاثة التالية إلى أن المستخدم الصالح المحدد فقط لديه إذن بالوصول إلى الدليل / home / username / ، وهو أيضًا قابل للكتابة. التكوين أعلاه سيعطل الوصول المجهول.

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

Testparm

إنشاء المستخدم

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

اسم مستخدم Sudo adduser

سيُطلب منك تعيين كلمة مرور Unix. بالإضافة إلى ذلك ، تحتاج إلى تعيين كلمة مرور Samba منفصلة للمستخدم باستخدام الأمر التالي:

سودو smbpasswd -اسم مستخدم

كل ما تبقى الآن هو إعادة تشغيل عفريت smbd.

أعد تشغيل نظام Sudoctl smbd

وصول Samba إلى مجلد مشترك من Windows

على جهاز كمبيوتر يعمل بنظام Windows على نفس الشبكة ، افتح File Explorer وانقر فوق Network في الجزء الأيمن. سترى خادم السامبا. انقر نقرًا مزدوجًا فوق المجلد المشترك وأدخل اسم المستخدم وكلمة المرور.

وصول Samba لمشاركة المجلد من جهاز Ubuntu

في File Manager ، انتقل إلى علامة التبويب Networking في الجزء الأيمن وحدد Windows Networking.

الرجاء التحديد فريق العملوخادم Samba والمجلد المشترك ، ثم أدخل اسم المستخدم وكلمة المرور لـ Samba.

إضافة عدة مستخدمين أو مجموعات

إذا احتاجت حسابات متعددة إلى الوصول إلى المجلد المشترك ، فأنت بحاجة إلى تغيير المستخدمين المؤهلين كما هو موضح أدناه في ملف /etc/samba/smb.conf.

المستخدمون الصالحون = مستخدم 1 ، مستخدم 2 ، مستخدم 3

استخدم أيضًا smbpasswd لتعيين كلمة مرور Samba لكل من هؤلاء المستخدمين.

سودو smbpasswd -a user1 sudo smbpasswd -a user2 sudo smbpasswd -a user3

للسماح لمجموعة من المستخدمين بالوصول إلى المجلد المشترك ، استخدم التكوين التالي /etc/samba/smb.conf.

المستخدمون الصالحون =sambashare

أنشئ مجموعة.

مجموعة سودو سامباشير

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

سودو gpasswd -a user1 sambashare sudo gpasswd -a user2 sambashare sudo gpasswd -a user3 sambashare

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

تعيين sambashare كمالك لمجموعة المجلدات المشتركة:

سودو chgrp sambashare / path / to / shared / folder -R

منح حق الوصول للكتابة للمجموعة.

سودو chmod g + w / path / to / shared / folder / -R

آمل أن يكون هذا المقال قد ساعدك في إعداد خادم Samba على Ubuntu 16.04. كما هو الحال دائمًا ، إذا وجدت هذا المنشور مفيدًا ، فيرجى إلغاء الاشتراك في التعليقات.