ত্রুটির বার্তা "500 ওওপিএস: বনফুটপিডি: ক্রুটের অভ্যন্তরে লিখিতযোগ্য মূলের সাথে চালানো অস্বীকার করে ()" - ব্যবহারকারীকে কারাগারে রাখুন


19

এখনও অবধি আমি কোনও এফটিপি ব্যবহারকারীকে তাদের ওয়েবসাইট ডিরেক্টরিতে কারাগারে রাখতে অক্ষম। এমন কোনও সমাধান রয়েছে যা উভয়ই এই বাগটি সংশোধন করে এবং ব্যবহারকারীকে তাদের ডিরেক্টরিতে জেল করে রাখে?

আমার vsFTPd সেটিংস যা আমি পরিবর্তন করেছি:

listen_port=9000
Set: anonymous_enable=NO
Uncomment: local_enable=YES
Uncomment: write_enable=YES
Uncomment: local_umask=022
Set: connect_from_port_20=NO
Uncomment: idle_session_timeout=600
Uncomment: data_connection_timeout=120
Comment out: #ftpd_banner=Welcome to blah FTP service. [should be on line 104]
Added: banner_file=/etc/issue.net
Uncomment: chroot_local_user=YES
Uncomment: chroot_local_user=YES
Uncomment: chroot_list_enable=YES
Uncomment : chroot_list_file=/etc/vsftpd.chroot_list

ফাইলটির শেষে আমি যুক্ত করেছি:

# Show hidden files and the "." and ".." folders.
# Useful to not write over hidden files:
force_dot_files=YES

# Hide the info about the owner (user and group) of the files.
hide_ids=YES

# Connection limit for each IP address:
max_per_ip=10

# Maximum number of clients:
max_clients=5

# FTP Passive Settings
pasv_enable=YES
#If your listen_port is 9000 set this range to 7500 and 8500
pasv_min_port=[port range min]
pasv_max_port=[port range max]

প্রশ্নে থাকা ব্যবহারকারীকে mybloguserতার / তার ওয়েবসাইট ডিরেক্টরিতে জেল করা হয়েছে /srv/www/myblogএবং এই ব্যবহারকারীর nano /etc/vsftpd.chroot_listফাইলটির অংশ নেই । ব্যবহারকারীর হোম ডিরেক্টরিটিও /srv/www/myblogঅতীতে কাজ করত।

আমি allow_writeable_chroot=YESসমাধানটি চেষ্টা করেছিলাম যা কার্যকর হয়নি এবং বাস্তবে vsFTPd পুরোপুরি ভেঙে দিয়েছে।

আমি চেষ্টা করেছি:

আমরা কীভাবে দুজনেই এই ত্রুটিটি সমাধান করতে এবং ব্যবহারকারীকে তাদের হোম ডিরেক্টরিতে জেল রাখতে পারি?


একরকম, আমার জন্য, "ভার্চুয়াল" FTP ব্যবহারকারী, শুধু যোগ সেটিংস থেকে অন্তত allow_writeable_chroot=YESযথেষ্ট এবং আসলে কাজ ছিল "প্রত্যাশিত হিসাবে" FWIW ...
rogerdpack

উত্তর:


18

ভিএসএফটিপিডি 3 এর জন্য,

  1. যাও: /etc/vsftpd.conf
  2. এবং এটি যুক্ত করুন:

    allow_writeable_chroot=YES
    

    এটি উপস্থিত না থাকলে কেবল এটি যুক্ত করুন।

  3. Vsftpd পরিষেবাটি পুনরায় চালু করুন:

    service vsftpd restart
    

এবং এটি কাজ করা উচিত।


3
প্রশ্নকর্তা প্রকৃতপক্ষে বলেছেন যে তিনি ইতিমধ্যে এটি চেষ্টা করেছিলেন এবং এটি কার্যকর হয়নি, সুতরাং এটি তার প্রশ্নের উত্তর নয়।
1514 এর জন্য অনুরোধ করুন

2
এই পছন্দটির সুরক্ষা সম্পর্কিত প্রভাবগুলি সম্পর্কে আমি কোথায় পড়তে পারি?
ফ্লিকফ্লিফলি

আমার জন্য কাজ করেছেন (এটি স্বীকৃত উত্তরের মন্তব্যেও উল্লেখ করা হয়েছিল)
Sverre

16

এই সমস্যার বাস্তব সমাধান: হোম ফোল্ডার ব্যবহারকারীর উচিত লিখনযোগ্য হতে হবে শুধুমাত্র পাঠযোগ্য।

সুতরাং, যদি ব্যবহারকারীর সাইটটি ফোল্ডারে থাকে তবে cat/example.com/http/ফোল্ডারে catঅবশ্যই থাকতে chmod 555হবে এবং সমস্ত ঠিক আছে।


12
ওটা কোন অর্থ প্রকাশ করে না. ব্যবহারকারীর ডিরেক্টরিটি লেখার যোগ্য হওয়া উচিত নয় ???
কেভিন বোয়েন

6
তারা লিখতে না পারলে ব্যবহারকারীদের ঠিক কীভাবে আপলোড করার কথা ?!
সেরিন

এটি আপলোডের অধিকার ছাড়াই বেনামে এফটিপি-র জন্য ভাল কাজ করে, ধন্যবাদ!
প্যালাসিন্ট

অধিকার! এখন ঠিক আছে
user1406691

5
এটি পুরোপুরি কাজ করে! কেবল chmod 555 ব্যবহারকারীর জন্য একটি বাড়ি তৈরি করুন এবং তারপরে, chmod 755 বা আপনার প্রয়োজন মতো একটি ওয়েবসাইট (বা ওয়েবসাইটগুলি) এর জন্য একটি বাড়ি তৈরি করুন: সমস্ত কিছুই কাজ করবে এবং ব্যবহারকারীর লেখার অনুমতি থাকবে।
লুকাফেরারিও

13

এই পোস্টটির আরও পর্যালোচনা করার পরে, মন্তব্যে একটি প্যাকেজ পোস্ট করা হয়েছিল যা আমার সমস্যাটি স্থির করেছে। আপনি আমার নাম বা "চিহ্নগুলি" ডকুমেন্টেশন দ্বারা এটি অনুসন্ধান করতে পারেন: http://www.benscobie.com/fixing-500-oops-vsftpd-refusing-to-run-with-writable-root-inside-chroot/ । আমি কীভাবে এটি আরও স্থির করেছিলাম তার বিশদ এখানে।

ব্যবহারকারীরা তাদের হোম ডিরেক্টরিতে এখনও জেল খাটেছে !!!

# ------------------------------------------------------------------------------
# SETUP FTP USERS --------------------------------------------------------------
# ------------------------------------------------------------------------------

# create the ftp users and lock them to the website directories
useradd -d /srv/www/[website/appname] -m [ftp user name]

# set the ftp account passwords
passwd [ftp user name]

# add the ftp users to the www-data user/group
adduser [ftp user name] www-data

# BUG FIX: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
sudo add-apt-repository ppa:thefrontiergroup/vsftpd
sudo apt-get update
sudo apt-get install vsftpd

# Edit the vsftpd.conf and append this setting to the end of the file to keep users' jailed!
nano /etc/vsftpd.conf

# add all of the text between the starting [[ and ending ]]
# [[

# Keep non-chroot listed users jailed
allow_writeable_chroot=YES

# ]]

# restart the service for changes to take effect
sudo service vsftpd restart

#test ftp via secondary terminal window:
ftp [ftp user name]@[server ipaddress] [ftp port]

11
দয়া করে নোট করুন: ক্রিসের সমাধানটি আপনার ভাণ্ডার তালিকায় তৃতীয় পক্ষের প্যাকেজ সার্ভার যুক্ত করবে! যখন আপনি অন্ধভাবে আপনার সিস্টেমে ইনস্টল করার জন্য বিদেশী সফ্টওয়্যার প্যাকেজগুলি গ্রহণ করবেন তখন কেন একটি সুরক্ষিত, ক্রোয়েটেড এফটিপি সার্ভার ইনস্টল করবেন। (ক্রিস: আমি মনে করি না যে আপনি সুবিধা নেবেন, তবে এই সমাধানটি আইএমএইচও ব্যবহার করা খারাপ
সিস্টেমেডমিনিং

1
@reto এই দ্বিধা সমাধান করার জন্য আপনার কি আরও ভাল পন্থা রয়েছে? এটি সমাধান করার জন্য একটি ছোট গণ্ডগোল হয়েছে। আপনার সাহায্যের জন্য ধন্যবাদ.
ক্রিস হাফ

যদি বিতরণ থেকে একটি আপডেট প্যাকেজ থাকে তবে আমি এটি ব্যবহার করার চেষ্টা করব। বেশিরভাগ বিতরণ পুরানো রিলিজের জন্য ব্যাকপোর্ট সরবরাহ করে। যদি এটি সম্ভব না হয় তবে আমি মূল বিকাশকারীর কাছ থেকে উত্সটি পেয়েছি এবং এটি নিজেই তৈরি করব। যদি চারদিকে ভাসমান কোনও প্যাচ থাকে তবে আমি এটি প্রয়োগ করতে পারি (সাধারণত সেগুলি ছোট হয় এবং ম্যানুয়ালি পরীক্ষা করা যায়)।
reto

এই থ্রেডটির 12'000 বার দেখা হয়েছে, ধরে নিই যে 5% আপনার সমাধান ব্যবহার করে এবং আপনার রেপো যুক্ত করেছে। আপনি ব্যাকডোর ইন্টিগ্রেটেড সহ সহজেই একটি মূল প্যাকেজের নতুন সংস্করণ যুক্ত করতে পারেন। এক সপ্তাহের মধ্যে আপনার 600০০ সিস্টেমে অ্যাক্সেস থাকতে পারে। আমি মনে করি না যে আপনি এটি করবেন তবে তৃতীয় পক্ষের রেপো যুক্ত করা খুব নিরাপদ নয়।
reto

1
রেপো থেকে আমার আপডেট করার দরকার নেই। আমার জন্য "অনুমতি_writable_chroot = YES" লাইনটি যুক্ত করার পরে বাগটি স্থির হয়েছে
6:51 এ অ্যাবুমালিক ক্লিক করুন

7

পূর্ববর্তী উত্তর অনুযায়ী "এই সমস্যার বাস্তব সমাধান: ব্যবহারকারীর হোম ফোল্ডারটি কেবল পঠনযোগ্য নয় able" সাধারণ চিন্তাভাবনা সঠিক, তবে একটি ভুল উপলব্ধি রয়েছে।

নীচে আমি একটি সাধারণ উদাহরণ দেওয়ার চেষ্টা করব:

শুরু করার জন্য, আমাদের ব্যবহারকারীর ডিরেক্টরিটির একটি টপোলজি তৈরি করতে হবে:

 / হোম (আরও)
   | -সুমুসার (আরডাব্লু, 700)
         | -ফুট_আপলোড (আরও, 555) - ch_rooting এখানে, vsftpd দ্বারা কেবল পঠন করা প্রয়োজন :(
           | -টেম্প (rw, 755)
           | -ইনবক্স (আরডাব্লু, 755)
           | -আউট_বক্স (আরডাব্লু, 755)

vsftpd.conf কাটা:

# ক্রুটিং সক্ষম করুন
chroot_local_user = yes

ক্রুট_লিস্টের মধ্যে শোনানো ব্যতীত সমস্ত ব্যবহারকারীকে ক্রুট করুন
chroot_list_enable = yes

# ব্যতিক্রম তালিকা। আদর্শভাবে, এটি ফাঁকা হওয়া উচিত;)
chroot_list_file = জন্য / etc / vsftpd -র / chroot_list

# নির্দিষ্ট ডিরেক্টরিতে মানচিত্র এফটিপিপি রুট ডিরেক্টরি
local_root = / হোম / someuser / FTP

এই কনফিগারেশনটি একক ব্যবহারকারী কনফিগারেশনের সাথে দুর্দান্ত কাজ করে । একাধিক ব্যবহারকারীর জন্য, "ব্যবহারকারীর_কনফিগ_ডির" নির্দেশটি অতিরিক্তভাবে ব্যবহার করা উচিত।

** আপডেট 20/09

------ **

এখানে কৌতূহলোদ্দীপক, ব্যবহারের জন্য সেরা ধারণা নয়, তবে .... আপনার যদি লিখনযোগ্য এফটিপি রুট ফোল্ডার প্রয়োজন হয় তবে কেবল প্রি-স্টার্ট এবং পরবর্তী-শুরুর কমান্ডগুলিতে অনুমতি পরিবর্তন কমান্ড সন্নিবেশ করুন।

  1. প্রাক-শুরু - কেবল পঠনের জন্য অনুমতিগুলি পরিবর্তন করুন, যা সার্ভারের প্রয়োজন (:

  2. সার্ভার শুরু করুন

  3. পোস্ট-স্টার্ট - পড়ার-লেখার অনুমতি পরিবর্তন করুন বা আপনার প্রয়োজন you


আমি অনেক প্রকারের চেষ্টা করেছি কিন্তু এটি কোনও ডাব্লুপি সার্ভারের জন্য কাজ করতে পারিনি। এটি কি আপনার জন্য ডাব্লুপি কনফিগারেশনে কাজ করছে?
ক্রিস হাফ

বিভাগটি আপডেট করতে দেখুন, এই রূপটি আপনাকে সাহায্য করতে পারে, এটি করা সম্পূর্ণ নিরাপদ নয়, তবে অন্য কোনও সম্ভাবনা না থাকলে ...
রিশিন

1

টোস্টবয় 70 যেটি উল্লেখ করেছে এটি বেশ সুন্দর। এফটিপি-রুট দিরকে cht'd to ftp.ftp এবং অ-লিখনযোগ্য (/etc/vsftpd.conf): আনন_রোট = / এসআরভি / এফটিপি

তারপরে একটি লিখনযোগ্য শিশু দির করুন: / এসআরভি / এফটিপি / আপলোড


0

আমার /etc/vsftpd.conf ফাইলেও নিম্নলিখিতগুলি যুক্ত করা দরকার:

seccomp_sandbox=NO

আর কাস্টম রেপোর দরকার নেই !!

এবং লাইনটি uncomment করুন:

write_enable=YES

0

ত্রুটি বার্তাটির পরামর্শ অনুসারে সহজ সমাধানটি হ'ল: রুটটিকে অ-লিখনযোগ্য করে তুলুন এবং তারপরে আপনার যদি আপলোডগুলি সক্ষম করার প্রয়োজন হয়, তবে একটি সাব-ডাইরেক্টরি তৈরি করুন যাতে লেখার অনুমতি নেই। কোন কনফিগার পরিবর্তন প্রয়োজন।


0

3 ঘন্টা গুগল করার পরে আমি উবুন্টুতে গিয়েছিলাম 14.04.2 এলটিএস ভিএসএফটিপি 3 কাজ করছে। হোম ফোল্ডারটি একবার ক্লায়েন্টের সাথে অ্যাক্সেস করার পরে / হোম / ভিফল দৃশ্যমান হবে। আমি মূল সুবিধার সাথে ভিমাল দিয়ে লগ ইন করেছি। আমি ftpShare ফোল্ডার তৈরি করেছি, তবে এর খুব বেশি অর্থ নেই।

sudo chown vimal:vimal /home/vimal/ftpShare/

কিছু দরকারী আদেশ:

sudo nano /etc/vsftpd.conf
sudo service vsftpd restart
sudo apt-get purge vsftpd
netstat -a | grep ftp
tcp        0        0        *:ftp         *:*        LISTEN
ftp://12.345.23.xxx/  for browser login

উপরের অর্থ এফটিপি ডিমন কাজ করছে

আমার নিম্নলিখিত কনফিগারেশন রয়েছে:

seccomp_sandbox=no
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
chroot_list_enable=NO
secure_chroot_dir=/var/run/vsftpd/empty
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
allow_writeable_chroot=YES

এফটিপি কাজ করার পরে আপনি এটি নির্দিষ্ট প্রয়োজনের সাথে আরও টিউন করতে পারেন, উপরের কয়েকটিটির ডিফল্ট মান রয়েছে তবে আমি ঠিক মনে করি না।

এফটিপি ক্লায়েন্টে ত্রুটিগুলি দেখা গেছে:

1. 500 OOPS: prctl PR_SET_SECCOMP ব্যর্থ হয়েছে

সমাধান।

seccomp_sandbox=no    

[প্রাথমিক মন্তব্য বিভাগ শেষ হওয়ার পরে এটি vsftpd.conf একেবারে প্রথম লাইনে যুক্ত করুন]

2. 500 OOPS: vsftpd: ক্রুট এর ভিতরে লিখনযোগ্য রুট দিয়ে চালাতে অস্বীকার করছে ()

allow_writeable_chroot=YES

আমি এটি শেষ লাইনে যুক্ত করেছি।


0

আমি vsFTPd আমার উবুন্টু সার্ভারে ক্রোট () এর ভিতরে লিখিত রুট দিয়ে চালানো অস্বীকার করার সমস্যার সমাধান করেছি:

আমি কেবল vsftpd.confফাইলটিতে নীচের লাইনটি যুক্ত করেছি :

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