জেলযুক্ত এসএফটিপি-র জন্য লেখার অনুমতি পরিবর্তন করা লগইনকে অস্বীকার করে


14

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

সেটআপ

sshd_config

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp


Match group webmaster
        X11Forwarding no
        ChrootDirectory %h
        AllowTcpForwarding no
        ForceCommand internal-sftp

ফোল্ডার তৈরি করুন

mkdir /var/www/sites

ব্যবহারকারী এবং গোষ্ঠী তৈরি করুন

useradd uploader
passwd uploader
usermod -d /var/www/sites uploader
groupadd webmaster uploader
groupadd www-data uploader

অনুমতি এবং মালিকানা

chown root:root /var/www
chmod 755 /var/www/sites

এখন এই সেটিংসের সাহায্যে ব্যবহারকারী আপলোডার হোম ডিরেক্টরিতে এসএফটিপি সক্ষম করতে পারবেন তবে ডিরেক্টরিতে লিখতে অক্ষম।

এখানে দুটি সাধারণ ত্রুটি দেখা দেয়, আমি হয় লগইন করতে পারি না বা আমার কাছে লেখার অনুমতি নেই।

লগইন ত্রুটি

Error:    Network error: Software caused connection abort
Error:    Could not connect to server


Changing permissions of /var/www/sites to 775 or 777 causes login error.
chown /var/www/sites to uploader:root causes login error.
chwon root:webmaster or root:www-data I have no write permissions

আমি এটিকে বের করার চেষ্টা করার সাথে মতবিরোধ করছি এবং যদি কেউ আমাকে সঠিক দিকে নির্দেশ করতে পারে তবে আমি এর প্রশংসা করব।

ধন্যবাদ.

উত্তর:


16

সমাধান খুঁজে পেয়েছি। ব্যবহারকারীকে কারাগারে বন্দী করা হয়েছে /var/www/sites। আমি তখন অন্য একটি ফোল্ডার তৈরি করেছি /var/www/sites/site1

আমি ব্যবহার করি:

chown root:webmaster /var/www/sites/site1 
chmod 775 /var/www/sites/site1

এটি হোম ডিরেক্টরিটি লগইন করার সঠিক অনুমতি থাকতে সক্ষম করেছে এবং তারপরে পরবর্তী ফোল্ডারে লিখতে সক্ষম হবে।

যদি ব্যবহারকারীর লেখার অ্যাক্সেসের প্রয়োজন হয় /var/www/sites, তবে আপনাকে অবশ্যই 755 /var/wwwএর root:rootমালিকানা এবং অনুমতি থাকা ব্যবহারকারীর জেল করতে হবে then তারপরে আপনাকে মূলটির /var/www/sitesমালিকানা দেওয়া উচিত : (আপনার গ্রুপ) এবং 775 এর অনুমতি।


1

সম্ভবত সবচেয়ে বড় সমাধানটি হ'ল:

mkdir /var/www/sites/myfirstuser/hisownsite
mkdir /var/www/sites/myseconduser/hisownsite

...

chown root:root /var/www/sites /var/www/sites/{myfirstuser,myseconduser} && chmod 755 /var/www/sites/{myfirstuser,myseconduser}

chmod 775 /var/www/sites/myfirstuser/hisownsite
chmod 775 /var/www/sites/myseconduser/hisownsite
chgrp www-data /www/sites/myfirstuser/hisownsite /var/www/sites/myseconduser/hisownsite

ব্যবহারকারীদের যুক্ত করুন:

useradd -d /var/www/sites/myfirstuser -s /bin/false -g www-data  dev1
useradd -d /var/www/sites/myseconduser -s /bin/false -g www-data dev2
passwd dev1
passwd dev2

তারপরে, আপনি তৈরি প্রতিটি ব্যবহারকারীর জন্য, এর মতো একটি এসএসএস ট্যাগ যুক্ত করুন: (আপনি "ম্যাচ ব্যবহারকারী" এর পরিবর্তে আপনার "উদাহরণস্বরূপ" ম্যাচ গ্রুপ "নির্দেশিকাটি ব্যবহার করতে পারেন)

Match User dev1
    ChrootDirectory %h
    ForceCommand internal-sftp
    AllowTcpForwarding no

Match user dev2
    ChrootDirectory %h
    ForceCommand internal-sftp
    AllowTcpForwarding no

তাই আপনি আঁকানো পরিবেশে আপনার প্রয়োজন সমস্ত ব্যবহারকারীকে পরিচালনা করতে পারেন।

এইচথ, ফ্যাব্রিজিও


আপনার চূড়ান্ত কোড ব্লকটি পুনরায়: Matchএস কমা-বিচ্ছিন্ন তালিকায় একাধিক টার্গেটকে সমর্থন করে, তাই আমরা উভয় ব্যবহারকারীর জন্য একক ওভাররাইডের একটি সেট রেখে শিরোনামেMatch User dev1,dev2
আন্ডারস্কোর_আডি

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