উইন্ডোজ ভিত্তিক নেটওয়ার্কে লিনাক্স প্রবর্তন -(সাম্বা)

উইন্ডোজ নেটওয়ার্ক ভিত্তিক একটি অফিস/ কর্পোরেট পরিবেশে লিনাক্সের প্রচলন করতে গেলে প্রথমেই বেশ কিছু বাধার সম্মুখীন হতে হয়। এ ধরনের একটি নেটওয়ার্কে আগে থেকেই ব্যবহারকারীরা বেশ কিছু কাজ ক্লিক এন্ড গো এর মাধ্যমে করতে অভ্যস্ত হয়ে থাকেন যেমন- প্রিন্টার শেয়ারিং, ফোল্ডার শেয়ারিং ইত্যাদি। এ ধরনের কাজ লিনাক্সেও এখন গ্রাফিক্যালি করা যায়। তবে লিনাক্সে কোন সিস্টেমকে বাস্তবায়ন করতে হলে সিস্টেমটি সম্পর্কে একটি পরিপূর্ন ধারনা রাখা জরুরী। এজন্য গ্রাফিক্যাল স্টেপের পাশাপাশি সিস্টেমের মূল কনফিগারেশন ফাইলগুলিকে কিভাবে কাজে লাগানো যায় তা শিখতে হয়। আমরা এ টিউটোরিয়ালটিতে একটি লিনাক্স মেশিনকে কিভাবে উইন্ডোজ নেটওয়ার্কে সফলতার সাথে সেট আপ করে ব্যবহার উপযোগী করা যায় তা দেখব। আগেই বলে রাখা ভাল, এখানে ব্যবহৃত সকল কমান্ড ডেবিয়ান ও ডেবিয়ান বেজড ডিস্ট্রোর (যেমনঃ উবুন্তু, মেপিস, সিডাক্স, ড্রিম লিনাক্স, লিনাক্স মিন্ট) জন্য কাজ করবে।

লিনাক্সকে এ ধরনের নেটওয়ার্কের সাথে খাপ খাওয়াতে হলে সাম্বা (samba) নামে একটি প্যাকেজ গুরুত্বপূর্ন ভুমিকা পালন করে থাকে। এটির সাহায্যে লিনাক্স মেশিন উইন্ডোজ মেশিনের সাথে যোগাযোগ রক্ষা করা থেকে শুরু করে বিভিন্ন হার্ডওয়্যার ডিভাইস শেয়ারিং (যেমনঃ প্রিন্টার, স্ক্যানার, সিডি/ডিভিডি রম) এর কাজ করে থাকে। উইন্ডোজ এর নিজস্ব নেটওয়ার্কিং প্রটোকল হচ্ছে SMB। সাম্বা লিনাক্স পরিবেশে এ প্রটোকল বাস্তবায়ন করে থাকে তাই লিনাক্স মেশিন খুব সহজেই উইন্ডোজ মেশিনকে চিনতে পারে। এছাড়াও সাম্বার সাহায্যে লিনাক্স মেশিনকে উইন্ডোজ নেটওয়ার্কের WINS Server বা ডোমেইন কন্ট্রোলার হিসেবে রূপান্তরিত করা যায়। তবে আমরা এখানে একটি পিয়ার টু পিয়ার নেটওয়ার্কিং পরিবেশে লিনাক্সকে কিভাবে কাজে লাগানো যায় তা দেখব অর্থাৎ এখানে সব মেশিন একটি নির্দিষ্ট ওয়ার্কগ্রুপের অধীনে একে অন্যের সাথে যোগাযোগ রক্ষা করবে। এ ধরনের নেটওয়ার্কিং দিয়ে সাধারন অফিস বা বাসাবাড়িতে কাজ করা হয়ে থাকে।

আধুনিক কাস্টোমাইজড ডিস্ট্রোগুলিতে সাম্বা সাধারনত ইনস্টল করা থাকে। এটি ইনস্টল করা আছে কিনা তা জানার জন্য কমান্ড দিনঃ

apt-cache search samba

এ কমান্ডটি দিলে একটি লম্বা লিস্ট দেখতে পাবেন। তবে ঘাবড়ানোর কিছু নেই। apt যেহেতু ডিপেনডেন্সী নিজেই মেইনটেইন করে থাকে তাই সাম্বা ইনস্টলের জন্য শুধুমাত্র samba প্যাকেজটি ইনস্টল করাই যথেষ্ট। অন্যান্য প্যাকেজ যেমন samba-common নিজে থেকেই ইনস্টল হয়ে যাবে। তাহলে সাম্বা ইনস্টলের জন্য কমান্ডটি হবে নিম্নরূপঃ

apt-get install samba

সাম্বাকে ডেমন হিসেবে ব্যাকগ্রাউন্ডে রান করাতে চাইলে সেটির স্ক্রিপ্ট পাওয়া যাবে /etc/init.d/samba- এখানে। সাম্বার জন্য কনফিগারেশন ফাইল পাওয়া যাবে নিচের ডিরেক্টরীতেঃ

/etc/samba

সাম্বার প্রধান কনফিগারেশন ফাইলটি হচ্ছে smb.conf যেটি উপরোক্ত ডিরেক্টরী বা ফোল্ডারে থাকে। সাম্বা ফাইল-প্রিন্ট শেয়ারিং অথবা ডোমেইন কন্ট্রোলার যেটি হিসেবেই কাজ করুন না কেন তা এ ফাইলের বিভিন্ন অপশনের মাধ্যমেই নির্ধারিত হয়ে থাকে।

smb.conf টিতে মোট ছয়টি সেকশন আছে। প্রতিটি সেকশনের কাজই ভিন্ন ভিন্ন। আসুন এগুলি প্রথমে দেখে নেই।

1. [global] - এ সেকশনে অনেকগুলি সাব-সেকশন আছে যা বিভিন্ন নেটওয়ার্ক রিলেটেড কাজ যেমন- domain/workgroup নাম, WINS, প্রিন্ট শেয়ারিং সেটিংস, অথেনটিকেশন, লগিং এন্ড একাউন্টিং ইত্যাদি করা হয়ে থাকে।
2. [homes] - ব্যবহারকারীর নিজস্ব হোম ডিরেক্টরী/ফোল্ডার শেয়ারিং করে থাকে অন্য মেশিনের সাথে।
3. [netlogon] - এটি সাধারনতঃ কমেন্ট চিহ্নের সাহায্যে বন্ধ করা থাকে যা সাম্বা সার্ভারকে ডোমেইন কন্ট্রোলার হিসেবে সেটআপ করে থাকে।
4. [printers] - লোকাল প্রিন্টার সমূহকে অন্য মেশিনের সাথে শেয়ারিং করার জন্য
5. [print$] - to set up a share for Windows printer drivers
6. [cdrom] - commented out by default, to optionally share the server's CD-ROM drive

প্রত্যেকটি সেকশন কিছু স্টেটমেন্টের সমষ্টি যার ফরম্যাট নিম্নরূপঃ
option = value

একটি সাধারন ফাইল ও প্রিন্ট শেয়ারিং

এখন আমরা খুব সাধারন একটি ফাইল ও প্রিন্ট শেয়ারিং কনফিগারেশন করবো সাম্বা প্যাকেজের সাহায্যে। এ ধরনের শেয়ারিং করতে কোন পাসওয়ার্ড প্রয়োজন হবে না এবং একজন ব্যবহারকারী যেকোন মেশিনের ফাইল, ফোল্ডার ও প্রিন্টার যা শেয়ার করা আছে তা নির্বিঘ্নে ব্যবহার করতে পারবেন। হোম এবং স্মল অফিস নেটওয়ার্কিং এর ক্ষেত্রে এ ধরনের শেয়ারিং বেশী ব্যবহৃত হয়। এজন্য সাম্বার কনফিগারেশন ফাইলটি হবে নিম্নরূপঃ


[global]
panic action = /usr/share/samba/panic-action %d
workgroup = BANK
server string = %h server (Samba %v)
hosts allow = 192.168.0. 192.168.1. 192.168.2. 192.168.79. 127. 10.0.0. 10.1.1.
security = share
map to guest = Bad User

;For Printer Sharing
printing = cups
printcap name = cups
printer name = hp_zahid
use client driver = no
;*******************section Homes*****************
[Shared]
path = /home/zahid/Shared
guest ok = yes
read only = no

[Music]
path = /home/zahid/Music
guest ok = yes
read only = no

[homes]
path = /home/zahid
guest ok = yes
comment = Home Directories
read only = no
;*******************section printers*****************
[printers]
comment = All Printers
path = /tmp
printable = yes
guest ok = yes
create mask = 0777
browseable = No

[hp_zahid]
printable = yes
path = /tmp
guest ok = yes
comment = hp_zahid

;************************section other folders****************
[My Documents]
guest ok = yes
path = /mnt/hda5/My Documents/

[Soft]
guest ok = yes
path = /mnt/hda6/Soft
আসুন উপরোক্ত ফাইলটির বিভিন্ন অপশনগুলির কোনটি কি ধরনের কাজ করে থাকে তা আলোচনা করি। এ অপশগুলি ছাড়াও অনেক অপশন রয়েছে যা সবসময় কাজে লাগে না। এজন্য সাম্বার অফিসিয়াল ম্যানুয়াল দেখে নিতে পারেন।

প্রথমেই global সেকশন-

workgroup = BANK - আপনার কম্পিউটার যে নেটওয়ার্কের অধীনে আছে তার ওয়ার্কগ্রুপের (BANK) নাম।
hosts allow - এ অপশনে নেটওয়ার্কের যে সব মেশিন সাম্বা ব্যবহার করতে পারবে তাদের আই.পি নাম্বার এর তালিকা। কোন নির্দিষ্ট মেশিনকে অনুমতি দিতে চাইলে তার আই.পি নম্বর (১৯২.১৬৮.২.৩) দিতে হবে। আর যদি ওয়ার্কগ্রুপের সবাইকে পারমিশন দিতে চান তাহলে উক্ত ওয়ার্কগ্রুপের প্রথম তিনটি অক্টেট নম্বর দিতে হবে (১৯২.১৬৮.২.)। প্রতিটি এন্ট্রির পর একটি স্পেস দিতে হবে।

security = share এটি একটি গুরুত্বপূর্ন অপশন। এখানে share অপশন দিলে পাসওয়ার্ড ছাড়াই যে কেউ সাম্বা ব্যবহার করতে পারবে। আর যদি এখানে user দেয়া হয় তাহলে পাসওয়ার্ড ছাড়া সাম্বার বিভিন্ন শেয়ারিং ব্যবহার করা যাবে না। বর্তমান উদাহরনে যেহেতু আমরা একটি বেসিক নেটওয়ার্ক সেটআপ করতে যাচ্ছি যেখানে সবাই পাসওয়ার্ড ছাড়াই প্রিন্টার, ফোল্ডার শেয়ার করবেন তাই এটি আমরা share অপশন হিসেবে সেট করব।

map to guest = bad user সাম্বা যখন পাসওয়ার্ড প্রদান/ অথেনটিকেশন ছাড়া ব্যবহার করা হবে তখন গেস্ট হিসেবে কোন একাউন্ট সিস্টেম ব্যবহার করবে তা এখানে দিয়ে দেয়া হয়।

printing = cups এ অপশনটির সাহায্যে প্রিন্টার হিসেবে সাম্বা কি ব্যবহার করবে তা বলে দেয়া হয়। cups (common unix printing system)বেশীরভাগ লিনাক্সের ক্ষেত্রে প্রিন্টিং এর কাজে ব্যবহৃত হয়।cups ইনস্টল আছে কিনা তা দেখার জন্য ব্রাউজার খুলে এ্যাড্রেস বারে লিখুন- http://localhost:631। যদি সফলভাবে কাপস এর পেজ দেখা যায় তবে এখানে বিভিন্ন কাজ গ্রাফিক্যালি করতে পারবেন। এছাড়াও এখানে bsd ব্যবহার করা যায়।

printcap name = cups এ অপশনটিও প্রিন্টার এর জন্য ব্যবহৃত হয়।

printer name = hp_zahid এখানে যে প্রিন্টার এর নাম থাকবে তা শেয়ারিং এর সময় দেখা যাবে।এ অপশনটি Add Printer Wizard থেকে কোন প্রিন্টার সেটআপ করা হলে তবেই পাওয়া যাবে।

use client driver = no প্রিন্টার ইনস্টলের সময় কোন ড্রাইভার ব্যবহার করবে তা বলে দেয়া হয়। যদি no এর বদলে Yes থাকে তবে প্রিন্টার শেয়ারিং এর সময় প্রিন্টার মেশিন ছাড়া ও অন্য লোকেশন থেকে ড্রাইভার ইনস্টল করা যায়।

এবার আমরা [shared], [music], [home], [My Documents] & [Soft] সেকশনগুলি আলোচনা করবো। এগুলি একেকটি ফোল্ডার শেয়ার এর জন্য ব্যবহৃত হবে।

[home] - ব্রাকেটের মধ্যে যে নাম থাকবে শেয়ারিং এর সময় ফোল্ডার হিসেবে সে নামই দেখা যাবে।
path = /home/zahid - এখানে যে ফোল্ডার শেয়ারিং করবেন তার পাথ/লোকেশন দেয়া থাকে।
guest ok = yes - এ অপশনের সাহায্যে কোন গেস্ট একাউন্ট দিয়ে উক্ত সাম্বা সেট আপের ফাইল, ফোল্ডার ব্যবহার করা যাবে কিনা তা বলে দেয়া হয়।

এবার প্রিন্টার এর জন্য আরো দুটি সাব-সেকশন [printers] এবং [hp_zahid] নিয়ে আলোচনা করবো। প্রিন্টার এর জন্য কয়েকটি অপশন আমরা আগেই [global] সেকশনে দিয়ে এসেছি। বাকীগুলি এ দুটি সেকশনে দেয়া আছে।

Comment = All Printers - শেয়ারিং হিসেবে প্রিন্টার এর লিংকে এ নাম দেখা যাবে।
Path = /tmp - এখানে প্রিন্টার তার টেম্পরারি ফাইল হিসেবে যে ফোল্ডার ব্যবহার করবে তার লোকেশন দেয়া হয়।
Printable = yes - এটি যদি no দেয়া হয় তবে প্রিন্টার দেখা গেলেও তা দিয়ে প্রিন্ট করা যাবে না। তাই শেয়ারিং এর জন্য এটি অবশ্যই yes রাখতে হবে।

Guest ok = yes - এর কাজ আগের ফোল্ডারের বিবরনের মতই।

Browseable = no - এটি no দেয়া থাকলে এক্সপ্লোরারের সাহায্যে প্রিন্টার দেখা যাবে না। তবে শেয়ার করা যাবে।

[hp_zahid] - এ ধরনের আলাদা সেকশন থাকে যদি লোকাল কোন প্রিন্টারকে সুনির্দিষ্টভাবে শেয়ার করার প্রয়োজন হয়। এর কাজও আগের মতই। এ সেকশনটি সাধারনতঃ কোন প্রিন্টার লোকালি ইনস্টল করা হলে স্বয়ংক্রিয়ভাবে কনফিগারেশন ফাইলে যুক্ত হয়ে থাকে। যেমনঃ কেডিইতে Add Printer Wizard এর সাহায্যে কোন প্রিন্টার লিনাক্সে ইনস্টল করা হলে এরকম আলাদা একটি সেকশন যুক্ত হবে।

উপরে আমরা যে কনফিগারেশন ফাইলটি দেখলাম সেটি এডিট করার জন্য ভি-এডিটর বা এ জাতীয় কোন টেক্সট এডিটর ব্যবহার করুন। এর জন্য কমান্ড হবেঃ vi /etc/samba/smb.conf । যদি অন্য কোন এডিটর ব্যবহার করতে চান তবে vi এর স্থলে তার নাম দিন যেমনঃ gedit, kedit etc.। এভাবে একটি লিনাক্স মেশিন থেকে উইন্ডোজ মেশিনে ফোল্ডার ও প্রিন্টার শেয়ারিং করা যায়। উপরের কনফিগারেশন ফাইলটিতে বেশ কয়েকটি ফোল্ডার শেয়ারিং এর জন্য এন্ট্রি আছে। এখানে আপনার প্রয়োজনমত যে কয়টি ফোল্ডার শেয়ার করা দরকার শুধুমাত্র সে কয়টি ফোল্ডার শেয়ার করুন।
সবার শেষে কনফিগারেশন ফাইল এডিট করার পর সাম্বা রি-স্টার্ট করতে হবে যাতে পরিবর্তনসমূহ কার্যকরী হয়। এজন্য কমান্ড দিনঃ /etc/init.d/samba restart

উইন্ডোজ মেশিন থেকে লিনাক্স মেশিনের ফোল্ডার ও প্রিন্টার শেয়ারিং

সাম্বা ইনস্টল ও কনফিগারেশন করার পর আমরা এখন উইন্ডোজ মেশিন থেকে কিভাবে লিনাক্স মেশিনকে শেয়ার করা যায় তা দেখব।এটি করার পর লিনাক্স মেশিন থেকে কিভাবে উইন্ডোজ মেশিনের রিসোর্স শেয়ার করা যায় তা দেখব।
প্রথমে উইন্ডোজ মেশিন থেকে লিনাক্স মেশিনে প্রবেশ করার জন্য উইন্ডোজের স্টার্ট মেনু থেকে রান মেনুতে ক্লিক করুন। তারপর লিনাক্স মেশিনের আইপি (যেমনঃ //১৯২.১৬৮.২.৩) টাইপ করুন অথবা //hostname। তারপর লিনাক্সের প্রিন্টারটিতে রাইট মাউস ক্লিক করে Connect ক্লিক করুন। ড্রাইভার ইনস্টলের জন্য ডায়ালগ বক্স অনুসরন করুন।
শেয়ারড ফোল্ডারগুলি হোস্ট নেম/মেশিনের আইপি প্রবেশ করালেই উইন্ডোজ এক্সপ্লোরারে দেখা যাবে।

লিনাক্স মেশিন থেকে উইন্ডোজ মেশিনের ফোল্ডার ও প্রিন্টার শেয়ারিং

লিনাক্স মেশিন থেকে কোন উইন্ডোজ মেশিনে শেয়ার করা ফোল্ডার দেখার জন্য ডিফল্ট ফাইল ব্রাউজার যেমনঃ konqueror, nautilus খুলুন। তারপর এ্যাড্রেস বারে লিখুনঃ smb://hostname যেখানে হোস্টনেম এর জায়গায় মেশিনের আইপি নম্বর (192.168.2.3)অথবা হোস্টনেম (mepis1, pc1 etc)ইত্যাদি দিতে হবে। তারপর এন্টার কি প্রেস করলেই ফোল্ডার সমূহ দেখতে পাবেন।

লিনাক্স মেশিন থেকে উইন্ডোজ মেশিনে ইনস্টলকৃত প্রিন্টার শেয়ারিং এর জন্য লিনাক্স এর নিজস্ব Add Printer Wizard ব্যবহার করুন।

ছবি

যেমন উপরের চিত্রে কেডিই ইন্টারফেসের Add Printer Wizard ডায়ালগ বক্স দেখা যাচ্ছে। এখানে SMB shared printer (Windows) সিলেক্ট করে Next বাটনে ক্লিক করি। তারপর ইউজার আইডেন্টিফিকেশন বক্স আসলে Anonymous সিলেক্ট করি। তারপর নেক্সট বাটনে ক্লিক করলে নিচের চিত্রের মত সবকিছু বসিয়ে আবার নেক্সট ক্লিক করি।
ছবি

তবে স্ক্যান বাটনে ক্লিক করেও লোকাল প্রিন্টার খুজে বের করা যায় উইন্ডোজ মেশিনের মত। কিন্তু মাঝে মাঝে সমস্যা হয় ডিটেক্ট করতে এজন্য উপরের মত নিজ হাতে কনফিগার করে দিলেই ভাল। পরের ডায়ালগ বক্সে প্রিন্টার মডেল (Manufacturer, Model) নির্বাচন করে আবার নেক্সট বাটনে ক্লিক করি। ড্রাইভার সিলেকশন বক্সে রিকমেন্ডেড ড্রাইভার সিলেক্ট করে পরবর্তী ধাপে যাই। পরবর্তীতে একইভাবে ব্যানার, কোটা, ইউজার একসেস কন্ট্রোল ইত্যাদি সিলেক্ট করে কাজ শেষ করি। সর্বশেষ ধাপে প্রিন্টার এর একটি নাম যেমন- hp_bank ইত্যাদি দিয়ে দেই। তারপর Finish বাটনে ক্লিক করে কাজ শেষ করি।

ট্রাবলশুটিং

সাম্বার সাহায্যে লিনাক্স ও উইন্ডোজ মেশিনের মধ্যে নেটওয়ার্কিং করার সময় বেশ কিছু সমস্যার সম্মুখীন হতে হয়। সেগুলি কিভাবে সমাধান করতে হয় তা এখন দেখব।
১. প্রথমেই দেখুন /etc/samba/smb.conf ফাইলের hosts allow অপশনে আপনার মেশিনের নেটওয়ার্ক/ আইপিকে অনুমতি দেয়া আছে কিনা? দেয়া না থাকলে এখানে মেশিনের আইপি যেমনঃ ১৯২.১৬৮.২.৭৫ অথবা সম্পূর্ন নেটওয়ার্ক (১৯২.১৬৮.২.) কে যুক্ত করুন।

২. অনেক সময় ফায়ারওয়্যাল এনাবল করা থাকলে সাম্বা কাজ করতে পারে না। এজন্য লিনাক্স মেশিনের ফায়ারওয়্যাল (গার্ডডগ, ফায়ারস্টার্টার) বন্ধ করে নিন। প্রয়োজনে উইন্ডোজ মেশিনের ফায়ারওয়্যাল ও বন্ধ করে নিন। ফায়ারওয়্যাল চালু রাখতে চাইলে সাম্বার জন্য ১৩৭, ১৩৮, ১৩৯ নম্বর পোর্ট খুলে রাখুন। এজন্য কোন গ্র্যাফিক্যাল টুলস যেমনঃ ওয়েবমিন, গার্ডডগ, ফায়ারস্টার্টার ইত্যাদি ব্যবহার করতে পারেন।

৩. ifconfig -a কমান্ড দিয়ে দেখুন সাম্বার ব্রডকাস্ট এ্যাড্রেস এবং অন্য ক্লায়েন্টদের ব্রডকাস্ট এ্যাড্রেস একই আছে কিনা?

৪. smbclient -L localhost কমান্ড দিয়ে দেখুন সাম্বা সার্ভিস চালু আছে কিনা?

৫. testparm – সাম্বা রিস্টার্টের আগে এ কমান্ড দিয়ে দেখুন সাম্বার কনফিগারেশন ফাইল ঠিক আছে কিনা?

৬. smbstatus – কমান্ড দিয়ে দেখুন সাম্বার স্ট্যাটাস

৭. http://localhost:631 পাথ ব্রাউজারে লিখে এন্টার দিন। তারপর কাপসের জন্য পারমিশন দিয়ে দিন যাতে অন্য মেশিন থেকেও কাপসকে সাম্বার সাহায্যে শেয়ার করা যায়।

৮. যেকোন প্রিন্টার সেকশনের জন্য /etc/samba/smb.conf ফাইলে দেখুন path = /tmp অথবা path = /var/spool/samba এর মত কোন ভ্যালিড পাথ আছে কিনা?

৯. যদি আপনার মেশিনে দুটি নেটওয়ার্ক কার্ড থাকে তাহলে [global] সেকশনে interfaces = 127.0.0.1, 192.168.2.75/24 এবং bind interfaces = yes লাইন দুটি যোগ করে নিন।

১০. প্রিন্টার শেয়ারিং এ সমস্যা হলে [global] সেকশনে দেখুন printing = cups এবং printcap = cups লাইন দুটি আছে কিনা? যদি না থাকে তাহলে যোগ করে নিন।

2 comments:

Post a Comment