linux - উনল - ডাউলোড




আমি কিভাবে ফোল্ডার এবং তার সমস্ত সাবফোল্ডার এবং ফাইলগুলির জন্য chmod সেট করব? (11)

-আর বিকল্প চেক করুন

chmod -R <permissionsettings> <dirname>

ভবিষ্যতে, আপনি মানুষের পৃষ্ঠাটি প্রথমে পরীক্ষা করে অনেক সময় বাঁচাতে পারেন:

man <command name>

তাই এই ক্ষেত্রে:

man chmod

chmod 755 /opt/lampp/htdocs এবং সাবফোল্ডার এবং ফাইল সহ তার সমস্ত সামগ্রী জন্য একটি উপায় আছে কি?

এছাড়াও, ভবিষ্যতে, যদি আমি একটি নতুন ফোল্ডার বা htdocs ভিতরে ফাইল তৈরি করি, তবে htdocs স্বয়ংক্রিয়ভাবে 755 কীভাবে অনুমতি দেওয়া যেতে পারে?

এই কাজ করে, কিন্তু শুধুমাত্র এই ফোল্ডারের জন্য:

chmod 775 /opt/lampp/htdocs

অন্যান্য উত্তর সঠিক, যে chmod -R 755 গাছ মধ্যে সব ফাইল এবং subfolders এই অনুমতি সেট করা হবে। কিন্তু কেন পৃথিবীতে তুমি চাও ? এটি ডিরেক্টরিগুলির জন্য ইন্দ্রিয় তৈরি করতে পারে, কিন্তু কেন সব ফাইল চালানো বিট সেট করবেন?

আমি আপনাকে সত্যিই কি করতে চাই তা সন্দেহ করে 755 টি ডিরেক্টরি সেট করুন এবং হয় ফাইলগুলি একা ছেড়ে দিন অথবা 644 এ সেট করুন। এটির জন্য, আপনি কমান্ডটি ব্যবহার করতে পারেন। উদাহরণ স্বরূপ:

755 ( drwxr-xr-x ) এ সমস্ত ডিরেক্টরি পরিবর্তন করতে:

find /opt/lampp/htdocs -type d -exec chmod 755 {} \;

সব ফাইল 644 ( -rw-r--r-- ) এ পরিবর্তন করতে:

find /opt/lampp/htdocs -type f -exec chmod 644 {} \;

আপনি সঠিক ফাইল এবং ডিরেক্টরিগুলিকে chmod-ed / অনুমতিগুলির জন্য উপযুক্ত তা নিশ্চিত করতে চান। আপনি চান সব ডিরেক্টরি জন্য

find /opt/lampp/htdocs -type d -exec chmod 711 {} \;

এবং সব ছবি, জাভাস্ক্রিপ্ট, সিএসএস, এইচটিএমএল ... ভাল, আপনি তাদের চালানো উচিত নয়। তাই ব্যবহার করুন

chmod 644 img/* js/* html/*

কিন্তু সমস্ত লজিক কোডের জন্য (উদাহরণস্বরূপ পিএইচপি কোড), আপনাকে অনুমতি দেওয়া উচিত যাতে ব্যবহারকারী সেই কোডটি দেখতে না পারে:

chmod 600 file

আপনি সমস্ত ফাইল এবং সাবফোল্ডারের পুনরাবৃত্তিমূলক ট্রান্সভার্সের জন্য chmod সহ -R ব্যবহার করতে পারেন।

আপনি বর্তমান ব্যবহারকারী বা অন্য একটি দ্বারা LAMP ইনস্টল করা উপর নির্ভর করে এটি sudo প্রয়োজন হতে পারে:

sudo chmod 755 -R /opt/lampp/htdocs

আমি মনে করি আদম জিজ্ঞাসা করছে যে কিভাবে সমস্ত প্রসেসের জন্য /opt/lampp/htdocs ডিরেক্টরিতে কাজ করার জন্য টাইম করা উমাস মানটি পরিবর্তন করবেন।

ব্যবহারকারী ফাইল-নির্মাণ মোড মাস্ক (umask) নতুন তৈরি ফাইলগুলির জন্য ফাইলের অনুমতি নির্ধারণ করতে ব্যবহার করা হয়। এটি নতুন ফাইলের জন্য ডিফল্ট ফাইল অনুমতি নিয়ন্ত্রণ করতে ব্যবহার করা যেতে পারে।

তাই যদি আপনি /opt/lampp/htdocs ফাইলগুলি আপলোড করতে কোনও ধরণের FTP প্রোগ্রাম ব্যবহার করেন তবে আপনার ফাম্প সার্ভারটি আপনার পছন্দসই Uumask ব্যবহার করার জন্য কনফিগার করতে হবে।

ফাইল / ডিরেক্টরি php দ্বারা উদাহরণস্বরূপ তৈরি করা হলে, আপনি পিএইচপি কোড পরিবর্তন করতে হবে

<?php
umask(0022);
// other code
?>

যদি আপনি আপনার বাশ অধিবেশন থেকে নতুন ফাইল / ফোল্ডার তৈরি করেন তবে আপনি আপনার শেল প্রোফাইলে ~ / .bashrc এ /etc/bashrc মান সেট করতে পারেন অথবা আপনি সমস্ত ব্যবহারকারীর জন্য /etc/bashrc বা /etc/profile ফাইলের মধ্যে umask সেট আপ করতে পারেন। ফাইলটিতে নিম্নলিখিত যোগ করুন: umask 022

Sample umask Values and File Creation Permissions
If umask value set to   User permission     Group permission     Others permission
000                         all              all                   all
007                         all              all                   none
027                         all          read / execute            none

এবং ইতিমধ্যে তৈরি ফাইল জন্য অনুমতি পরিবর্তন করতে আপনি ব্যবহার করতে পারেন। আশাকরি এটা সাহায্য করবে.


এখানে 775 টি ডিরেক্টরি এবং 664 এ ফাইল সেট করার অন্য উপায়।

find /opt/lampp/htdocs \
\( -type f -exec chmod ug+rw,o+r {} \; \) , \
\( -type d -exec chmod ug+rwxs,o+rx {} \; \)

এটি দীর্ঘ দেখতে পারে তবে তিনটি কারণে এটি বেশ শান্ত:

  1. ফাইল সিস্টেমের মাধ্যমে শুধুমাত্র একবার পরিবর্তে স্ক্যান করে।
  2. কিভাবে ফাইল পরিচালিত হয় উপর ভাল নিয়ন্ত্রণ প্রদান করে বনাম ডিরেক্টরি কিভাবে পরিচালিত হয়। স্টিকি বিট হিসাবে বিশেষ মোডগুলির সাথে কাজ করার সময় এটি কার্যকর, যা আপনি সম্ভবত ডিরেক্টরিগুলিতে প্রয়োগ করতে চান তবে ফাইল নয়।
  3. man পৃষ্ঠাগুলির সরাসরি একটি কৌশল ব্যবহার করে (নীচে দেখুন)।

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

man find পাতা থেকে উদাহরণ man find পাও:

find / \
\( -perm -4000 -fprintf /root/suid.txt %#m %u %p\n \) , \
\( -size +100M -fprintf /root/big.txt %-10s %p\n \)

Traverse the filesystem just once, listing setuid files and  direc‐
tories into /root/suid.txt and large files into /root/big.txt.

চিয়ার্স


ফাইল খুঁজে বের করার এবং তাদের chmod প্রয়োগ করার দুটি উত্তর আছে। প্রথমটি ফাইলটি খুঁজে বের করে এবং এটি যেমন পাওয়া যায় chmod প্রয়োগ করুন (@WombleGoneBad দ্বারা প্রস্তাবিত)।

find /opt/lampp/htdocs -type d -exec chmod 755 {} \;

দ্বিতীয় সমাধান হল কমান্ডের সাথে সমস্ত ফাইলের তালিকা তৈরি করা এবং chmod কমান্ডে এই তালিকাটি সরবরাহ করা (@ আলমেশের প্রস্তাবিত)।

chmod 755 $(find /path/to/base/dir -type d)

এই কমান্ডগুলির উভয়ই find করে যতক্ষণ না find কমান্ডটি ফেরত পাঠানো ফাইলটি ছোট। দ্বিতীয় সমাধান চোখ থেকে মহান এবং প্রথম এক তুলনায় আরো পঠনযোগ্য দেখায়। যদি বড় সংখ্যক ফাইল থাকে তবে দ্বিতীয় সমাধান ত্রুটি ফেরত দেয়: Argument list too long.

তাই আমার পরামর্শ হয়

  1. আপনি যদি সব ফাইল এবং ডিরেক্টরিগুলির অনুমতি একবারে পরিবর্তন করতে চান তবে chmod -R 755 /opt/lampp/htdocs
  2. find /opt/lampp/htdocs -type d -exec chmod 755 {} \; যদি আপনি ব্যবহার করা ফাইল সংখ্যা খুব বড়। -type x বিকল্প শুধুমাত্র নির্দিষ্ট ধরনের ফাইল অনুসন্ধান করে, যেখানে ড ডিরেক্টরিটি খুঁজে বের করার জন্য, ফাইলের জন্য f এবং লিঙ্কের জন্য l।
  3. chmod 755 $(find /path/to/base/dir -type d) ব্যবহার করুন chmod 755 $(find /path/to/base/dir -type d) অন্যথায়
  4. কোন পরিস্থিতিতে প্রথম এক ব্যবহার ভাল

ব্যবহার করুন:

sudo chmod 755 -R /whatever/your/directory/is

তবে, যে সঙ্গে সতর্কতা অবলম্বন করা। আপনি যদি ভুল ফাইল / ফোল্ডারগুলির অনুমতিগুলি পরিবর্তন করেন তবে এটি আপনাকে সত্যিই আঘাত করতে পারে।


সঠিক recursive কমান্ড হয়:

sudo chmod 755 -R /opt/lampp/htdocs

-R : বর্তমান ফোল্ডার সহ প্রতিটি সাব ফোল্ডার পরিবর্তন


সব সাবফোল্ডারদের (পুনরাবৃত্তি) ব্যবহার করতে -আর

chmod 755 /folder -R

এবং নতুন ফোল্ডার / ফাইল সিডি / ফোল্ডার umask 755 এ ডিফল্ট সেট করার জন্য umask ব্যবহার করুন


chmod 755 -R /opt/lampp/htdocs পুনরাবৃত্তি অনুমতিগুলি সেট করবে। অনুমতিগুলি সেট করার পরে তৈরি করা এই ডিরেক্টরিতে স্বয়ংক্রিয়ভাবে ফাইলগুলির জন্য অনুমতিগুলি সেট করার কোন উপায় নেই, তবে আপনি umask 022 সেট করে আপনার সিস্টেম-ভিত্তিক ডিফল্ট ফাইল অনুমতিগুলি পরিবর্তন করতে পারেন।





chmod