আমি অনুমতিগুলি আরও ভাল করে বোঝার চেষ্টা করছি, তাই আমি কিছু "অনুশীলন" করছি। কমান্ডগুলির একটি ক্রম এখানে আমি তাদের নিজ নিজ আউটপুট ব্যবহার করছি:
$ umask
0022
$ touch file1
$ ls -l file1
-rw-r--r-- 1 user group 0 Mar 16 12:55 file1
$ mkdir dir1
$ ls -ld dir1
drwxr-xr-x 2 user group 4096 Mar 16 12:55 dir1
এটি উপলব্ধি করে কারণ আমরা জানি যে ডিফল্ট ফাইল অনুমতিগুলি 666( rw-rw-rw-) এবং ডিরেক্টরিগুলির ডিফল্ট অনুমতিগুলি 777( rwxrwxrwx)। যদি আমি আমার আছে এই ডিফল্ট অনুমতি থেকে umask মান বিয়োগ
666-022=644, rw-r--r--জন্য file1, তাই পূর্ববর্তী আউটপুট এটা সুসঙ্গত;
777-022=755, rwx-r-x-r-x, জন্য dir1, এছাড়াও সুসঙ্গত।
কিন্তু আমি যদি থেকে umask পরিবর্তন 022করতে 021এটা কোন নয়।
ফাইলটির উদাহরণ এখানে:
$ umask 0021
$ touch file2
$ ls -l file2
-rw-r--rw- user group 0 Mar 16 13:33 file2
-rw-r--rw-হয় 646তবে তা হওয়া উচিত 666-021=645। সুতরাং এটি আগের গণনা অনুযায়ী কাজ করে না।
এখানে ডিরেক্টরি উদাহরণ জন্য:
$ touch dir2
$ ls -ld dir2
drwxr-xrw- 2 user group 4096 Mar 16 13:35 dir2
drwxr-xrw-হয় 756, 777-021=756। সুতরাং এই ক্ষেত্রে ফলাফলটি পূর্ববর্তী গণনার সাথে সামঞ্জস্যপূর্ণ।
আমি লোকটি পড়েছি কিন্তু আমি এই আচরণ সম্পর্কে কিছুই পাই না।
কেউ ব্যাখ্যা করতে পারেন কেন?
ব্যাখ্যা
উত্তরে নির্দেশিত হিসাবে: umaskমানটির গাণিতিকভাবে ডিফল্ট ডিরেক্টরি এবং ফাইলের অনুমতিগুলি থেকে বিয়োগ হয় না ।
কার্যকরভাবে জড়িত অপারেশনটি হ'ল (এবং) এবং নোট (!) বুলিয়ান অপারেটরগুলির সংমিশ্রণ। প্রদত্ত:
আর = ফলে অনুমতির
D = ডিফল্ট অনুমতি
ইউ = বর্তমান umask
আর = ডি ও! ইউ
উদাহরণ স্বরূপ:
666 &! 0053 = 110 110 110 এবং
! 000 101 011
110 110 110 এবং
111 010 100
= 110 010 100 = 624 = rw - wr--
777 &! 0022 = 111 111 111 এবং
! 000 010 010
111 111 111 &
111 101 101
= 111 101 101 = 755 = rwxr - এক্সআর-এক্স
টিপ
ফলস্বরূপ অনুমতিগুলি (কমপক্ষে এটি আমাকে সহায়তা করেছিল) তাড়াতাড়ি জানার একটি সহজ উপায় হ'ল যে আমরা কেবলমাত্র 3 দশমিক মান ব্যবহার করতে পারি:
r = 100 = 4
w = 010 = 2
x = 001 = 1
অনুমতিগুলি এই 3 টি মানগুলির সংমিশ্রণ হবে।
" "আপেক্ষিক অনুমতি দেওয়া হয়নি তা নির্দেশ করতে ব্যবহৃত হয়।
666 = 4+2+" " 4+2+" " 4+2+" " = rw rw rw
সুতরাং যদি আমার বর্তমান উমাস্ক হয় 0053আমি জানি যে আমি (4+1) গ্রুপ থেকে পঠন এবং সম্পাদনের অনুমতিটি অপসারণ করছি এবং (2+1)ফলস্বরূপ অন্য ফলাফল থেকে লেখার এবং সম্পাদন করার চেষ্টা করছি
4+2 " "+2+" " 4+" "+" " = 624 = rw--w-r--
(গোষ্ঠী এবং অন্যান্যদের ইতিমধ্যে কার্যকর করার অনুমতি ছিল না)