অ্যাপাচি প্রতিলিপিগুলি অনুসরণ করবে না (403 নিষিদ্ধ)


92

উবুন্টুতে অ্যাপাচি সেট আপ করতে আমার কিছুটা সমস্যা হচ্ছে। আমি এই গাইড অনুসরণ করা হয়েছে ।

# /usr/sbin/apache2 -v
Server version: Apache/2.2.17 (Ubuntu)
Server built:   Feb 22 2011 18:33:02

আমার সার্বজনীন ডিরেক্টরি, / var / www, সফলভাবে পরিবেশন করতে এবং এতে রাখা পিএইচপি পৃষ্ঠাগুলি সম্পাদন করতে পারে। তবে আমি / var / www তে একটি সিমিলিংক তৈরি করতে চাই যা আমার বাড়ির ফোল্ডারে একটি ডিরেক্টরিকে নির্দেশ করে এবং সেখানে পৃষ্ঠাগুলি পরিবেশন করে।

[root /var/www]# ll
total 36
drwxr-xr-x  3 root root 4096 2011-09-11 14:22 .
drwxr-xr-x 14 root root 4096 2011-06-04 22:49 ..
lrwxrwxrwx  1 root root   16 2011-09-11 13:21 about -> /root/site/about

আমি যখন ব্রাউজারে / সম্পর্কে অ্যাক্সেস করার চেষ্টা করি তখন আমি পাই

Forbidden

You don't have permission to access /about on this server.

আমি যতদূর জানি, আমি যে ফাইলগুলি পরিবেশন করতে চাই তাতে যথেষ্ট সুযোগ-সুবিধাগুলি দিয়েছি:

[root ~/site/about]# ll
total 24
drwxr-xr-x 5 root root 4096 2011-09-11 13:20 .
drwxr--r-- 3 root root 4096 2011-09-11 13:19 ..
drwxr-xr-x 2 root root 4096 2011-09-11 13:21 contact
-rwxr-xr-x 1 root root 1090 2011-09-11 13:19 index.php
drwxr-xr-x 2 root root 4096 2011-09-11 13:20 me
drwxr-xr-x 2 root root 4096 2011-09-11 13:21 resume

আমি ফলোসিমলিংক্স বিকল্পটি সম্পর্কে সচেতন এবং আমার বিশ্বাস এটি আমার / ইত্যাদি / অ্যাপাচি 2 / সাইটগুলি সক্ষম / 000-ডিফল্ট ফাইলে সেট করা আছে:

DocumentRoot /var/www
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
<Directory /var/www/>
    Options FollowSymLinks Indexes MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
</Directory>

আমি কি অনুপস্থিত হতে পারে কোন ধারণা?

উত্তর:


129

পরীক্ষা করে দেখুন এ্যাপাচি অধিকার চালানো আছে /root, /root/siteএবং /root/site/about

চালান:

chmod o+x /root /root/site /root/site/about

8
অনেক অনেক ধন্যবাদ ... আমি বুঝতে পারি নি যে পিতামহিত ডিরেক্টরিগুলিও কার্যকর করতে হবে।
টিম

39
ঠিক আছে, আমি বলছি না এটি কার্যকর হবে না তবে সাধারণভাবে / মূলের উপর + x প্রদান করা ভাল ধারণা নয়;)
মিশাল রাজেমিনিয়িকি

11
মিশাল ঠিক বলেছেন। আমি পেয়েছি আমি এসিএলগুলি ব্যবহার করতে পারি (ম্যাকের ক্ষেত্রে, কমপক্ষে): chmod -R +a "_www allow list,search,readattr" /root /root/site /root/site/aboutযা কেবলমাত্র অ্যাপাচি অ্যাপ্লিকেশনটিকে (_www) অনুমতি দেয় যা "অন্যান্য" এর চেয়ে কিছুটা নিরাপদ।
জেমস এস

4
ম্যাক ওএসে (১০.৯.৪) আমার Doc / ডকুমেন্টগুলির কোনও মৃত্যুদন্ডের অধিকার ছিল না এবং আমার কাছে একটি গিট রেপো ছিল যেখানে এটি আমার সাইটের ফাইল হোস্ট করবে। Chmod o + x on ~ / দস্তাবেজগুলি কৌশলটি করেছে! ধন্যবাদ!
এর্নানী জোপার্প্ট

4
শেষ পর্যন্ত উত্তর পেয়ে গেল! ধন্যবাদ
হুয়ান

22

403 ত্রুটিটি কোনও এনক্রিপ্ট হওয়া ফাইল সিস্টেমের কারণেও হতে পারে, যেমন একটি এনক্রিপ্ট করা হোম ফোল্ডারে একটি সিমিলিংক ।

যদি আপনার সিমলিংকটি এনক্রিপ্ট করা ফোল্ডারে নির্দেশ করে তবে অ্যাপাচি ব্যবহারকারী (যেমন www-ডেটা) সামগ্রীগুলি অ্যাক্সেস করতে পারে না, এমনকি যদি অ্যাপাচি এবং ফাইল / ফোল্ডার অনুমতিগুলি সঠিকভাবে সেট করা থাকে। Www- ডেটা ব্যবহারকারীর অ্যাক্সেস যেমন একটি কল দিয়ে পরীক্ষা করা যেতে পারে:

sudo -u www-data ls -l /var/www/html/<your symlink>/

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

/ubuntu/633625/public-folder-in-an-encrypted-home-directory

আমার উদ্দেশ্যে একটি সুবিধাজনক টুল lsyncd । এটি আমাকে আমার এনক্রিপ্ট করা হোম ফোল্ডারে সরাসরি কাজ করতে এবং অ্যাপাচি ওয়েব পৃষ্ঠায় প্রায় তাত্ক্ষণিকভাবে পরিবর্তনগুলি দেখতে সক্ষম হতে দেয়। সিএসক্রোনাইজেশন ফাইল সিস্টেমে পরিবর্তিত হয়ে আরএসসিএনকে কল করে। যেহেতু আমি কেবল ছোট ওয়েব পৃষ্ঠাগুলি এবং স্ক্রিপ্টগুলিতে কাজ করছি তাই সিঙ্কিংটি খুব দ্রুত। 0 সেকেন্ডের বিলম্ব সেট করা সম্ভব হলেও, আরএসসিএনসি শুরু হওয়ার আগে আমি 1 সেকেন্ডের একটি সংক্ষিপ্ত বিলম্ব ব্যবহার করার সিদ্ধান্ত নিয়েছি ।

Lsyncd ইনস্টল করা হচ্ছে (উবুন্টুতে):

sudo apt-get install lsyncd

পটভূমি পরিষেবা শুরু:

lsyncd -delay 1 -rsync /home/<me>/<work folder>/ /var/www/html/<web folder>/

4
sudo -u www-data ...যদি একটি অনুমতি জনিত সমস্যার কিনা চেক করতে একটি দুর্দান্ত উপায়! নোট করুন যে ব্যবহারকারীটি আপনার ডেস্ট্রোর উপর নির্ভর করে www-ডেটা, অ্যাপাচি বা অন্য কিছু হতে পারে।
mkasberg

আরঘহ, অবশেষে! আমি ইতিমধ্যে আমার সবচেয়ে প্রাথমিক ক্ষমতা নিয়ে সন্দেহ করছিলাম!
কলবলিক

এটিতে ঘন্টা হারিয়েছিল এবং এটি শেষ পর্যন্ত এনক্রিপশন ছিল!
myol

15

আমার একই রকম সমস্যা ছিল যা আমি আমার নতুন সার্ভারে দীর্ঘ সময়ের জন্য সমাধান করতে পারিনি। প্যালাসিন্টের উত্তর ছাড়াও, একটি ভাল প্রশ্ন জিজ্ঞাসা করা উচিত: আপনি অ্যাপাচি ২.৪ ব্যবহার করছেন? অ্যাপাচি ২.৪-তে উপরের কনফিগারেশনটি ব্যবহার করার পরে কাজ না করে এমন অনুমতিগুলি নির্ধারণের জন্য আলাদা পদ্ধতি রয়েছে, সুতরাং আমি এই ব্লগ পোস্টে বর্ণিত সমাধানটি ব্যবহার করেছি ।

মূলত, আমার যা করা দরকার তা হ'ল আমার কনফিগারেশন ফাইলটি রূপান্তর করা:

Alias /demo /usr/demo/html

<Directory "/usr/demo/html">
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    allow from all

</Directory>

প্রতি:

Alias /demo /usr/demo/html

<Directory "/usr/demo/html">
    Options FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

অর্ডার এবং অনুমতি লাইনগুলি কীভাবে সমস্ত মঞ্জুর করা হয়েছে তা প্রতিস্থাপন করে তা নোট করুন


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

কোন কনফিগারেশন? /etc/httpd/conf/httpd.confআমার সিস্টেম উপস্থিত না, এবং এছাড়াও ডিরেক্টরির /etc/httpd/অস্তিত্ব নেই।
অ্যারন ফ্রাঙ্ক

@ অ্যারোনফ্র্যাঙ্ক আপনার কি অ্যাপাচি ইনস্টল করা আছে? এখানে হতে পারে: /etc/apache2/httpd.conf /etc/apache2/apache2.conf /etc/httpd/httpd.conf /etc/httpd/conf/httpd.conf
RightHandedMonkey

হ্যাঁ আমি অ্যাপাচি ইনস্টল করেছি এবং আমি উবুন্টুতে আছি। /etc/apache2/apache2.confআমার জন্য বিদ্যমান।
অ্যারোন ফ্রাঙ্ক

7

এই প্রশ্নের সাথে সম্পর্কিত, আমি কেবল বুঝতে পেরেছিলাম কেন আমার ভোস্ট আমাকে 403 টি দিচ্ছে।

আমি ভাগ্য ছাড়া এই প্রশ্ন এবং অন্যদের সমস্ত সম্ভাবনা পরীক্ষা করেছিলাম tested এটি প্রায় আমাকে পাগল করে তোলে।

আমি সিমলিংকের মাধ্যমে ক্যাপিস্ট্রানো উপকরণের অনুরূপ প্রকাশের ডিপ্লোয়মেন্ট সহ একটি সার্ভার সেট আপ করছি এবং যখন আমি ডকরুট ফোল্ডারটি (যা এখন বর্তমান রিলিজ ফোল্ডারের একটি সিমলিংক) অ্যাক্সেস করার চেষ্টা করেছি তখন এটি আমাকে 403 দিয়েছে।

আমার ভোস্টটি হ'ল:

DocumentRoot /var/www/site.com/html
<Directory /var/www/site.com/html>
        AllowOverride All
        Options +FollowSymLinks
        Require all granted
</Directory>

এবং আমার মূল httpd.conf ফাইলটি ছিল (ডিফল্ট অ্যাপাচি ২.৪ ইনস্টল):

DocumentRoot "/var/www"
<Directory "/var/www">
    Options -Indexes -FollowSymLinks -Includes
(...)

দেখা যাচ্ছে যে প্রধান বিকল্প সংজ্ঞাটি আমার vhosts ফিলের উপর প্রাধান্য নিয়েছিল (আমার কাছে এটি স্বজ্ঞাত যে কাউন্টারটি অন্তর্নিহিত)। সুতরাং আমি এটিকে পরিবর্তন করেছি:

DocumentRoot "/var/www"
<Directory "/var/www">
    Options -Indexes +FollowSymLinks -Includes
(...)

এবং ইউরেকা! (MAIN httpd.conf ফাইলে ফলোসিমলিংকের আগে প্লাস সাইনটি নোট করুন Hope আশা করি এটি আরও কিছু হারানো আত্মাকে সহায়তা করবে।


অ্যাপাচি ২.৪-এ, আপনার সমাধানটি কনফিগারটিকে অকার্যকর করবে এবং httpd শুরু করতে ব্যর্থ হবে, কারণ আপনি একক বিকল্প লাইনে '+' এবং '-' একত্রিত করতে পারবেন না।
ডিস্টো

হ্যাঁ এটি ছিল, যদিও আমি ফাইলের মধ্যে একটি ডকুমেন্টরুট "এর আগে" ঘোষণা করেছিলাম এটি শিশু ডিরেক্টরি বিভাগ (কী?)
রজারডপ্যাক

2

আর একটি উপায় আছে যে প্রতীকী লিঙ্কগুলি আপনাকে ব্যর্থ করতে পারে, যেমন আমি আমার পরিস্থিতিতে আবিষ্কার করেছি। আপনার যদি সার্ভার হিসাবে একটি সেলইনক্স সিস্টেম থাকে এবং প্রতীকী লিঙ্কগুলি একটি এনএফএস-মাউন্ট ফোল্ডারে নির্দেশ করে (অন্যান্য ফাইল সিস্টেমগুলি একই রকম লক্ষণ httpdদেখা দিতে পারে ), ভুল প্রসঙ্গটি দেখতে পারে এবং লক্ষ্য ফোল্ডারগুলির বিষয়বস্তু পরিবেশন করতে অস্বীকার করতে পারে।

আমার ক্ষেত্রে সেলইনাক্স প্রসঙ্গটি /var/www/html(যা দিয়ে আপনি পেতে পারেন ls -Z) তা unconfined_u:object_r:httpd_sys_content_t:s0। প্রতীকী লিঙ্কগুলিতে /var/www/htmlএকই প্রসঙ্গ থাকবে তবে তাদের লক্ষ্য প্রসঙ্গে এনএফএস-মাউন্ট করা ফোল্ডার হ'ল system_u:object_r:nfs_t:s0

সমাধান যোগ হয় fscontext=unconfined_u:object_r:httpd_sys_content_t:s0করার mountঅপশন (যেমন # mount -t nfs -o v3,fscontext=unconfined_u:object_r:httpd_sys_content_t:s0 <IP address>:/<server path> /<mount point>)। rootcontextঅপ্রাসঙ্গিক এবং defcontextএনএফএস দ্বারা প্রত্যাখ্যান করা হয়। আমি contextনিজে চেষ্টা করে দেখিনি ।


2

প্রথমে সেলিনাক্স অক্ষম করুন (vim / ইত্যাদি / সেলিনাক্স / কনফিগারেশন)

সিমলিংক এবং ডিরেক্টরি সূচীকরণের জন্য vim /etc/httpd/conf/httpd.conf নিম্নলিখিত লাইনগুলি সম্পাদনা করুন:

documentroot /var/www/html
<directory /var/www/html>
    Options Indexes FollowSymLinks
    AllowOverride None
</directory>

.Htaccess ফাইল হলে সমস্তকে ওভাররাইড করুন


/etc/httpd/আমার সিস্টেমে যদি ফোল্ডার না থাকে তবে কী হবে ?
অ্যারন ফ্রাঙ্ক


1

অন্যান্য উত্তরগুলি সূচিত হিসাবে অনুমতিগুলি পরিবর্তন করার পাশাপাশি, এটি কার্যকর হওয়ার জন্য আমাকে অ্যাপাচি পুনরায় চালু করতে হয়েছিল:

sudo service apache2 restart

0

তবুও আরেকটি সূক্ষ্ম সমস্যা, আপনার প্রয়োজনের ক্ষেত্রে AllowOverride All:

কোথাও FS গাছে গভীর, একটি পুরানো .htaccessজমিদারি

    Options Indexes

পরিবর্তে

    Options +Indexes

FollowSymLinksসার্ভার কনফিগারেশনে সেটটি অযৌক্তিকরূপে অক্ষম করতে এবং এখানে একটি রহস্যময় 403 সৃষ্টি করার জন্য কি এগুলি নেওয়া হয়েছিল?


0

ফলোসিমলিংকস সক্ষম করার বিকল্পটির সাহায্যে:

$ rg "FollowSymLinks" /etc/httpd/
/etc/httpd/conf/httpd.conf
269:    Options Indexes FollowSymLinks

আপনার ব্যবহারকারীর দ্বারা ডায়ালডিডি পিডিএইচডিডি ব্যবহার করার জন্য সিমলিংকের সমস্ত ডিরেক্টরি প্রয়োজন।

সুতরাং এই সাধারণ ব্যবহারের ক্ষেত্রে:

cd /path/to/your/web
sudo ln -s $PWD /srv/http/

আপনি মালিকের সাথে নামীর সাথে একটি অনুমতি চেক করতে পারেন :

$ namei -m /srv/http/web
f: /srv/http/web
 drwxr-xr-x /
 drwxr-xr-x srv
 drwxr-xr-x http
 lrwxrwxrwx web -> /path/to/your/web
   drwxr-xr-x /
   drwxr-xr-x path
   drwx------ to
   drwxr-xr-x your
   drwxr-xr-x web

আমার ক্ষেত্রে toডিরেক্টরিটি কেবলমাত্র আমার ব্যবহারকারীর জন্য কার্যকর ছিল:

এটি সমাধান করে অন্যদের দ্বারা কার্যকর করা সক্ষম করুন:

chmod o+x /path/to

এক্সিকিউটেবল ডিরেক্টরিটি ভিন্ন হতে পারে দেখুন বা আপনাকে অন্যদের পরিবর্তে গোষ্ঠীগুলিকে প্রভাবিত করতে হবে, এটি আপনার ক্ষেত্রে নির্ভর করে।

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