আমি কীভাবে পুনরায় ফাইল এবং ডিরেক্টরিগুলির অনুমতিগুলি পরিবর্তন করতে পারি?


65

আমি আমার স্থানীয় কম্পিউটারে অ্যাপাচি / পিএইচপি / মাইএসকিএল দিয়ে উবুন্টু ইনস্টল করেছি।

আমার এখন / var / www এ একটি ডিরেক্টরি রয়েছে - এর ভিতরে আমার চলমান বেশ কয়েকটি প্রকল্প রয়েছে। আমি ওপেনসোর্স (ড্রুপাল, ম্যাজেন্টো, সুগারক্রিম) এর সাথেও কাজ করি।

আমি যে সমস্যার মুখোমুখি হচ্ছি তা হ'ল টার্মিনালের সাথে ফাইল অনুমতি পরিবর্তন করা। কিছু সময় আমাকে পুরো ফোল্ডার এবং তার পরবর্তী সাব-ফোল্ডার এবং ফাইলগুলির অনুমতি পরিবর্তন করতে হবে। আমাকে স্বতন্ত্রভাবে ব্যবহার করে পরিবর্তন করতে হবে

sudo chmod 777 foldername

আমি কীভাবে এটি পুনরাবৃত্তভাবে করতে পারি।

এছাড়াও কেন আমাকে সর্বদা এটি 777 করতে হবে , আমি ফোল্ডারগুলির জন্য 755 এবং ফাইলগুলির জন্য 644 চেষ্টা করেছি , তবে এটি কার্যকর হবে না।

উত্তর:


90

-Rপুনরাবৃত্তভাবে ফাইলগুলির অনুমতিগুলি পরিবর্তন করতে বিকল্প যুক্ত করুন । একটি উদাহরণ, পুনরাবৃত্তভাবে মালিক এবং গোষ্ঠীর জন্য অনুমতি পড়ার এবং লেখার অনুমতি যুক্ত করুন foldername:

chmod -R ug+rw foldername

অনুমতিগুলি 664 বা 775 এর মতো হবে।

777 এ অনুমতি নির্ধারণ করা অত্যন্ত নিরুৎসাহিত । অনুমতি সম্পর্কে অ্যাপাচি বা আপনার সম্পাদক উভয়ের মধ্যে আপনি ত্রুটি পান কারণ অ্যাপাচি আপনার www-dataচেয়ে পৃথক ব্যবহারকারীর ( ) অধীনে চলে ।

আপনি যদি লিখতে চান /var/wwwতবে নিজেকে www-dataদলে যোগ করুন এবং সেই অনুযায়ী উমাস্ক + অনুমতি সেট করুন।

  • নিজেকে www-dataগ্রুপে যুক্ত করুন:sudo adduser $USER www-data
  • ফাইলগুলির মালিকানা এতে পরিবর্তন করুন /var/www:sudo chown -R www-data:www-data /var/www
  • উমাস্কটি পরিবর্তন করুন, সুতরাং অ্যাপাচি দ্বারা নতুন তৈরি করা ফাইলগুলিও গ্রুপটিতে অনুমতি লেখার অনুমতি দেয়। যোগ umask 007করুন /etc/apache2/envvars
  • নিজেকে Grant (টেকনিক্যালি, গ্রুপ www-data) অনুমতি লিখুন: sudo chmod -R g+w /var/www

হ্যাঁ আমি ভুল জায়গায় আর পতাকা যুক্ত করছিলাম, আমি chmod এর জন্য ও + ডাব্লু পরে এটি যুক্ত করছিলাম।
জনমারলিনো

এছাড়াও, আপনি যদি chmod -r blablabla(আর-এর পরিবর্তে ছোট-আর) ব্যবহার করার চেষ্টা করেন তবে আপনি সবার জন্য পঠনের অনুমতিগুলি সরিয়ে ফেলতে পারেন ...
সিরিল ডুচন-ডরিস

1
এই নির্দেশাবলীর পরে, .htaccessঅ্যাপাচে লেখার অনুমতি নিয়ে কোনও ফাইল নেই তা পরীক্ষা করে নেওয়া ভাল ধারণা । find /var/www/ | grep .htaccess | xargs ls -l
reynoldsnlp

23

পাশবিক বল:

sudo find foldername -exec chmod a+rwx {} ";"

কি কাজ করে না? আরো নির্দিষ্ট করা!

sudo find foldername -type d -exec chmod 755 {} ";"
sudo find foldername -type f -exec chmod 644 {} ";"

আপনি যখন ফোল্ডারের ভিতরে থাকবেন তখন "ফোল্ডারনাম" সরিয়ে ফেলুন
এনরিক

4
... এবং এটি দিয়ে প্রতিস্থাপন করুন।
djjeck

4

আপনার কোনও কিছুর জন্য 777 লাগবে না। সবচেয়ে খারাপ ক্ষেত্রে, আপনাকে নির্দিষ্ট ফাইল এবং ডিরেক্টরিগুলির মালিককে "www-ডেটা" ব্যবহারকারীতে পরিবর্তন করতে হবে।

sudo find /var/www -type d -print0 | xargs -0 chmod 755
sudo find /var/www -type f -print0 | xargs -0 chmod 644
sudo find /var/www/some/subset -print0 | xargs -0 chown www-data:www-data

আপনি যদি লেকেনস্টেইনের গ্রুপ সদস্যতা পদ্ধতি ব্যবহার করছেন তবে উপরের দিকে যথাক্রমে 755 থেকে 775 এবং 644 থেকে 664 পরিবর্তন করুন এবং তারপরে গ্রুপটির স্টিকিনেসকে বাধ্য করুন:

sudo find /var/www/some/subset -type d -print0 | xargs -0 chmod g+s

3

আপনি নটিলাসে সাবফোল্ডার এবং ফাইলগুলি পরিবর্তন করতে পারেন। আপনি নীচের ছবিতে দেখতে পারেন। বোতামগুলিতে অনুমতিগুলি পেতে, আপনি উবুন্টু টুইকের বিকল্পটি সক্ষম করতে পারেন।

এখানে চিত্র বর্ণনা লিখুন


LANG=C [command]ইংরেজি অনুবাদ পেতে ব্যবহার করুন ।
লেকেনস্টেইন

1

আপনি যদি নিজের সমস্ত ফাইল বিশ্বের কাছে পঠনযোগ্য হতে চান (যেমন এটি কেবলমাত্র HTML ফাইল / চিত্রগুলির একটি স্থির সেট), তবে এই আদেশটিটি ব্যবহার করুন:

chmod -R a+r <base directory>

এটি পুনরাবৃত্তভাবে সমস্ত ফাইল এবং উপ-ডিরেক্টরিতে যাবেন এবং সেগুলিতে পড়ার অনুমতি যুক্ত করবেন।

সতর্কতা : কার্যকর করা যায় এমন ফাইলগুলির জন্য এটি করবেন না! কেবলমাত্র এমন ফাইল যা প্রত্যেকের দ্বারা দৃশ্যমান হওয়া উচিত।


আপনি কি " chmod -R a+xকোনও কিছুর উপর কিছু করবেন না ", বা " chmod -R a+rএক্সিকিউটেবলের উপর করবেন না" বলছেন ?
আলেকারসন

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