আমি কি কোনও এসএসএইচ ব্যবহারকারী তৈরি করতে পারি যা কেবলমাত্র নির্দিষ্ট ডিরেক্টরিতে অ্যাক্সেস করতে পারে?


45

আমার একটি ভার্চুয়াল প্রাইভেট সার্ভার রয়েছে যা আমি আমার রুট অ্যাকাউন্টের সাথে এসএসএইচ ব্যবহার করে সংযুক্ত করতে পারি, যে কোনও লিনাক্স কমান্ড কার্যকর করতে সক্ষম হয়ে সমস্ত ডিস্ক অঞ্চল অ্যাক্সেস করতে পারি ly

আমি অন্য একটি ব্যবহারকারী অ্যাকাউন্ট তৈরি করতে চাই, যা এসএসএইচ ব্যবহার করে এই সার্ভারটি অ্যাক্সেস করতে সক্ষম হবে, তবে কেবলমাত্র একটি নির্দিষ্ট ডিরেক্টরিতে, উদাহরণস্বরূপ /var/www/example.com/

উদাহরণস্বরূপ, কল্পনা করুন যে এই ব্যবহারকারীর একটি বিশাল ত্রুটি রয়েছে log লগ ফাইল (500 এমবি) /var/www/example.com/logs/error.log এফটিপি ব্যবহার করে এই ফাইলটি অ্যাক্সেস করার সময়, এই ব্যবহারকারীর লগের শেষ লাইনগুলি দেখতে 500 এমবি ডাউনলোড করতে হবে, তবে আমি চাইব তিনি তাঁর এই জাতীয় কিছু কার্যকর করতে সক্ষম:

tail error.log

অতএব আমার প্রয়োজন তাঁর এসএসএইচ ব্যবহার করে সার্ভারটি অ্যাক্সেস করতে সক্ষম হওয়া চাই, তবে আমি তাকে সমস্ত সার্ভার ক্ষেত্রে অ্যাক্সেস দিতে চাই না।

কিভাবে আমি এটি করতে পারব?

উত্তর:


29

chroot ব্যবহারকারী.


হালনাগাদ:

TechRepublic নিবন্ধ ভিনসেন্ট Danen দ্বারা বলেছেন:

ওপেনএসএসএইচ 4.9p1 প্রকাশের সাথে সাথে ব্যবহারকারীদের তাদের বাড়ির ডিরেক্টরিতে সীমাবদ্ধ রাখতে বা এসএফটিপি পরিষেবাগুলিতে অ্যাক্সেস দেওয়ার জন্য আপনার আর তৃতীয় পক্ষের হ্যাক বা জটিল ক্রুট সেটআপের উপর নির্ভর করতে হবে না।

সম্পাদনা করুন / ইত্যাদি / ssh / sshd_config (/ etc / sshd_config কিছু বিতরণ) এবং নিম্নলিখিত বিকল্পগুলি সেট করুন:

Subsystem     sftp   internal-sftp
Match Group sftp
    ChrootDirectory %h
    ForceCommand internal-sftp
    AllowTcpForwarding no

"ম্যাচ" নির্দেশনাটি ফাইলের শেষে রয়েছে তা নিশ্চিত করুন। এটি ওপেনএসএইচকে বলেছে যে এসএফটিপি গ্রুপের সমস্ত ব্যবহারকারীকে তাদের হোম ডিরেক্টরিতে ক্রোট করা হবে (যা% h ক্রুটডাইরেক্টরি কমান্ডে উপস্থাপন করে)

আপনি যে কোনও ব্যবহারকারীকে ক্রুট করতে চান, তাদের ব্যবহার করে এসএফটিপি গ্রুপে যুক্ত করুন:

# usermod -G sftp joe
# usermod -s /bin/false joe
# chown root:root /home/joe
# chmod 0755 /home/joe

উপরের ইউজারমোড কমান্ডটি ব্যবহারকারীদের জোকে এসএফটিপি গ্রুপে যুক্ত করবে এবং তাদের শেলটি / বিন / মিথ্যাতে সেট করবে যাতে তারা একেবারে শেল অ্যাক্সেস পেতে না পারে। Chown এবং chmod কমান্ড ডিরেক্টরিটির জন্য প্রয়োজনীয় অনুমতি সেট করবে। এই অনুমতিগুলি সেট হয়ে গেলে ব্যবহারকারীকে ফাইল আপলোড এবং ডাউনলোড করার অনুমতি দেওয়া হবে তবে রুট ডিরেক্টরিতে ডিরেক্টরি বা ফাইল তৈরি করতে পারবেন না

শেল অ্যাকাউন্টগুলি ক্রুট করা কিছুটা জটিল কারণ এটির জন্য প্রয়োজনীয় কিছু ডিভাইস ফাইল এবং একটি শেল ব্যবহারকারীর হোম ডিরেক্টরিতে পাওয়া উচিত। নিম্নলিখিত কমান্ডগুলি ম্যান্ড্রিভা লিনাক্সে একটি খুব প্রাথমিক ক্রুট সিস্টেম সেট আপ করবে:

# mkdir /chroot
# cd /chroot
# mkdir {bin,dev,lib}
# cp -p /bin/bash bin/
# cp -p /lib/{ld-linux.so.2,libc.so.6,libdl.so.2,libtermcap.so.2} lib/
# mknod dev/null c 1 3
# mknod dev/zero c 1 5
# chmod 0666 dev/{null,zero}
# mkdir -p /chroot/home/joe

উপরের সাহায্যে, ব্যবহারকারী জো প্রবেশ করতে পারে এবং ক্রটটিতে সীমাবদ্ধ থাকবে। দুর্ভাগ্যক্রমে, এটি খুব বেশি কিছু করে না, তবে এটি কীভাবে সেট আপ করা যায় তা আপনাকে একটি ধারণা দেয়। আপনি যা সরবরাহ করতে চান তার উপর নির্ভর করে আপনাকে অতিরিক্ত গ্রন্থাগার এবং বাইনারি ইনস্টল করতে হবে।


উবুন্টু কমিউনিটি ওয়েব সাইট বলছেন

ক্রোট তৈরি করা

  1. Dchroot এবং debootstrap প্যাকেজ ইনস্টল করুন।

  2. প্রশাসক হিসাবে (যেমন সুডো ব্যবহার করে) ক্রুটের জন্য একটি নতুন ডিরেক্টরি তৈরি করুন। এই পদ্ধতিতে ডিরেক্টরিটি /var/chrootব্যবহার করা হবে। এটি করতে, sudo mkdir /var/chroot একটি কমান্ড লাইনে টাইপ করুন ।

  3. প্রশাসক হিসাবে, /etc/schroot/schroot.confএকটি পাঠ্য সম্পাদক খুলুন । টাইপ করুন cd /etc/schroot, তারপরে অনুসরণ করুন gksu gedit schroot.conf। এটি আপনাকে ফাইল সম্পাদনা করার অনুমতি দেবে।

  4. নিম্নলিখিত লাইনগুলিতে যুক্ত করুন schroot.confএবং তারপরে ফাইলটি সংরক্ষণ করুন এবং বন্ধ করুন। your_usernameআপনার ব্যবহারকারী নাম দিয়ে প্রতিস্থাপন করুন ।

    [lucid] বিবরণ = উবুন্টু লুসিড অবস্থান = / var / chroot অগ্রাধিকার = 3 ব্যবহারকারী = আপনার_ ব্যবহারকারী নাম গোষ্ঠী = স্বল্প মূলের গোষ্ঠী = রুট

একটি টার্মিনাল খুলুন এবং টাইপ করুন:

sudo debootstrap --variant=buildd --arch i386 lucid /var/chroot/ \ 
http://mirror.url.com/ubuntu/

এটি ক্রুটে উবুন্টু 10.04 (লুসিড লিংক) এর একটি প্রাথমিক 'ইনস্টলেশন' তৈরি করবে। প্যাকেজগুলি ডাউনলোড হতে কিছু সময় নিতে পারে। দ্রষ্টব্য: আপনি আপনার পছন্দের উবুন্টু সংস্করণ দিয়ে লুসিড প্রতিস্থাপন করতে পারেন। দ্রষ্টব্য: আপনার mirror.url.comকাছে স্থানীয় বৈধ সংরক্ষণাগারটির URL সহ আপনার অবশ্যই উপরেরটি পরিবর্তন করতে হবে। একটি বেসিক ক্রুট এখন তৈরি করা উচিত ছিল। sudo chroot /var/chroot ক্রোটের অভ্যন্তরে কোনও রুট শেল পরিবর্তন করতে টাইপ করুন।

ক্রুট সেটআপ করা হচ্ছে

Chroot সেট আপ করতে ডিএনএস রেজোলিউশন এবং অ্যাক্সেসের মতো সুবিধাগুলি সরবরাহ করতে আপনি নিতে পারেন এমন কয়েকটি প্রাথমিক পদক্ষেপ /proc

দ্রষ্টব্য: ক্রোটের বাইরে থাকা শেলের মধ্যে এই কমান্ডগুলি টাইপ করুন।

/proc ক্রুটে ফাইল সিস্টেমটি মাউন্ট করতে নিম্নলিখিত টাইপ করুন (প্রক্রিয়া পরিচালনার জন্য প্রয়োজনীয়):

sudo mount -o bind /proc /var/chroot/proc  

ক্রোটের মধ্যে থেকে ডিএনএস রেজোলিউশনটিকে অনুমতি দেওয়ার জন্য নিম্নলিখিত টাইপ করুন (ইন্টারনেট অ্যাক্সেসের জন্য প্রয়োজনীয়):

sudo cp /etc/resolv.conf /var/chroot/etc/resolv.conf 

খুব কম প্যাকেজ একটি ক্রুটে ডিফল্টরূপে ইনস্টল করা হয় (এমনকি সুডো ইনস্টল করা হয় না)। apt-get install package_nameপ্যাকেজ ইনস্টল করতে ব্যবহার করুন ।


16

আপনার সেরা বাজি, এই প্রোগ্রামটিতে, একটি SSH chroot জেল, অর্থাত, উপর একটি সর্বনিম্ন ব্যাশ পরিবেশ সেট আপ হয় /var/www/example.com/Dir। এটি করতে, আপনি অনুসরণ করতে পারেন:

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.