অ্যান্ড্রয়েড

লিনাক্সে Chmod কমান্ড (ফাইল অনুমতি)

Week 7, continued

Week 7, continued

সুচিপত্র:

Anonim

লিনাক্সে, ফাইলের অ্যাক্সেস ফাইল অনুমতি, বৈশিষ্ট্য এবং মালিকানার মাধ্যমে পরিচালিত হয়। এটি নিশ্চিত করে যে কেবল অনুমোদিত ব্যবহারকারী এবং প্রক্রিয়াগুলি ফাইল এবং ডিরেক্টরিগুলি অ্যাক্সেস করতে পারে।

এই টিউটোরিয়ালটিতে ফাইল এবং ডিরেক্টরিগুলির অ্যাক্সেস অনুমতি পরিবর্তন করতে chmod কমান্ডটি কীভাবে ব্যবহার করা যায় তা অন্তর্ভুক্ত করা হয়েছে।

লিনাক্স ফাইল অনুমতি

আরও যাওয়ার আগে, আসুন লিনাক্সের অনুমতিগুলির মডেলটি ব্যাখ্যা করি।

লিনাক্সে, প্রতিটি ফাইল একটি মালিক এবং একটি গোষ্ঠীর সাথে সম্পর্কিত এবং তিনটি পৃথক শ্রেণীর ব্যবহারকারীর জন্য অনুমতি অ্যাক্সেসের অধিকার সহ নির্ধারিত হয়:

  • ফাইলের মালিক group গ্রুপের সদস্যরা tএথার্স (অন্য সবাই)।

chgrp এবং chgrp কমান্ড ব্যবহার করে ফাইলের মালিকানা পরিবর্তন করা যেতে পারে।

প্রতিটি শ্রেণিতে প্রযোজ্য এমন তিনটি ফাইল অনুমতি ধরণের রয়েছে:

  • পড়ার অনুমতি। লেখার অনুমতি। অনুমতি কার্যকর করুন।

এই ধারণাটি আপনাকে কোন ব্যবহারকারীদের ফাইলটি পড়তে, ফাইলটিতে লেখার জন্য বা ফাইলটি কার্যকর করার অনুমতি দেয় তা নির্দিষ্ট করতে দেয়।

ফাইল অনুমতিগুলি ls কমান্ড ব্যবহার করে দেখা যায়:

ls -l filename.txt

-rw-r--r-- 12 linuxize users 12.0K Apr 8 20:51 filename.txt |- | | | | | | | | | | | | | +-----------> 7. Group | | | | | +-------------------> 6. Owner | | | | +--------------------------> 5. Alternate Access Method | | | +----------------------------> 4. Others Permissions | | +-------------------------------> 3. Group Permissions | +----------------------------------> 2. Owner Permissions +------------------------------------> 1. File Type

প্রথম অক্ষরটি ফাইলের প্রকারটি দেখায়। এটি একটি নিয়মিত ফাইল ( - ), ডিরেক্টরি ( d ), একটি প্রতীকী লিঙ্ক ( l ), বা অন্য কোনও বিশেষ ধরণের ফাইল হতে পারে।

পরবর্তী নয়টি অক্ষর ফাইলের অনুমতিগুলি, প্রতিটি তিনটি অক্ষরের তিনটি ট্রিপল প্রতিনিধিত্ব করে। প্রথম ট্রিপলেটে মালিকের অনুমতি, দ্বিতীয় এক গোষ্ঠীর অনুমতি এবং শেষ ট্রিপলেটটি অন্য সকলের অনুমতি দেখায়। ফাইলের ধরণের উপর নির্ভর করে অনুমতিগুলির আলাদা অর্থ হতে পারে।

উপরের উদাহরণে ( rw-r--r-- ) এর অর্থ ফাইলের মালিক অনুমতি ( rw- ) পড়েন এবং লেখেন, গোষ্ঠী এবং অন্যরা কেবল অনুমতিগুলি পড়েন ( r-- )।

তিনটি অনুমতি ত্রিপলগুলির প্রত্যেকেরই নিম্নলিখিত অক্ষরগুলি থেকে তৈরি করা যেতে পারে এবং সেগুলি ফাইল বা ডিরেক্টরিতে সেট করা আছে তার উপর নির্ভর করে তার আলাদা প্রভাব থাকতে পারে:

ফাইলগুলিতে অনুমতিগুলির প্রভাব

অনুমতি চরিত্র ফাইলের অর্থ
পড়ুন - ফাইলটি পঠনযোগ্য নয়। আপনি ফাইলের সামগ্রী দেখতে পারবেন না cannot
r ফাইলটি পঠনযোগ্য।
লিখন - ফাইলটি পরিবর্তন বা পরিবর্তন করা যায় না।
w ফাইলটি পরিবর্তন বা পরিবর্তন করা যেতে পারে।
এক্সিকিউট - ফাইলটি কার্যকর করা যায় না।
x ফাইলটি কার্যকর করা যেতে পারে।
s user ট্রিপলেটে পাওয়া গেলে এটি setuid বিট সেট করে। group ট্রিপলেটে পাওয়া গেলে এটি setgid বিট সেট করে। এর অর্থ এটিও যে x পতাকা সেট করা আছে।

যখন এক্সিকিউটেবল ফাইলে setgid বা setgid পতাকাগুলি সেট করা হয় তখন ফাইলটির মালিক এবং / অথবা গ্রুপ সুবিধার সাথে ফাইলটি কার্যকর করা হয়।

S একই হিসাবে তবে x পতাকা সেট করা নেই। এই পতাকাটি ফাইলগুলিতে খুব কমই ব্যবহৃত হয়।
t others ট্রিপলেটে পাওয়া গেলে এটি sticky বিট সেট করে।

এর অর্থ এটিও যে x পতাকা সেট করা আছে। এই পতাকাটি ফাইলগুলিতে অকেজো।

T t হিসাবে একই তবে x পতাকা সেট করা নেই। এই পতাকাটি ফাইলগুলিতে অকেজো।

ডিরেক্টরিগুলিতে অনুমতিগুলির প্রভাব (ফোল্ডার)

লিনাক্সে ডিরেক্টরিগুলি হ'ল বিশেষ ধরণের ফাইল যা অন্যান্য ফাইল এবং ডিরেক্টরি থাকে।

অনুমতি চরিত্র ডিরেক্টরিতে অর্থ
পড়ুন - ডিরেক্টরি বিষয়বস্তু প্রদর্শন করা যাবে না।
r ডিরেক্টরি বিষয়বস্তু প্রদর্শিত হতে পারে।

(যেমন আপনি ডিরেক্টরিতে ফাইলের তালিকাটি ls দিয়ে তালিকাভুক্ত করতে পারেন))

লিখন - ডিরেক্টরি বিষয়বস্তু পরিবর্তন করা যাবে না।
w ডিরেক্টরি বিষয়বস্তু পরিবর্তন করা যেতে পারে।

(যেমন আপনি নতুন ফাইল তৈরি করতে পারবেন না, ফাইলগুলি মুছে ফেলতে পারবেন না.. ইত্যাদি)

এক্সিকিউট - ডিরেক্টরিতে পরিবর্তন করা যায় না।
x ডিরেক্টরিটি cd ব্যবহার করে নেভিগেট করা যায়।
s যদি user ট্রিপলেটে পাওয়া যায় তবে এটি setuid বিট সেট করে। group ট্রিপলেটে পাওয়া গেলে এটি setgid বিট সেট করে। এর অর্থ এটিও যে x পতাকা সেট করা আছে। যখন setgid পতাকাটি কোনও ডিরেক্টরিতে সেট করা থাকে তখন এর মধ্যে নির্মিত নতুন ফাইলগুলি ফাইলটি তৈরি করা ব্যবহারকারীর প্রাথমিক গ্রুপ আইডির পরিবর্তে ডিরেক্টরি গ্রুপ আইডি (জিআইডি) উত্তরাধিকার সূত্রে প্রাপ্ত হয়।

setuid এর কোনও প্রভাব নেই।

S একই হিসাবে তবে x পতাকা সেট করা নেই। এই পতাকা ডিরেক্টরিতে অকেজো।
t others ট্রিপলেটে পাওয়া গেলে এটি sticky বিট সেট করে।

এর অর্থ এটিও যে x পতাকা সেট করা আছে। স্টিকি বিটটি কোনও ডিরেক্টরিতে সেট করা থাকলে কেবল ফাইলের মালিক, ডিরেক্টরিটির মালিক বা প্রশাসনিক ব্যবহারকারীরাই ডিরেক্টরিতে থাকা ফাইলগুলি মুছতে বা নাম পরিবর্তন করতে পারেন।

T t হিসাবে একই তবে x পতাকা সেট করা নেই। এই পতাকা ডিরেক্টরিতে অকেজো।

chmod ব্যবহার করা

chmod কমান্ড নিম্নলিখিত সাধারণ ফর্মটি গ্রহণ করে:

chmod MODE FILE…

chmod কমান্ড আপনাকে প্রতীকী বা সংখ্যাসূচক মোড বা একটি রেফারেন্স ফাইল ব্যবহার করে কোনও ফাইলের অনুমতি পরিবর্তন করতে দেয়। আমরা পরে আরও বিস্তারিতভাবে মোডগুলি ব্যাখ্যা করব। কমান্ডটি আর্গুমেন্ট হিসাবে স্থান দ্বারা পৃথক করা এক বা একাধিক ফাইল এবং / অথবা ডিরেক্টরি গ্রহণ করতে পারে।

কেবল রুট, ফাইল মালিক বা sudo সুবিধাগুলি সহ ব্যবহারকারী কোনও ফাইলের অনুমতি পরিবর্তন করতে পারেন। chmod ব্যবহার করার সময় অতিরিক্ত সতর্কতা অবলম্বন করুন, বিশেষত যখন পুনরাবৃত্তভাবে অনুমতিগুলি পরিবর্তন করা হয়।

সিম্বলিক (পাঠ্য) পদ্ধতি

প্রতীকী মোড ব্যবহার করার সময় chmod কমান্ডের বাক্য chmod নিম্নলিখিত বিন্যাস থাকে:

chmod perms… FILE…

পতাকা প্রথম সেট ( ), ব্যবহারকারী পতাকা, সংজ্ঞায়িত করে যে কোন ব্যবহারকারীদের ফাইলের অনুমতিগুলি পরিবর্তিত হয়েছে।

  • u - ফাইলের মালিক। g - ব্যবহারকারী যারা এই গ্রুপের সদস্য। o - অন্যান্য সমস্ত ব্যবহারকারী। a - সমস্ত ব্যবহারকারী, ugo সমান।

যদি ব্যবহারকারীদের পতাকা বাদ দেওয়া হয়, তবে ডিফল্ট একটি হ'ল এবং উমাস্ক দ্বারা নির্ধারিত অনুমতিগুলি প্রভাবিত হবে না।

পতাকাগুলির দ্বিতীয় সেট ( ), অপারেশন পতাকাগুলি, অনুমতিগুলি সরানো, যুক্ত করা, বা সেট করতে হবে কিনা তা নির্ধারণ করে:

  • - নির্দিষ্ট অনুমতিগুলি সরান। + নির্দিষ্ট অনুমতি যুক্ত করে। = বর্তমান অনুমতিগুলি নির্দিষ্ট অনুমতিগুলিতে পরিবর্তন করে। = চিহ্নের পরে যদি কোনও অনুমতি নির্দিষ্ট না করা থাকে তবে নির্দিষ্ট ব্যবহারকারী শ্রেণীর সমস্ত অনুমতি সরিয়ে ফেলা হয়।

অনুমতিগুলি ( perms… ) নীচের বর্ণগুলির শূন্য বা এক বা একাধিক ব্যবহার করে সুস্পষ্টভাবে সেট করা যেতে পারে: r , w , x , X , s , এবং t । এক থেকে অন্য ব্যবহারকারী শ্রেণিতে অনুমতি অনুলিপি করার সময় সেট u , g এবং o থেকে একটি অক্ষর ব্যবহার করুন।

একাধিক ব্যবহারকারীর ক্লাসের জন্য অনুমতি সেট করার সময় ( ), প্রতীকী মোডগুলি পৃথক করতে কমাগুলি (স্পেস ছাড়াই) ব্যবহার করুন।

প্রতীকী মোডে chmod কমান্ড কীভাবে ব্যবহার করবেন তার কয়েকটি উদাহরণ নীচে:

  • গ্রুপের সদস্যদের ফাইলটি পড়ার অনুমতি দিন, তবে এটি লিখতে এবং চালিত করার জন্য নয়:

    chmod g=r filename

    সমস্ত ব্যবহারকারীর জন্য কার্য সম্পাদনের অনুমতিটি সরান:

    chmod ax filename

    অন্যান্য ব্যবহারকারীদের জন্য লিখিত অনুমতি প্রত্যাহার করে:

    chmod -R ow dirname

    ফাইলের মালিক ব্যতীত সকল ব্যবহারকারীর জন্য পড়া, লেখার এবং সম্পাদনের অনুমতিটি সরান:

    chmod og-rwx filename

    নিম্নলিখিত ফর্মটি ব্যবহার করে একই জিনিস সম্পাদন করা যেতে পারে:

    chmod og= filename

    ফাইলের মালিককে পড়ুন, লিখুন এবং সম্পাদন করুন, ফাইলের গোষ্ঠীতে অনুমতি পড়ুন এবং অন্য সমস্ত ব্যবহারকারীর অনুমতি নেই:

    chmod u=rwx, g=r, o= filename

    ফাইলের গ্রুপের সদস্যদের যে অনুমতি রয়েছে তাতে ফাইলের মালিকের অনুমতিগুলি যুক্ত করুন:

    chmod g+u filename

    প্রদত্ত ডিরেক্টরিতে একটি স্টিকি বিট যুক্ত করুন:

    chmod o+t dirname

সংখ্যা পদ্ধতি

সংখ্যার পদ্ধতি ব্যবহার করার সময় chmod কমান্ডের বাক্য chmod নিম্নলিখিত বিন্যাস থাকে:

chmod NUMBER FILE…

সংখ্যার মোড ব্যবহার করার সময়, আপনি একই সময়ে তিনটি ব্যবহারকারীর (মালিক, গোষ্ঠী এবং অন্যান্য) সকলের জন্য অনুমতি সেট করতে পারেন।

সংখ্যাটি 3 বা 4-সংখ্যার নম্বর হতে পারে।

যখন 3 ডিজিটের নম্বর ব্যবহার করা হয় তখন প্রথম অঙ্কটি ফাইলের মালিকের অনুমতি, ফাইলের গ্রুপের দ্বিতীয়টি এবং সর্বশেষে সমস্ত অন্যান্য ব্যবহারকারীদের প্রতিনিধিত্ব করে।

প্রতিটি লেখার, পড়ার এবং সম্পাদনের অনুমতিগুলির নিম্নলিখিত সংখ্যার মান থাকে:

  • r (পঠিত) = 4 ডাব্লু (লিখুন) = 2 x (এক্সিকিউট) = 1 কোন অনুমতি = 0

একটি নির্দিষ্ট ব্যবহারকারী শ্রেণীর অনুমতি নম্বরটি এই দলের জন্য অনুমতিগুলির মানগুলির যোগফল দ্বারা প্রতিনিধিত্ব করা হয়।

সংখ্যার মোডে ফাইলটির অনুমতিগুলি অনুসন্ধান করতে সমস্ত ব্যবহারকারী শ্রেণীর জন্য মোট গণনা করুন calc উদাহরণস্বরূপ, ফাইলের মালিককে পড়ার, লেখার এবং সম্পাদনের অনুমতি দেওয়ার জন্য, ফাইলের গোষ্ঠীতে অনুমতিগুলি পড়ুন এবং সম্পাদন করুন এবং অন্যান্য সমস্ত ব্যবহারকারীদের কেবলমাত্র নিম্নলিখিতটি পড়ার অনুমতিগুলি পড়ুন:

  • মালিক: rwx = 4 + 2 + 1 = 7 গোষ্ঠী: আরএক্স = 4 + 0 + 1 = 5 অন্যান্য: আরএক্স = 4 + 0 + 0 = 4

উপরের পদ্ধতিটি ব্যবহার করে আমরা 754 নম্বরে 754 যা পছন্দসই অনুমতিগুলি উপস্থাপন করে।

setgid , setgid এবং sticky bit পতাকাগুলি সেট করতে, চার অঙ্কের সংখ্যা ব্যবহার করে।

যখন 4 সংখ্যার নম্বর ব্যবহৃত হয়, প্রথম অঙ্কের নিম্নলিখিত অর্থ থাকে:

  • setuid = 4setgid = 2 স্টিকি = 1 কোনও পরিবর্তন = 0

পরবর্তী তিনটি অঙ্কের 3 টি সংখ্যা ব্যবহার করার সময় একই অর্থ রয়েছে।

প্রথম অঙ্কটি 0 হলে এটি বাদ দেওয়া যেতে পারে এবং মোডটি 3 সংখ্যার সাথে উপস্থাপিত হতে পারে। সংখ্যা মোড 0755 755 এর সমান।

সংখ্যার মোড গণনা করতে আপনি অন্য একটি পদ্ধতি (বাইনারি পদ্ধতি)ও ব্যবহার করতে পারেন তবে এটি কিছুটা জটিল। 4, 2 এবং 1 ব্যবহার করে কীভাবে সংখ্যা মোড গণনা করতে হবে তা জানা বেশিরভাগ ব্যবহারকারীর পক্ষে যথেষ্ট sufficient

আপনি stat কমান্ডটি ব্যবহার করে stat ফাইলের অনুমতিগুলি পরীক্ষা করতে পারেন:

stat -c "%a" filename

644

সংখ্যার মোডে chmod কমান্ড কীভাবে ব্যবহার করতে হয় তার কয়েকটি উদাহরণ এখানে রয়েছে:

  • ফাইলের মালিককে পড়ার এবং লেখার অনুমতি দিন এবং কেবলমাত্র গ্রুপ সদস্য এবং অন্যান্য সমস্ত ব্যবহারকারীর কাছে অনুমতি পড়ুন:

    chmod 644 dirname

    ফাইলের মালিককে অনুমতি পড়ুন, লিখুন এবং সম্পাদন করুন, গ্রুপের সদস্যদের অনুমতি পড়ুন এবং সম্পাদন করুন এবং অন্য সমস্ত ব্যবহারকারীর জন্য অনুমতি নেই:

    chmod 750 dirname

    পড়ুন, লিখুন এবং অনুমতি নির্বাহ করুন, এবং একটি প্রদত্ত ডিরেক্টরিতে একটি স্টিকি বিট দিন:

    chmod 1777 dirname

    পুনরাবৃত্তভাবে ফাইলের মালিকের কাছে পড়ার, লেখার এবং অনুমতিগুলি নির্ধারণ করে এবং প্রদত্ত ডিরেক্টরিতে অন্য সমস্ত ব্যবহারকারীর জন্য কোনও অনুমতি নেই:

    chmod -R 700 dirname

একটি রেফারেন্স ফাইল ব্যবহার করে

--reference=ref_file অপশন আপনাকে ফাইলের অনুমতিগুলি নির্দিষ্ট রেফারেন্স ফাইলের ( ref_file ফাইল) অনুরূপ হিসাবে সেট করতে দেয়।

chmod --reference=REF_FILE FILE

উদাহরণস্বরূপ, নিম্নলিখিত কমান্ডটি file1 1 এর file1 2 এর অনুমতিগুলি বরাদ্দ করবে

chmod --reference=file1 file2

পুনরাবৃত্তভাবে ফাইলের অনুমতিগুলি পরিবর্তন করুন

প্রদত্ত ডিরেক্টরিতে সমস্ত ফাইল ও ডিরেক্টরিতে পুনরাবৃত্তভাবে পরিচালনা করতে -R ( --recursive ) বিকল্পটি ব্যবহার করুন:

chmod -R MODE DIRECTORY

উদাহরণস্বরূপ, /var/www ডিরেক্টরিতে সমস্ত ফাইল এবং উপ-ডিরেক্টরিগুলির অনুমতিগুলি 755 করতে আপনি ব্যবহার করবেন:

chmod -R 755 /var/www

প্রতীকী লিঙ্কগুলিতে অপারেটিং

প্রতীকী লিঙ্কগুলিতে সর্বদা 777 অনুমতি থাকে।

ডিফল্টরূপে, যখন সিমলিংকের অনুমতিগুলি পরিবর্তন করা হয়, chmod ফাইলটি লিঙ্কটি নির্দেশ করছে তার অনুমতিগুলি পরিবর্তন করবে।

chmod 755 symlink

সম্ভাবনাগুলি হ'ল টার্গেটের মালিকানা পরিবর্তনের পরিবর্তে আপনি একটি "সিমলিংক অ্যাক্সেস করতে পারবেন না": অনুমতি অস্বীকার করা হয়েছে "ত্রুটিটি পাবেন।

ত্রুটিটি ঘটে কারণ বেশিরভাগ লিনাক্স ডিস্ট্রিবিউশনে সিমলিংকগুলি ডিফল্টরূপে সুরক্ষিত থাকে এবং আপনি লক্ষ্যবস্তু ফাইলগুলিতে অপারেট করতে পারবেন না। এই বিকল্পটি /proc/sys/fs/protected_symlinks নির্দিষ্ট করা আছে। 1 মানে সক্ষম এবং 0 অক্ষম disabled সিমলিংক সুরক্ষাটি অক্ষম না করার পরামর্শ দেওয়া হচ্ছে।

বাল্কে ফাইলের অনুমতি পরিবর্তন করা

কখনও কখনও এমন পরিস্থিতিতে থাকে যেখানে আপনাকে ফাইল এবং ডিরেক্টরিগুলির অনুমতিগুলি বাল্ক পরিবর্তন করতে হবে।

সর্বাধিক সাধারণ দৃশ্যটি হ'ল ওয়েবসাইট ফাইলের অনুমতিগুলি পুনরাবৃত্তভাবে পরিবর্তন করে 644 এবং ডিরেক্টরিটির অনুমতিগুলি 755

সংখ্যা পদ্ধতি ব্যবহার করে:

find /var/www/my_website -type d -exec chmod 755 {} ; find /var/www/my_website -type f -exec chmod 644 {} ;

প্রতীকী পদ্ধতি ব্যবহার:

find /var/www/my_website -type d -exec chmod u=rwx, go=rx {} ; find /var/www/my_website -type f -exec chmod u=rw, go=r {} ;

/var/www/my_website অধীনে ফাইল এবং ডিরেক্টরি অনুসন্ধান করবে এবং অনুমতি প্রাপ্ত করার জন্য প্রতিটি পাওয়া ফাইল এবং ডিরেক্টরি chmod কমান্ডের কাছে প্রেরণ করবে।

উপসংহার

chmod কমান্ড ফাইলের অনুমতি পরিবর্তন করে। অনুমতিগুলি প্রতীকী বা সংখ্যা মোড ব্যবহার করে সেট করা যেতে পারে।

chmod সম্পর্কে আরও জানতে chmod ম্যান পেজ দেখুন visit

chmod টার্মিনাল