'chmod g + s' কমান্ড


45

হ্যালো আমি chmod g+sইউনিক্সের কমান্ডের ভূমিকা বুঝতে চাই ।

এই বিশেষ প্রসঙ্গে এটি কী করে তাও আমি জানতে চাই:

cd /home/canard;
touch un;
chgrp canard .;
chmod g+s .;
touch deux ;

আমি ব্যতীত সমস্ত কমান্ডের ভূমিকা বুঝেছি chmod g+sএবং আমি ফাইলগুলির মধ্যে পার্থক্য জানতে চাই unএবং deuxএই কমান্ডের এই সিরিজটির ফলস্বরূপ।

উত্তর:


61
chmod g+s .;

এই কমান্ডটি বর্তমান ডিরেক্টরিতে গ্রুপ আইডি (সেটগিড) নির্ধারণ করে, যেমনটি লিখিত .

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

g+s ফাইলের গ্রুপ আইডি প্রভাবিত করে কিন্তু মালিকের আইডিকে প্রভাবিত করে না।

নোট করুন যে এটি কেবল নতুন নির্মিত ফাইলগুলিতে প্রযোজ্য । ডিরেক্টরিগুলিতে ( ) সরানো ফাইলগুলি mvসেটগিড সেটিং দ্বারা প্রভাবিত হয় না। ফাইলগুলি যেগুলির সাথে অনুলিপি করা হয়েছে cp -pসেগুলিও অকার্যকর।

উদাহরণ

touch un;
chgrp canard .;
chmod g+s .;
touch deux ;

এই ক্ষেত্রে, deuxগোষ্ঠীর অন্তর্ভুক্ত হবে canardতবে unএটি তৈরি করা ব্যবহারকারীর গোষ্ঠীর সাথে থাকবে whatever

শেল কমান্ডগুলিতে সেমিকোলনের ব্যবহার সম্পর্কে গৌণ নোট

এর বিপরীতে cবা perlশেল কমান্ডটি কেবলমাত্র সেমিকোলন অনুসরণ করা প্রয়োজন যদি একই কমান্ড লাইনে অন্য শেল কমান্ড অনুসরণ করে থাকে । সুতরাং, নিম্নলিখিত কমান্ড লাইন বিবেচনা করুন:

chgrp canard .; chmod g+s .;

চূড়ান্ত সেমিকোলন অতিশয় এবং এটি সরানো যেতে পারে:

chgrp canard .; chmod g+s .

তদ্ব্যতীত, আমরা যদি দুটি কমান্ড পৃথক লাইনে স্থাপন করি, তবে অবশিষ্ট সেমিকোলনটি অপ্রয়োজনীয়:

chgrp canard .
chmod g+s .

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

1
@ কাজ ভাল পয়েন্ট। আমি স্পষ্ট করে উত্তরটি আপডেট করেছি যে এটি হ'ল cp -pসেটগ্রিড সেটিংটি ওভাররাইড করে।
1024

কিন্তু cp -pসেটগিড সেটিংটি ওভাররাইড করে? প্রতিটি একক ইউনিক্স বাস্তবায়নে? পসআইএক্স বলেছে যে ডায়াগনস্টিক বার্তায় সিপি-পি ফলাফলের অধীনে ইউজার আইডি বা গ্রুপ আইডি অনুলিপি করতে ব্যর্থ কিনা তা অনির্ধারিত! তবে, যথাক্রমে এসএসইউআইডি এবং এসএসজিআইডি বিটগুলি সেই পরিস্থিতিতে সাফ করা দরকার (উদাহরণস্বরূপ যদি কোনও ফাইল সেটুয়েড বব হয় তবে বোবের মালিকানা অনুলিপি করা যায় না যাতে ফাইলটি জ্যানেটের মালিকানাধীন থাকে, সেটআপ না করে) janet।)
কাজ

" cp -pসেটগিড সেটিং ওভাররাইড করে?" পসিক্স অনুমান অনুসারে, এটি করার কথা রয়েছে। এটি আমি ব্যবহার করেছি এমন সমস্ত ইউনিক্স সিস্টেমে এটি করে। আপনি যখন গ্রুপের আইডি নকল করতে পারবেন না সেক্ষেত্রে সুরক্ষা রক্ষার জন্য কী করা উচিত সে সম্পর্কে আপনি খবরের অংশটি উদ্ধৃত করেছেন । আমি কখনই এ জাতীয় "না পার" পরিস্থিতি নিয়ে যেতে পারি না, তাই না?
1024

7

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

ইউনিক্স / লিনাক্সের ব্যবহারকারী এবং ব্যবহারকারী গ্রুপ রয়েছে যা ফাইল অ্যাক্সেসের জন্য নির্ধারিত হতে পারে

G + s বিকল্পগুলি নিম্নরূপ:

g - ফাইলের গ্রুপের অন্যান্য ব্যবহারকারীরা এর জন্য অনুমতি পেয়েছেন

গুলি - ব্যবহারকারীর জন্য সেট বা ব্যবহারকারী আইডি সেট করুন

এখানে একটি নমুনা ব্যবহার:

chmod =rwx,g+s filename

(প্রত্যেককে একটি নির্দিষ্ট ফাইল পড়তে, লিখতে এবং চালিত করতে এবং সেট গ্রুপ-আইডি চালু করার মঞ্জুরি দিন)

কোনও ফাইলের অনুমতি সেট / সংশোধন করতে আপনাকে chmod প্রোগ্রামটি ব্যবহার করতে হবে। অবশ্যই কোনও ফাইলের মালিকই কোনও ফাইলের অনুমতি পরিবর্তন করতে chmod ব্যবহার করতে পারেন। chmod এ নিম্নলিখিত সিনট্যাক্স রয়েছে: chmod [অপশনগুলি] মোড ফাইল (গুলি) 'মোড' অংশটি যুক্তি হিসাবে অনুসরণ করা ফাইল (গুলি) এর জন্য নতুন অনুমতিগুলি নির্দিষ্ট করে। একটি মোড নির্দিষ্ট করে যে কোন ব্যবহারকারীর অনুমতি পরিবর্তন করা উচিত এবং এর পরে কোন অ্যাক্সেসের ধরণগুলি পরিবর্তন করা উচিত। উদাহরণস্বরূপ বলা যাক: chmod ax socktest.pl

এর অর্থ নির্বাহকারী বিটটি সমস্ত ব্যবহারকারীর জন্য (-) সাফ করা উচিত। (মালিক, গোষ্ঠী এবং বিশ্বের অন্যান্য অংশ) ব্যবহারকারীরা পরিবর্তনের মাধ্যমে কী প্রভাব ফেলতে হবে তা নির্দিষ্ট করে একটি চিঠি দিয়ে অনুমতিগুলি শুরু হয়, এটি নীচের যে কোনও একটি হতে পারে:

u the owner user
g the owner group
o others (neither u, nor g)
a all users

এটির পরে একটি পরিবর্তন নির্দেশ আসে যা একটি + (সেট বিট) বা - (ক্লিয়ার বিট) এবং যে বিটটি পরিবর্তন করা উচিত তার সাথে সম্পর্কিত চিঠিটি নিয়ে থাকে। আসুন কয়েকটি উদাহরণ দেখুন:

$ ls -l socktest.pl 
-rwxr-xr-x   1 nick     users         1874 Jan 19 10:23 socktest.pl*

$ chmod a-x socktest.pl 
$ ls -l socktest.pl 
-rw-r--r--   1 nick     users         1874 Jan 19 10:23 socktest.pl

$ chmod g+w socktest.pl 
$ ls -l socktest.pl 
-rw-rw-r--   1 nick     users         1874 Jan 19 10:23 socktest.pl

$ chmod ug+x socktest.pl 
$ ls -l socktest.pl 
-rwxrwxr--   1 nick     users         1874 Jan 19 10:23 socktest.pl*

$ chmod ug-wx socktest.pl 
$ ls -l socktest.pl 
-r--r--r--   1 nick     users         1874 Jan 19 10:23 socktest.pl

অদ্ভুত সংখ্যা ... আপনি chmod 755 এর মতো জিনিসগুলির মুখোমুখি হতে পারেন এবং অবশ্যই আপনি এটি ভাবছেন will বিষয়টি হ'ল, আপনি এই উদাহরণের মতো একটি সংখ্যা ব্যবহার করে একবারে কোনও ফাইলের পুরো অনুমতি প্যাটার্নটি পরিবর্তন করতে পারেন। প্রতিটি মোডের একটি সম্পর্কিত কোড নম্বর থাকে এবং আমরা দেখতে পাচ্ছি যে কোনও সংখ্যাটি কোন মোডের সাথে কী সামঞ্জস্যপূর্ণ তা নির্ধারণের জন্য খুব সহজ উপায় রয়েছে। মোড সংখ্যায় তিনটি সংখ্যার প্রত্যেকটিরই তিনটি অনুমতি ট্রিপলটির একটির সাথে মিল রয়েছে। (u, g এবং o) একটি ট্রিপলেটে প্রতিটি অনুমতি বিট একটি মানের সাথে মিল: র জন্য 4, ডাব্লু এর জন্য 2, এক্স এর জন্য 1 যদি অনুমতি বিট হয় তবে আপনি অনুমতি ট্রিপলেটের সংখ্যায় এই মানটি যুক্ত করুন। যদি এটি সাফ হয়ে যায় তবে আপনি কিছুই যুক্ত করবেন না। (আপনারা কেউ কেউ লক্ষ্য করতে পারেন যে বাস্তবে,

আপনার জন্য ট্রিপলেট: rwx => 4 + 2 + 1 = 7

জি এর জন্য ট্রিপলেট: r-x => 4 + 0 + 1 = 5

ওয়ের জন্য ট্রিপলেট: r-x => 4 + 0 + 1 = 5

যা তোলে: 755

সুতরাং, 755 বলার একটি ক্ষুদ্র উপায় যা 'অন্য ব্যক্তিরা এই ফাইলটি পড়েন বা চালিত করেন তাতে আমার আপত্তি নেই, তবে কেবল আমার এটি পরিবর্তন করতে সক্ষম হওয়া উচিত' এবং 7 777 অর্থ 'প্রত্যেকের কাছে এই ফাইলটিতে সম্পূর্ণ অ্যাক্সেস রয়েছে'

পারফেক্ট রেফারেন্স


0

Ls কমান্ডের ফলাফল উমাস্কের উপর নির্ভর করবে।

g + s ফাইলটিতে স্যাজিড সেট করবে। এসইউডি এসজিআইডি সম্পর্কে আরও গভীর তথ্যের জন্য এখানে চেক করুন

সুতরাং আপনার উমাস্ক উদাহরণস্বরূপ যদি 022 হয় ফলাফলটি এরকম কিছু হবে:

-rw-r--r--    1 romeo    canard     0 Jan 31 20:58 deux
-rw-r-Sr--    1 romeo    UsersGrp   0 Jan 31 20:58 un

0

লিনাক্সে এক্সট্রোলসের জন্য একটি ডিফল্ট মাউন্ট বিকল্প? fs হ'ল 'nogrpid | sysvgroups '। সুতরাং প্রথম স্পর্শ আন, তৈরির প্রক্রিয়াটির fsgid সমান গ্রুপ আইডি সহ একটি ফাইল তৈরি করে যেখানে fsgid = egid।

chmod g + s।, পরবর্তী ফাইল / দির তৈরি প্যারেন্ট ফোল্ডার থেকে গোষ্ঠী আইডি তৈরি করে এবং তৈরি জিনিসটি একটি dir হলে এটিও g + s সেটাকে তার পিতামাতার হিসাবে সেট করে।

এখানে গ্রুপ ক্যানার্ড সহ ডিউস স্পর্শ করে, ডিক্স তৈরি করে।

শব্দার্থক পরিবর্তন হয় যদি মাউন্ট বিকল্প 'গ্রপিড | বিএসডিগ্রুপস 'সেক্ষেত্রে নতুন ফাইল / ডায়ার ক্রিয়েশন পিতামাতার জন্য জি + এস সেট না করেও প্যারেন্ট ফোল্ডার থেকে গ্রুপ আইডি উত্তরাধিকারী হবে।

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