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


11

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


আপনি কি বলতে চান যে আপনি ডিরেক্টরিতে সমস্ত ফাইলের অনুমতি পরিবর্তন করতে চান? আপনি কি এটিকেও নেস্টেড ডিরেক্টরিতে যেতে চান? আপনি নিজেই ডিরেক্টরি (আইস) এর অনুমতিগুলি বা কেবল ফাইলগুলির মধ্যে পরিবর্তন করতে চান? শেষ অবধি, আপনি কি আপনার প্রশ্ন পোস্ট করার আগে এই সাইটটি অনুসন্ধান করার চেষ্টা করেছিলেন?
ইথার

উত্তর:


21

পুনরাবৃত্তির সাথে ফাইল বা ডিরেক্টরিতে প্রবেশের অনুমতি পরিবর্তন করতে chmodকমান্ডটি ব্যবহার করুন ( এর নির্দিষ্ট বিকল্পগুলি সম্পর্কে আরও পড়তে ম্যান chmod দেখুন):

chmod +x dir  # Set a directory to be listable
chmod +x file # Set a file to be executable

একটি ফাইল / ডিরেক্টরিটির মালিককে পুনরাবৃত্তভাবে পরিবর্তন করতে (সমস্ত বংশধরকে প্রভাবিত করে):

chown -R username           dir # Recursively set user
chown -R username:groupname dir # Recursively set user and group

ডিরেক্টরিতে সমস্ত ফাইলের অনুমতি বিট পরিবর্তন করতে, পুনরাবৃত্তি:

find dir -type f -exec chmod 644 {} ';' # make all files       rw-r-r-

সমস্ত ডিরেক্টরিতে অনুমতি বিট পরিবর্তন করতে:

find dir -type d -exec chmod 755 {} ';' # make all directories rwxr-xr-x

আপনি ঠিক এটি করতে পারলে ভাল লাগবে:

chmod -R 755 dir

তবে এতে সমস্যা আছে। এটি ফাইল এবং ডিরেক্টরি একই আচরণ করে। উপরের কমান্ডটি ডিরেক্টরিগুলি সমস্ত ব্যবহারকারীর দ্বারা তালিকাভুক্ত ও পাঠযোগ্য করে তোলে তবে এটি সমস্ত ফাইলকে সম্পাদনযোগ্য করে তোলে যা সাধারণত আপনি করতে চান না।

যদি আমরা এটিকে পরিবর্তন করি তবে আমরা 644আরও একটি সমস্যা পাই:

$ chmod -R 644 x2
chmod: cannot access `x2/authors.html': Permission denied
chmod: cannot access `x2/day_of_week.plot': Permission denied
chmod: cannot access `x2/day_of_week.dat': Permission denied
chmod: cannot access `x2/commits_by_year.png': Permission denied
chmod: cannot access `x2/index.html': Permission denied
chmod: cannot access `x2/commits_by_year.plot': Permission denied
chmod: cannot access `x2/commits_by_year_month.plot': Permission denied
chmod: cannot access `x2/files_by_date.png': Permission denied
chmod: cannot access `x2/files.html': Permission denied
...

সমস্যাটি হ'ল 644ডিরেক্টরি তালিকার বিটটি বের করে, এবং এই পার্শ্ব প্রতিক্রিয়াটি ফাইল ট্রিটিকে আরও অনুসরণ করতে বাধা দেয়। আপনি ব্যবহার করে এই সমস্যাটি নিয়ে কাজ করতে পারেন sudo, তবে আপনি এখনও এমন ডিরেক্টরিগুলি সমাপ্ত করেছেন যা সম্পূর্ণরূপে অ-রুট ব্যবহারকারীদের পক্ষে অকেজো।

মুল বক্তব্যটি হ'ল chmod -Rকিছু ক্ষেত্রে (যেমন chmod -R g-r) ঠিক ঠিক কাজ করে তবে আপনি -xবিটটি নিয়ে ঝামেলা করতে চান এমন ক্ষেত্রে নয় , কারণ এটি ফাইল ও ডিরেক্টরিতে নির্বিচারে কাজ করে ope


আপনি কেন ধরে নিচ্ছেন যে তিনি সেট করতে চান 644বা তিনি মোটেও -xডিরেক্টরিতে সেট করছেন? প্রশ্নটি কেবল এই শর্ত দেয় যে তিনি অনুমতিগুলি পরিবর্তন করতে চান, বিশেষত কোনওটি নয়।
রিজ মুর

@ রিজ মুর: আপনি ঠিক বলেছেন। প্রশ্নকর্তা অনুমতিগুলি পুনরাবৃত্তভাবে পরিবর্তন করার বিষয়ে কিছু বলেননি।
জোয়ে অ্যাডামস

1
আপনি সাধারণত এটির জন্য + এবং - প্রতীকী মোড স্টাফ ব্যবহার করতে চান; যেমন,chmod -R go=u,go-w /dir
ড্যানিসাউয়ার

6

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

ফোল্ডারগুলির জন্য সঠিক জিনিসটি করতে আপনি মূলধন 'এক্স' ব্যবহার করতে পারেন: 'এক্স' = "কেবলমাত্র ফাইলটি ডিরেক্টরি হয় বা ইতিমধ্যে কিছু ব্যবহারকারীর জন্য অনুমতি কার্যকর থাকলেই কেবল এক্সিকিউট / অনুসন্ধান করুন"

সুতরাং, যেমন: chmod -R ug = rwX, o-rwx।

পুরো গাছটিকে মালিক এবং প্রতিটি ফাইলের গোষ্ঠীতে অ্যাক্সেসযোগ্য এবং অন্য কারও কাছে অ্যাক্সেসযোগ্য করে তুলবে। ইতিমধ্যে কার্যকর হওয়া ফাইলগুলির পরেও কার্যকর হবে এবং সমস্ত ডিরেক্টরিতে ব্যবহারকারীর এবং গোষ্ঠীর জন্য 'এক্স' থাকবে অন্যদের জন্য নয়।


chmod -R 444 somedirএটিতে ফাইল সহ ডিরেক্টরিতে চেষ্টা করুন। আপনি পাবেন Permission deniedকারণ -x পতাকাটি ডিরেক্টরিগুলি বন্ধ করে দিচ্ছে এবং ডিরেক্টরিটি পড়া চালিয়ে যাওয়া দরকার।
জোয়ে অ্যাডামস

1
এর একটি দরকারী সংযোজন হ'ল এক্স = ওয়াই সিনট্যাক্স। আপনি উদাহরণস্বরূপ গ্রুপ এবং ব্যবহারকারীর সমতুল্য সেট করতে chmod -R g = u dir ব্যবহার করে ব্যবহারকারীর অনুমতিতে গ্রুপ অনুমতি নির্ধারণ করতে পারেন। এটি ডায়ারের মতো জিনিসগুলির চারপাশে কাজ করে যা "প্লেইন" ফাইলগুলি না করে যখন সম্পাদনযোগ্য প্রয়োজন।
পল রুবেল

3
chmod -R <file permission> *

ম্যান পৃষ্ঠা থেকে chmod:

-R, --recursive
              change files and directories recursively

একাধিক দিকের জন্য স্যুইচ chmodসহ ব্যবহার করুন -Rযা উপ ডিরেক্টরি গাছের ভিতরে কয়েক মিলিয়ন ফাইল রয়েছে এবং আপনি একসাথে এই ফাইলগুলির ফাইলের অনুমতিগুলি পরিবর্তন করতে চান।

ফাইল অনুমতি যেমন হতে পারে। 777, 755, 644 ইত্যাদি

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