آموزش به اشتراک گذاری ساده فایل روی لینوکس : حتی اگر سرور لینوکسی شما برای هاستینگ و وبسایت نباشدو حتما یک وب سرور مثل آپاچی, لایت اسپید, یا nginx روی آن نصب خواهد بود. شما برای اشتراک گذاری فایل های مثل گواهینامه ها, کانکشن ها و . . . یا باید از ftp استفاده کنید,.
یا دستور scp یا به اشتراک گذاری از طریق وب سرور که برای کاربران غیر فنی, به اشتراک گذاری از طریق وب سرور ساده ترین راه خواهد بود. چراکه با داشتن یک مرورگر میتوانند به سادگی فایل مورد نظر را دانلود کنند. در این پست قصد داریم ساده ترین روش برای به اشتراک گذاشتن فایل ها از طریق وب را به شما آموزش دهیم.
به اشتراک گذاری ساده فایل روی لینوکس
گام اول
برای ایجاد پوشه اشتراک گذاری از دستور زیر استفاده میکنیم
[root@novinhost ~]# mkdir /var/www/html/shared
پوشه /var/www/html محل پیشفرض وب سرور است که از طریق پورت ۸۰ و آی پی شما قبل دسترسی خواهد بود.
جهت ایجاد فایل htaccess برای پوشه ایجاد شده، دستور زیر را وارد میکنیم :
[root@novinhost ~]# vi /var/www/html/shared/.htaccess
در فایل ایجاد شده متن زیر را وارد کرده و با زدن دکمه escو وارد کردن :wq فایل را ذخیره کرده و از محیط ویرایشگر خارج میشویم:
Options +Indexes
گام دوم
حالا هر فایلی را که با دستور cp test /var/www/html/shared به این پوشه کپی کنید, از این پوشه قابل دسترسی خواهد بود.
حالا قصد داریم اسکریپتی بنویسیم که با یک دستور ساده به جای دستور بالا, فایل مورد نظر را به پوشه shared منتقل کند.
فایل اسکریپت را با دستور vi shared ایجاد میکنیم و با زدن دکمه i آماده وارد کردن محتوی میشویم, دستور کپی را به شکل زیر در اسکریپت نوشته و سپس با زدن دکمه esc از حالت نوشتار خارج شده و با وارد کردن دستور :wq در محیط vi, اطلاعات را ذخیره کرده و خارج میشویم.
#!/bin/sh
cp $1 /var/www/html/shared
گام سوم
حالا با دستور chmod o+x share دسترسی های فایل share را طوری تعیین میکنیم که صاحب فایل (owner) بتواند آنرا اجرا (execute) کند.
یک فایل تستی جهت به اشتراک گذاری ایجاد میکنیم, با دستور;
touch novinhost
حالا اسکریپتی که نوشتیم را فراخوانی میکنیم:
./share novinhost
میبینید که فایل در پوشه مربوطه به اشتراک گذاشته شده.
اما در صورتی که فایل به اشتراک گذاری شده فاقد دسترسی Read برای وب سرور و درخواست کننده باشد, با ارور ۴۰۳ مواجه خواهیم شد, ما با دستور chmod 000 /var/www/html/shared/novinhost تمام دسترسی های این فایل را گرفتیم, میبینید که با کلیک روی فایل, ارور زیر ظاهر میشود:
پس برای درست کردن یک اسکریپت ایده آل تر, خط زیر را به آن اضافه میکنیم:
chmod 444 /var/www/html/shared/$1
گام چهارم
- حالا با اجرای دستور ./share فایل دسترسی لازم برای خوانده شدن را پیدا خواهد کرد.
- در صورتی که همه این کار ها را در دایرکتوری خانگی HOME انجام داده باشید. در هر پوشه ای که باشید با دستور ~/share file میتوانید فایل file را به پوشه مشخص شده انتقال دهید.
پس اسکریپت ما به صورت زیر شد:
#!/bin/sh
cp $1 /var/www/html/shared
chmod 444 /var/www/html/shared/$1
خط اول به خط فرمان میگوید که از bash برای اجرای کد های زیر استفاده کنید
خط دوم شامل دستور cp است. شکل کلی دستور cp یا copy به صورت cp file location است که فایل را به محل location کپی میکند. در صورتی که میخواهید فایل مورد نظر از محل قبلی حذف شود, به جای cp از mv, خلاصه move استفاده کنید.
خط سوم دسترسی های فایل را تعیین میکند, دستور chmod و سپس مشخص کردن دسترسی ها با مقادیر ۴۴۴ , وارد کردن مقادیر به دو صورت دستوری و باینری انجام میشود.
در این روش ۴ باعث میشود فقط دسترسی خواندن داده شود.
میتوانید با دستور a+r به جای ۴۴۴ اجازه خواندن فایل را صادر کنید.
(برای کسب اطلاعات بیشتر در مورد این دستور مهم به ادرس http://www.computerhope.com/unix/uchmod.htm مراجعه کنید).
گام پنجم
سپس آدرس فایل موردنظر (که قبلا کپی کردیم) را به chmod میدهیم.
ممکن است علامت $۱ در سطر های اول و دوم شما را متعجب کرده باشد, این متغیر پارامتر های وارد شده به دستور (اسکریپت share) را مشخص میکند. به مثال زیر توجه کنید:
Command file1 file2 opt
در دستور بالا سه پارامتر file1 file2 opt را به اسکریپت فرضی command ارسال کرده ایم, حالا برای خواندن مقادیر در داخل اسکریپت از متغیر های $۱ برای file1 $۲ برای file2 و $۳ برای opt استفاده میکنیم.
در واقع وقتی شما برای اسکریپتی که ساختیم بنویسید share novinhost متغیر $۱ برابر novinhost خواهد شد, که با تحویل آن به دستور های cp و chmod میتوانیم عملیات کپی و تعیین دسترسی را بر روی فایل مورد نظر کاربر انجام دهیم. برای اطلاعات بیشتر ( http://osr600doc.sco.com/en/SHL_automate/_Passing_to_shell_script.html )
منتظر پکیج اسکریپت های پر کاربرد روی سرور های لینوکسی نوین هاست باشید.