ডিরেক্টরি অ্যাক্সেস করতে পারি না আমি এর একটি গ্রুপ সদস্য


10

আমার ওয়েব সার্ভারে আমার একটি ডিরেক্টরি 'www' রয়েছে যার অনুমতি drwxrwxr--এবং ব্যবহারকারী রয়েছে: গ্রুপ root:www-dataযাতে অ্যাপাচি এটি অ্যাক্সেস করতে পারে।

এখন আমি গ্রুপটি www-ডেটা দিয়ে আমার অ্যাকাউন্ট যুক্ত করেছি

sudo usermod -g www-data myuser

এবং যদি আমি groupsতখন www-dataতা করি তবে তাদের মধ্যে রয়েছে, তবে যখন আমি কেবল এটিতে সিডি করার চেষ্টা করি তখন আমি 'অনুমতি অস্বীকার' পাই get

আমি যদি ব্যবহারকারীকে 'মাইউজার' এ পরিবর্তন করি বা গোষ্ঠীটিকে অন্য কোনও গ্রুপে সেট করি যা আমি সদস্য, আমি প্রবেশ করতে পারি।

আমি কিছু অনুপস্থিত করছি?

উত্তর:


14

আপনার প্রক্রিয়াটির লগইন করার সময় তার গ্রুপ তালিকা সেট করা আছে, সুতরাং পরিবর্তনটি কার্যকর হওয়ার জন্য আপনাকে আবার লগ ইন করতে হবে।

আমি আরও পরামর্শ দিচ্ছি যে আপনি www-dataপ্রাথমিকের চেয়ে পরিপূরক গোষ্ঠী হিসাবে যুক্ত করুন (যা কেবলমাত্র আপনি সদস্য হিসাবে একটি গ্রুপে সেট করা আছে You আপনার নিম্নলিখিত আদেশগুলি দিয়ে এটি করতে সক্ষম হওয়া উচিত:

# Reset to your original primary group
sudo usermod -g myuser myuser
# Add an extra supplementary group
sudo usermod --append -G www-data group

আপনি যদি তৈরি ফাইলগুলি www-dataগ্রুপের অন্য সদস্যদের দ্বারা পঠনযোগ্য হতে চান তবে সেই অনুযায়ী আপনার উমাস্কটি সামঞ্জস্য করুন:

umask 002

যেহেতু আপনার প্রাথমিক গোষ্ঠী সদস্যপদটি একটি ব্যক্তিগত গোষ্ঠী, এটি আপনার তৈরি ফাইলগুলির সুরক্ষাকে প্রভাবিত করবে না।

setgidআপনি যে ডিরেক্টরিগুলিতে ফাইল তৈরি করবেন তাতে বিট সেট করাও মূল্যবান : এর ফলে ফাইলগুলি পিতামাতার ডিরেক্টরিতে গ্রুপের মালিকানা অর্জন করতে পারে:

chmod g+s www/

1
লগইন ফিরে কৌতুক করেছে, তাই নির্বোধ। এছাড়াও খুব দরকারী serverfault.com/questions/6895/...
dazz

যে Dazz উল্লেখ করার জন্য ধন্যবাদ। আমি কখনই বুঝতে পারি নি যে এটি আমার জন্য এক্সডি কেন কাজ করে না। এখন আমি শান্তিতে বিশ্রাম নিতে পারি।
f4der

0

আমার জন্য এটি একটি পৃথক জিনিস ছিল যার ফলে এই ত্রুটি হয়েছিল

দুটি ভিন্ন ইউআইডি সহ একই ব্যবহারকারীর নাম

আমার কাছে ইউআইডি = 123 এবং এনআইএস ডিরেক্টরিতে একই নামের ("অ্যাপাচি") দিয়ে আলাদাভাবে ইউআইডি = 456 ব্যবহারকারীর "অ্যাপাচি" ব্যবহার রয়েছে। প্রারম্ভকালীন অর্ডার এবং পরিষেবা নির্ভরতার উপর নির্ভর করে, এনআইএস ব্যবহারকারী উপলব্ধিযোগ্য হওয়ার আগে স্থানীয় ব্যবহারকারী ব্যবহার করা যেতে পারে। এর অর্থ হ'ল আপনি যখন ব্যবহারকারীর নাম প্রদর্শন করবেন তখন বিভ্রান্তিকর হবে, উভয়ই "অ্যাপাচি" হিসাবে উপস্থিত হবে। কেবলমাত্র যখন আপনি সংখ্যাসূচক ইউআইডি দেখবেন (উদাহরণস্বরূপ এটি করার মাধ্যমে ls -lnআপনি পার্থক্যটি দেখতে [root@mymachine]# ls -l drwxr-x--- 4 apache ggg1 88 May 31 17:12 file1 drwxr-x--- 4 apache ppp2 88 May 31 17:12 file2 পাবেন Example উদাহরণ: দেখুন ইউআইডি ফাইল 2 এর জন্য আলাদা (123 এর পরিবর্তে 456): [root@mymachine]# ls -ln drwxr-x--- 4 123 48 88 May 31 17:12 file1 drwxr-x--- 4 456 48 88 May 31 17:12 file2

বিভিন্ন গ্রুপ অ্যাপাচি কনফিগারেশনে সংজ্ঞায়িত করা হয়েছে

ব্যবহারকারীর অমিল এবং ফলস্বরূপ অনুমতি ত্রুটির সাথে আমার আরেকটি সমস্যা ছিল, যখন আমি "httpd" গোষ্ঠীটি ব্যবহার করে ফাইলগুলিতে অ্যাক্সেস সীমাবদ্ধ করছিলাম। এটি " অ্যাপাচি " ব্যবহারকারীর প্রাথমিক গোষ্ঠী ছিল (যা ব্যবহার করে প্রদর্শিত হয়েছিল idবা getent) অ্যাপাচি রুট হিসাবে শুরু হয়, তারপরে কনফিগার করা ব্যবহারকারীর কাছে স্যুইচ করে অনুমতি ড্রপ করে। এটিতে যে ব্যবহারকারীটি স্যুইচ করে সেটিকে পরামিতি /etc/httpd/conf/httpd.confদ্বারা সংজ্ঞায়িত করা হয় User। যদিও সমস্যাটি এখানে রয়েছে - যে গোষ্ঠী (জিআইডি) প্রক্রিয়াটি চলছে তা সেই ব্যবহারকারীর প্রাথমিক গোষ্ঠী নয় । গ্রুপটি Groupপ্যারামিটার দ্বারা একই কনফিগার ফাইলে সংজ্ঞায়িত করা হয়েছে ।

সুতরাং আমার ক্ষেত্রে এটি ছিল ( /etc/httpd/conf/httpd.conf ): User apache Group apache

এবং ডিরেক্টরিটিকে এভাবে অ্যাক্সেস দেওয়া হয়েছিল: drwxr-x--- 4 someuser httpd 88 May 31 17:12 mydir

কারণ httpd (GID = 444) হ'ল সেই ব্যবহারকারীর প্রাথমিক গোষ্ঠী: [root@somemachine]# id apache uid=48(apache) gid=444(httpd) groups=444(httpd)

এটি ডিবাগিংয়ের জন্য কিছুটা সময় ব্যয় করেছিল, যতক্ষণ না আমি বুঝতে পারি Groupকনফিগ ফাইলে "অ্যাপাচি" "httpd" নয়।

/ Var / লগ / httpd / ত্রুটি_লগ থেকে ত্রুটি : [Fri May 31 17:13:40.070343 2019] [authz_core:debug] [pid 2527] mod_authz_core.c(809): [client 11.22.32.21:53824] AH01626: authorization result of Require all granted: granted [Fri May 31 17:13:40.070367 2019] [authz_core:debug] [pid 2527] mod_authz_core.c(809): [client 11.22.32.21:53824] AH01626: authorization result of <RequireAny>: granted [Fri May 31 17:13:40.070396 2019] [core:error] [pid 2527] (13)Permission denied: [client 11.22.32.21:53824] AH00132: file permissions deny server access: /var/www/html/somedir/otherdir/css/file1.txt

আশা করি এটা কাজে লাগবে.

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