setguid
কর্মক্ষেত্রে এখানে 2 টি বাহিনী রয়েছে। প্রথমটি ফোল্ডারে সক্ষম হওয়া সেটগিড বিট folder
।
drwxr-s---. user group folder
এটা s
এই লাইন শুরুতে অক্ষরের প্যাকে। তাদের এভাবে গ্রুপ করা হয়েছে:
d - directory
rwx - read/write/execute bits for user
r-s - read/execute/setuid bits for group
--- - nothing for other users
এর r-s
অর্থ এই যে ফোল্ডারের অভ্যন্তরে তৈরি হওয়া কোনও ফাইল বা ডিরেক্টরিগুলি স্বয়ংক্রিয়ভাবে গ্রুপে সেট হয়ে যাবে group
।
ফাইলগুলির কারণেই এটি তৈরি হয়েছিল foo.txt
এবং এরকমই bar.txt
তৈরি হয়েছিল:
-rw-r--r--. user group foo.txt
-rw-rw-r--. user group bar.txt
অনুমতি & umask
আপনি যে অনুমতিগুলি দেখছেন সেটি অন্য বিষয়। এগুলি আপনার জন্য সেটিংস দ্বারা পরিচালিত হয় umask
। umask
কমান্ডটি দিয়ে আপনি কী সেট করেছেন তা আপনি দেখতে পারেন umask
:
$ umask
0002
দ্রষ্টব্য: এই বিটগুলিকে "মোড" বিটও বলা হয়।
এটি একটি মাস্ক তাই এটি সক্ষম হওয়া অনুমতি সম্পর্কিত যে কোনও বিট অক্ষম করে। এই উদাহরণে আমি চাই কেবলমাত্র কিছুটা অন্যের লেখার অনুমতি।
0 - skipping for this conversation
0 - value of user bits
0 - value of group bits
2 - value of other bits
এই কমান্ডের "বিটস" এর উপস্থাপনা দশমিক আকারে। সুতরাং একটি 2 বাইনারি আকারে 010 এর সমান, যা রাইট বিট। একটি 4 (100) এর অর্থ আপনি পড়তে অক্ষম করতে চান। একটি 7 (111) এর অর্থ আপনি সমস্ত অক্ষম পড়তে / লিখতে / সম্পাদন করতে চান। এখান থেকে এটি নির্মাণ করা:
$ umask 007
অন্যান্য ব্যবহারকারীদের জন্য বিটগুলি পঠন / লেখার / চালানো অক্ষম করে।
তাহলে আপনার ফাইলগুলির কি হবে?
ভাল umask
কোনও নতুন ফাইল তৈরি হওয়ার পরে সেটি অনুমোদনের অনুমতি দেয়। সুতরাং আমাদের যদি নিম্নলিখিত umask
সেট থাকে:
$ umask 007
এবং নতুন ফাইলগুলি স্পর্শ করা শুরু করল, আমরা সেগুলি এ জাতীয়ভাবে তৈরি দেখতে চাই:
$ touch newfile1.txt newfile2.txt
$ ls -l |grep newfile
-rw-rw---- 1 saml saml 0 Nov 3 22:34 newfile1.txt
-rw-rw---- 1 saml saml 0 Nov 3 22:34 newfile2.txt
যদি আমরা এটিকে অন্য কোনওটিতে পরিবর্তন করি তবে এটি বলুন:
$ umask 037
$ ls -l |grep newfile
-rw-rw---- 1 saml saml 0 Nov 3 22:36 newfile1.txt
-rw-rw---- 1 saml saml 0 Nov 3 22:36 newfile2.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile3.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile4.txt
আমরা ইতিমধ্যে তৈরি করা ফাইলগুলিতে এর কোনও প্রভাব পড়বে না। এখানে দেখো:
$ umask
0037
$ touch newfile1.txt newfile2.txt
$ ls -l | grep newfile
-rw-rw---- 1 saml saml 0 Nov 3 22:37 newfile1.txt
-rw-rw---- 1 saml saml 0 Nov 3 22:37 newfile2.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile3.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile4.txt
তাহলে ফাইল ব্রাউজার দিয়ে কী চলছে?
umask
কি আমি একটি "নরম" সেটিং নামক চাই। এটি কোনওভাবেই নিখুঁত নয় এবং ইউনিক্সে বেশ কয়েকটি উপায়ে মোটামুটি সহজেই পাশ করা যেতে পারে। সরঞ্জামগুলির মধ্যে অনেকগুলি সুইচ নেয় যা আপনাকে তাদের ক্রিয়াকলাপের অংশ হিসাবে অনুমতিগুলি নির্দিষ্ট করতে দেয়।
mkdir
উদাহরণস্বরূপ নিন :
$ umask
0037
$ mkdir -m 777 somedir1
$
$ ls -ld somedir1
drwxrwxrwx 2 saml saml 4096 Nov 3 22:44 somedir1
সঙ্গে -m
সুইচ আমরা ওভাররাইড করতে পারে umask
। touch
তাই আপনাকে সৃজনশীল হতে হবে আছে কমান্ড এই সুবিধা নেই। এই U&L প্রশ্নোত্তর শিরোনাম দেখুন: কমান্ড লাইনে সেট করা অনুমতি নিয়ে ফাইলগুলি তৈরি করা যায়? এই জাতীয় পদ্ধতির জন্য।
অন্যান্য উপায়? শুধু ওভাররাইড umask
। ফাইল ব্রাউজারটি সম্ভবত এটি করছে বা সম্পূর্ণরূপে উপেক্ষা করে umask
এবং এটির জন্য কনফিগার করা হয়েছে এমন অনুমতিগুলি ব্যবহার করে ফাইলটি বিছিয়ে দেওয়া।