ক্রোটেড এসএফটিপি ব্যবহারকারীর লেখার অনুমতি


10

আমার কেবলমাত্র sftp ব্যবহারকারীদের সাথে একটি সেটআপ রয়েছে:

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

আমি আমার সুরক্ষিত ব্লগে নিম্নলিখিত বার্তাটি পেয়েছি:

fatal: bad ownership or modes for chroot directory

ম্যাচের কীওয়ার্ড সহ এটির সাথে কিছু সুরক্ষা সামগ্রী আসে ... ডিরেক্টরিগুলি রুটের মালিকানাধীন হওয়া দরকার এবং ডিরেক্টরিগুলি chmod 755 (drwxr-xr-x) হওয়া দরকার। সুতরাং এটি ব্যবহারকারীর পক্ষে ফোল্ডারে লেখার অনুমতি থাকা অসম্ভব হয়ে পড়ে, যদি এটি কেবল ব্যবহারকারী রুটে লেখার যোগ্য হয় এবং ssh এর সুরক্ষার কারণে গ্রুপগুলির জন্য অ-লিখনযোগ্য বেন সেট করে থাকে।

চারপাশে ভাল কাজ সম্পর্কে কেউ জানেন?


কি chrootইডি ব্যবহারকারীরা তাদের নিজস্ব ChrootDirectory? তারা কি এটি অ্যাক্সেস করতে পারে?
জন ডব্লিউ এইচ স্মিথ

উত্তর:


2

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

আরেকটি সম্ভাবনা হ'ল এসিএল ( ওপেনসুএস ডকুমেন্টেশন ) - এটি তার নিজের ডিরেক্টরিতে স্বতন্ত্র ব্যবহারকারীর জন্য লেখার অনুমতি যুক্ত করতে পারে।


1
আমার জন্য, ডেবিয়ান জেসি (8.10) তে, ব্যবহারকারীর বাড়িতে এসিএল স্থাপন কার্যকর হয় না। যখন ব্যবহারকারী এসএফটিপি-তে লগইন করার চেষ্টা করেন, তারা পানpacket_write_wait: Connection to 10.0.0.42 port 22: Broken pipe
ড্রিউ চ্যাপিন

7

আমরা সম্প্রতি একটি কাজের সন্ধান পেয়েছি যা এরকম হয়:

জন্য / etc / SSH / sshd_config:

...

Subsystem sftp internal-sftp

Match Group sftponly
    ChrootDirectory /home
    AllowTCPForwarding no
    X11Forwarding no
    ForceCommand internal-sftp

ডিরেক্টরি অনুমতি:

root@server:~ # chown root:root /home
root@server:~ # chmod 111 /home
root@server:~ # chmod 700 /home/*

এখন সীমাবদ্ধ ব্যবহারকারীদের /homeজন্য প্রয়োজনীয়তাগুলি পূরণ করে ChrootDirectoryএবং তালিকাভুক্ত করা যাবে না, তবে sftponlyব্যবহারকারীরা যদি তাদের হোম ডিরেক্টরিগুলি যথারীতি ( /home/$LOGNAME) নির্ধারণ করা থাকে তবে লগ ইন করতে সক্ষম হবেন না : ক্রোয়েড পরিবেশের মধ্যে তাদের বাড়ির ডিরেক্টরিগুলি ভিতরে না থাকলেও /homeসরাসরি অধীনে থাকে রুট ( /)।

কর্মক্ষেত্র 1

সীমাবদ্ধ ব্যবহারকারীর বাড়ি কীভাবে ক্রুটের নীচে প্রদর্শিত হবে তা সেট করুন:

root@server:~ # usermod -d /username username

ক্যাভেট ১

যদি কোনও বাধা-নিষিদ্ধ ব্যবহারকারী বা প্রশাসনের কোনও স্ক্রিপ্ট বাশের টিল্ড সম্প্রসারণ ব্যবহার করে তবে ~usernameএটি /usernameএখন প্রসারিত হবে , যা বোঝানো হচ্ছে তা নয়।

এছাড়াও sftponlyব্যবহারকারীদের তৈরি করা প্রশাসককে নন-ডিফল্ট হোম ব্যবহার করতে হবে। একটি স্ক্রিপ্ট সহ সমাধানযোগ্য। যা ব্যবহার করতে অ্যাডমিনকে মনে রাখতে হবে।

workaround 2

এটি আগেরটির বিকল্প যা আমরা ব্যবহার করে শেষ করেছি:

root@server:~ # ln -s . /home/home

এটি /homeতার নিজস্ব নামকরণের ভিতরে একটি সিমিলিংক তৈরি করে। ক্রুট /home/usernameপয়েন্টের নীচে ক্রোট ছাড়াই একই ডিরেক্টরিতে পয়েন্ট করুন। এসএফটিপি দিয়ে লগ ইন করা সীমাবদ্ধ ব্যবহারকারীর জন্য এটি প্রদর্শিত হবে /username। এই ডিরেক্টরিটি তার মালিকের কাছে লিখিতযোগ্য (ব্যবহারকারীকে সীমাবদ্ধ)। সীমাবদ্ধ ব্যবহারকারীর নাম অনুসারে ভাই-বোনদের কোনও তার পিতামাতার বা হোম ডিরেক্টরি তালিকা করতে পারে না।

কোনও sftponlyব্যবহারকারীর বিশেষ একমাত্র বিষয় হল এটির দলে অংশ নেওয়া sftponly। কার্যবিধির 1 এর চেয়ে বেশি আমরা এর সাথে মোকাবিলা করতে সহজ পেয়েছি।

সাবধান 2

  1. আপনার কোনও হোম ডিরেক্টরি সহ 'হোম' নামের ব্যবহারকারী থাকতে পারে না /home/home
  2. /homeশ্রেণিবিন্যাসকে অতিক্রম করে এমন চিহ্নগুলি অনুসরণ করে এমন স্ক্রিপ্টগুলির সাথে আপনাকে সতর্ক থাকতে হবে ।

হাই আর্টম বা অন্য কোনও পাঠক, আমি জানি এটি একটি পুরাতন পোস্ট তবে আপনি কি দয়া করে আমাকে 2 অনুগ্রহ করে বুঝতে সাহায্য করতে পারেন? আমার একটি ব্যবহারকারী (ftpuser) আছে যা তাদের বাড়ির ডিরেক্টরিতে (/ home / ftpuser /) জেল খাওয়া দরকার, এটি আমি বর্ধন করতে পারি তবে / home / ftpuser অবশ্যই 755 থাকতে হবে। আমি তাদের বাড়ির ডিরেক্টরিতে ন্যাড ফোল্ডার ফাইল তৈরি করতে সক্ষম হতে ftpuser প্রয়োজন। আমার কোন সিমলিংক তৈরি করতে হবে এবং আমার ক্রুটডাইরেক্টরিটির কী মূল্য থাকতে হবে?
ব্লাট্যান্ট

4

আপনাকে ব্যবহারকারীর হোম ডিরেক্টরিতে যেমন আউট এবং ডায়ারের মতো একটি কাঠামো তৈরি করতে হবে। এই ডায়ারগুলি ব্যবহারকারীর মালিকানাধীন হওয়া উচিত এবং সেখানে তিনি ফাইলগুলি রাখতে এবং পেতে সক্ষম হবেন।


0

আপনার নিম্নলিখিত ডিরেক্টরি কাঠামো তৈরি করা উচিত:

/ হোম / ব্যবহারকারী

/ হোম / ইউজার / হোম / ইউজার <- ব্যবহারকারীর অ্যাক্সেস থাকবে এমন আসল দির

বৈকল্পিকভাবে:

/home/user/.ssh/authorised_keys <- আপনি যদি সর্বজনীন কী দিয়ে প্রমাণীকরণ করতে চান


0

@Artm থেকে উত্তরটিতে 'ডিরেক্টরি অনুমতিগুলি' বিভাগের প্রসঙ্গে (যা আমি সবেমাত্র পরীক্ষা করেছি) .. আমি পেয়েছি:

root@server:~ # chmod 111 /home <- Does not work

এটি sftp সংযোগটি কেবলমাত্র 111 এর উপর কেবল অনুমতিগুলি সম্পাদন করে উবুন্টুতে কাজ করতে দেয় না।

আমি এটি পেয়েছি:

root@server:~ # chmod 555 /home

রিড অ্যান্ড এক্সিকিউট অনুমতিগুলি অর্থাৎ 555 এর সাথে এসএফটিপি সংযোগের সাথে কাজ করে sure


0

আপনি যখন কোনও ব্যবহারকারী তৈরি করেন, আপনাকে chownপ্রত্যেক ব্যবহারকারীর জন্য প্রতিটি দিরের সাথে মালিকানা সেট করতে হবে।

উদাহরণ স্বরূপ:

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