راه اندازی سرویس Samba در لینوکس

Samba یک ابزار بسیار قدرتمند است که به وسیله آن می‌توان سرویس‌های اشتراک فایل و پرینتر را برای کلاینت‌های مایکروسافتی ارائه نمود. علاوه بر این می‌توان از آن به عنوان یک دامین کنترلر در شبکه‌های مبتنی بر Windows Server Domain استفاده نمود. همچنین از نسخه چهارم این نرم‌افزار به بعد امکان پشتیبانی از Active Directory و دامین‌های Windows NT فراهم شده است.

در این آموزش به نحوه نصب و راه اندازی این سرویس و همچنین اشتراک گذاری منابع توسط سرویس Samba برای کلاینت‌های مایکروسافتی و لینوکسی خواهیم پرداخت.

برای نصب سرویس دهنده Samba دستور زیر را وارد می‌کنیم.

sudo apt install samba  

سپس برای اعمال تنظیمات می‌بایست فایل etc/samba/smb.conf/ را با یک ویرایش‌گر متنی ویرایش کنیم.

sudo gedit /etc/samba/smb.conf  

فایل smb.conf دارای بخش‌های مختلفی است که در ادامه به توضییح آن‌ها می‌پردازیم.

  • [global]: در این بخش پیکربندی کلی و مورد استفاده در تمامی بخش‌ها تعریف می گردد.
  • [share]: یک اشتراک را تعریف می‌کند.
  • [printers]: در این بخش پرینترهای اشتراک گذاشته تعریف می‌شوند.
  • [homes]: دایرکتوری home کاربران اشتراک گذاشته تعریف می‌شوند.

در داخل هرکدام از این بخش‌ها پارامترهایی وجود دارد که هر پارامتر می‌تواند مقداری مانند true, false, yes, no و یا یک رشته یا مسیر داشته باشد.

در ادامه به توضیح برخی از این پارامتر ها می پردازیم.

  • browseable: تعیین می‌کند که اشتراک مورد نظرمان می‌تواند Browse شود و یا خیر.
  • comment: متن توضیح که در کنار اشتراک یا سرویس نمایش داده می‌شود.
  • create mask: برای تبدیل مجوزهای ویندوز به یونیکس/لینوکس در هنگام ایجاد فایل به‌کار می‌رود. مقدار پیشفرض برابر 0744 است.
  • directory mask: برای تبدیل مجوزهای ویندوز به یونیکس/لینوکس در هنگام ایجاد دایرکتوری به‌کار می‌رود. مقدار پیش‌فرض برابر 755 است.
  • encrypt passwords: تعیین می‌کند که در هنگام Authentication بین سرویس دهنده و سرویس گیرنده کلمات عبور رمزنگاری شوند یا خیر.
  • security: این گزینه مشخص می‌کند که کاربران چگونه به سرویس دهنده متصل شده و احراز هویت شوند. مقدار پیش‌فرض برابر user است.
  • read only: امکان ویرایش فایل‌ها توسط کاربران را مشخص می‌کند.
  • invalid users: این کاربران تعریف شده قادر نخواهند بود به سیستم وارد شوند.
  • workgroup: تعیین کننده نام شبکه Workgroup است.
  • server string: نام سرویس دهنده را در سیستم‌های سرویس گیرنده مشخص می‌کند.
  • interfaces: آدرس‌هایی را که مجاز به برقراری ارتباط با سرویس دهنده هستند را مشخص می‌کند.
  • printable: امکان ارسال چاپ توسط کاربر به سرویس دهنده را مشخص می‌کند.
  • و …

قبل از اشتراک گذاری می‌بایست کاربرانمان را در سرویس دهنده تعریف نماییم. که به‌صورت زیر عمل می‌کنیم.

sudo smbpasswd -L -a USER NAME  

که در اینجا USER NAME نام کاربر مورد نظر شماست.

برای اشتراک‌گذاری یک دایرکتوری به‌صورت زیر عمل می کنیم.

[My Share]  
 path = /home/reza/my_share  
 browseable = yes  
 read only = yes  

در مثال فوق یک دایرکتوری با نام My Share و در مسیر home/reza/my_share/ و با دسترسی فقط خواندنی تعریف نمودیم.

سپس سرویس دهنده را با دستور زیر مجدداً راه اندازی می‌کنیم.

systemctl restart samba-ad-dc.service  

جهت بررسی وضعیت سرویس دهنده و منابع اشتراک گذاشته شده می‌توانیم از دستور زیر استفاده کنیم.

smbclient -L SERVER  

که در اینجا SERVER می‌تواند نام و یا آدرس آی‌پی سرویس دهنده باشد.

  • نکته)‌ جهت استفاده از ابزار smbclient می‌بایست ابتدا آن را توسط دستور زیر روی سرویس‌گیرندهای لینوکسی نصب نمود.
sudo apt install smbclient  

جهت ماونت نمودن یک اشتراک می‌توانیم بصورت زیر عمل کنیم.

mount –t cifs //SERVER IP/SHARE /mnt –o username=USER NAME,workgroup=WORKGROUP NAME  

که در اینجا SERVER IP/SHARE// آدرس اشتراک ما و mnt/ آدرس مسیری است که می‌بایست در آنجا ماونت شود و USER NAME نام کاربری و WORKGROUP NAME هم نام گروه کاری شما را مشخص می‌کند.

*‌نکته)‌ جهت ماونت کردن فایل‌سیستم‌های Samba نیاز به ابزار cifs-utils داریم که می‌بایست روی سرویس‌گیرنده‌های لینوکسی نصب کنیم که برای برای نصب cifs-utils دستور زیر را وارد می‌کنیم.

sudo apt install cifs-utils