এনগিনেক্স খোলে () "/etc/nginx/conf.d/foo.conf" ব্যর্থ হয়েছে (13: অনুমতি অস্বীকার করেছে)


11

আমার যা আছে তা এখানে ls -al /etc/nginx:

total 52
drwxr-xr-x.  4 root root 4096 Jul 28 04:16 .
drwxr-xr-x. 78 root root 8192 Jul 28 03:37 ..
drwxr-xr-x.  2 root root   26 Jul 28 03:55 conf.d
drwxr-xr-x.  2 root root    6 May 10 09:21 default.d
-rw-r--r--.  1 root root 1034 May 10 09:21 fastcgi.conf
-rw-r--r--.  1 root root  964 May 10 09:21 fastcgi_params
-rw-r--r--.  1 root root 2837 May 10 09:21 koi-utf
-rw-r--r--.  1 root root 2223 May 10 09:21 koi-win
-rw-r--r--.  1 root root 3957 May 10 09:21 mime.types
-rw-r--r--.  1 root root 1033 Jul 28 03:43 nginx.conf
-rw-r--r--.  1 root root  596 May 10 09:21 scgi_params
-rw-r--r--.  1 root root  623 May 10 09:21 uwsgi_params
-rw-r--r--.  1 root root 3610 May 10 09:21 win-utf

এটি আমি /var/log/nginx/error.logপরে যা দেখছি sudo service nginx start:

[emerg] 20360#0: open() "/etc/nginx/conf.d/foo.conf" failed
(13: Permission denied) in /etc/nginx/nginx.conf:33

এটি আমার মধ্যে রয়েছে ls -al /etc/nginx/conf.d/:

$ ls -al /etc/nginx/conf.d/
total 8
drwxr-xr-x. 2 root root   26 Jul 28 03:55 .
drwxr-xr-x. 4 root root 4096 Jul 28 04:16 ..
-rw-r--r--. 1 root root  230 Jul 28 03:50 foo.conf

কোনো সমস্যা?


2
সেলিনাক্স বলবৎ হয়েছে? কি ls -lZদেখায়? চেষ্টা করুন setenforce 0এবং দেখুন এটি কার্যকর হয় কিনা।
ইয়াগশী

প্রকৃতপক্ষে, setenforce 0সাহায্য করেছে। দয়া করে, এটি একটি উত্তর হিসাবে জমা দিন, আমি এটি গ্রহণ করব
yegor256

উত্তর:


19

আপনি যখন permission deniedঅজানা কারণে ফাইল অ্যাক্সেস ইত্যাদিতে ত্রুটি পেয়ে যাচ্ছেন তখন এটি SELinux এর সাথে সম্পর্কিত হতে পারে। বিশেষ করে যখন আপনি একটি নির্দিষ্ট সময়ের নিম্নলিখিত অনুমতি মত দেখতে drwxr-xr-x.দ্বারা প্রদর্শিত ls -lপ্রশ্নে ফাইল / Dir তারা mislabeled যেতে পারে (যদি আপনি এটি দ্বারা দেখতে পারেন ls -Z) এবং সমস্যা হতে পারে।

আপনাকে প্রথমে চালনা করে বর্তমান SELinux মোডটি পরীক্ষা করা উচিত getenforce। যদি এটি বলে Enforcing, তবে অস্থায়ীভাবে Permissiveদৌড়ে মোডটি সেট করুন setenforce 0এবং দেখুন আপনার অ্যাপ্লিকেশন পরে কাজ করে কিনা।

আপনার ডিস্ট্রিবিউশনের এখানে, আরম্ভ মধ্যে SELinux- র মোড সেটিং ফাইল বা ডিরেক্টরি relabeling, নীতি আপডেট, ইত্যাদি সহ স্থায়ী ফিক্স, জন্য SELinux উপর নির্দেশিকা আলোচনা করুন সেন্টওএস জন্য কি ভাবে করব


2

পুরো সেলিনাক্স পরিবর্তন করা সর্বদা সঠিক উত্তর নয়। আমি বিশেষজ্ঞ নই তবে কোনও বন্দর অ্যাক্সেসযোগ্য না হলে আমি ফায়ারওয়াল অক্ষম করার সাথে এটির তুলনা করব।

অন্যান্য দ্রুত সমাধান ফাইলগুলির "এসই প্রসঙ্গ পুনরুদ্ধার" হতে পারে, বিশেষত যদি সেগুলি কোথাও থেকে অনুলিপি করা হয়।

আরও তথ্যের জন্য https://www.thegeekstuff.com/2017/05/restorecon-example/ দেখুন ।

এগুলি সেলিনাক্স অক্ষম করার আগে চেষ্টা করার মতো কমান্ড

sudo restorecon  /etc/nginx/conf.d/
sudo restorecon  /etc/nginx/conf.d/*

এই আদেশটি আমাকে দেয়Full path required for exclude: net:[...].
নাকিলন

0

সেলিনাক্স অক্ষম করার চেয়ে ভাল উপায় হ'ল কমান্ডটি ব্যবহার করা

semanage permissive -a httpd_t

এটি সম্পূর্ণরূপে সেলিনাক্সকে অক্ষম না করেই পায়ের গোড়ালি nginx পরিষেবাটি পাস করার অনুমতি দেবে

Https://www.nginx.com/blog/using-nginx-plus-with-selinux/ এ আরও তথ্য

তবে আমার জন্য command chcon -v --type=httpd_sys_content_t /etc/nginx/*এটি চালানো হয়েছে এবং এটি httpd_t ছাড়ার প্রয়োজন ছাড়াই সঠিকভাবে কাজ করেছে

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