"উমাস্ক" কী এবং এটি কীভাবে কাজ করে?


190

আমি বিশ্বাস করি যে উমাস্ক এমন এক জিনিস যা ফাইল অনুমতিগুলি নিয়ন্ত্রণ করে তবে এটি পুরোপুরি বুঝতে পারে না।

চালানোর পর umask 0644একটি টার্মিনাল , আমি ফাইল আমি কম্যান্ড-লাইন টেক্সট এডিটর দিয়ে তৈরি করবেন পড়তে পারেন nano। আমি লক্ষ্য করেছি যে সেই ফাইলটির অনুমতিগুলি 0022ডিফল্টের পরিবর্তে সেট করা আছে 0755

উমাস্ক কীভাবে কাজ করে? আমি ভেবেছিলাম যে আমি কেবল উমাস্কের প্রতিটি অঙ্ক সরিয়ে ফেলতে পারি 0777, 7 - 6 = 1এবং 7 - 4 = 3তাই আমি অনুমতিগুলি পাব বলে প্রত্যাশা করি 0133, তবে দৃশ্যত, এটি এরকম নয়।

  1. উমাস্ক ঠিক কী? এটি আমার কাছে ব্যাখ্যা করুন যেমন আমি "লিনাক্স নুব"
  2. আমি কীভাবে উমাস্ক দিয়ে গণনা করব?
  3. উমাস্কের ব্যবহারের ক্ষেত্রে কী কী?

app_mode 666 rw- rw- rw- umask 644 --0 -00 -00 file_mode 022 --- -w- -w-
গ্র্যাভানটোট

উত্তর:


143

উমাস্ক অনুমতিগুলির সেট হিসাবে কাজ করে যা অ্যাপ্লিকেশনগুলি ফাইলগুলিতে সেট করতে পারে না। এটি প্রক্রিয়াগুলির জন্য একটি ফাইল মোড তৈরির মুখোশ এবং এটি নিজেই ডিরেক্টরিতে সেট করা যায় না। বেশিরভাগ অ্যাপ্লিকেশনগুলি এক্সিকিউটিভ পারমিশন সেট করে ফাইল তৈরি করতে পারে না, সুতরাং তাদের ডিফল্ট থাকতে পারে 666, যা পরে উমাস্ক দ্বারা সংশোধিত হয়।

আপনি যেমন মালিকের জন্য পড়ার / লেখার বিটগুলি এবং অন্যদের জন্য পড়ার বিটগুলি সরিয়ে দেওয়ার জন্য উমাস্কটি সেট করেছেন, তেমনি 777অ্যাপ্লিকেশনগুলিতে একটি ডিফল্ট ফাইলের অনুমতিের ফলে দেখা দেয় 133। এর অর্থ হ'ল আপনি (এবং অন্যরা) ফাইলটি নির্বাহ করতে পারেন এবং অন্যরা এটিতে লিখতে সক্ষম হবেন।

আপনি যদি ফাইলগুলি মালিকানা ব্যতীত অন্য কারও কাছে পড়া / লেখার / সম্পাদনকারী না হয়ে তৈরি 077করতে চান তবে আপনার গোষ্ঠী এবং অন্যদের জন্য এই অনুমতিগুলি বন্ধ করতে একটি উমাস্ক ব্যবহার করা উচিত ।

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

উবুন্টুতে ডিফল্ট উমাস্কটি হ'ল 022এর অর্থ হ'ল নতুন তৈরি করা ফাইলগুলি প্রত্যেকের দ্বারা পঠনযোগ্য তবে কেবল মালিকের দ্বারা লিখিতযোগ্য:

user@computer:~$ touch new-file-name
user@computer:~$ ls -dl new-file-name
-rw-r--r-- 1 user user 0 Apr  1 19:15 new-file-name

উবুন্টু ওয়ানিরিক (১১.১০) থেকে শুরু করে ডিফল্ট উমাস্কটি শিথিল করা হয়েছিল 002, যা মালিকের গ্রুপে লেখার অ্যাক্সেস প্রসারিত করে:

user@computer:~$ touch new-file-name
user@computer:~$ ls -dl new-file-name
-rw-rw-r-- 1 user user 0 Apr  1 19:15 new-file-name

উমাস্ক দেখা ও পরিবর্তন করা হচ্ছে

আপনার বর্তমান উমাস্ক সেটিংটি দেখতে একটি টার্মিনাল খুলুন এবং কমান্ডটি চালান:

umask

বর্তমান শেলের উমাস্ক সেটিংটি অন্য কোনও কিছুর কাছে পরিবর্তন করতে 077 বলুন, চালান:

umask 077

এই সেটিংটি কাজ করে কি না তা পরীক্ষা করার জন্য আপনি একটি নতুন ফাইল তৈরি করতে পারেন (বিদ্যমান ফাইলটির ফাইল অনুমতিগুলি প্রভাবিত হবে না) এবং ফাইল সম্পর্কে তথ্য প্রদর্শন করতে পারেন, চালান:

user@computer:~$ touch new-file-name
user@computer:~$ ls -dl new-file-name
-rw------- 1 user user 0 Apr  1 19:14 new-file-name

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

কেস ব্যবহার করুন: মাল্টি-ইউজার সিস্টেম

আপনি যদি এমন এক সিস্টেমে থাকেন যা একাধিক ব্যবহারকারীর দ্বারা ভাগ করা হয় তবে এটি পছন্দ হয় যে অন্যরা আপনার হোম ডিরেক্টরিতে ফাইল পড়তে পারে না। তার জন্য, একটি উমাস্ক খুব দরকারী। সম্পাদনা করুন ~/.profileএবং এর সাথে একটি নতুন লাইন যুক্ত করুন :

umask 007

~/.profileকার্যকর হওয়ার জন্য এই উমাস্ক পরিবর্তনের জন্য আপনাকে পুনরায় লগইন করতে হবে। এরপরে, আপনার নিজের ডিরেক্টরি ডিরেক্টরিতে ফাইলের বিদ্যমান ফাইল অনুমতিগুলি বিশ্বের জন্য পড়ুন, লিখুন এবং চালিত বিটটি সরিয়ে দিয়ে পরিবর্তন করতে হবে। একটি টার্মিনাল খুলুন এবং কার্যকর করুন:

chmod -R o-rwx ~

আপনি যদি চান যে এই উমাস্ক সেটিংটি সিস্টেমের সমস্ত ব্যবহারকারীর জন্য প্রয়োগ করা হয় তবে আপনি এখানে সিস্টেম-প্রশস্ত প্রোফাইল ফাইলটি সম্পাদনা করতে পারেন /etc/profile


3
তাহলে, উমাস্কের অঙ্কগুলি কী বোঝায়? 777গ্রুপ এবং অন্যান্যরা কেন এটি লিখতে সক্ষম হবেন তার অর্থ কেন , যখন 077তারা বোঝাতে পারে না?
হ্যালো গুডবাই

3
এছাড়াও, আপনি বলেছেন যে উমাস্কটি থাকলে 000ফাইলের অনুমতি হবে 777। সুতরাং একটি ডিফল্ট মুখোশ দিয়ে 022, ফাইল অনুমতি থাকা উচিত নয় 755, অর্থাত্ অনুরূপ -rwxr-xr-x, না -rw-r--r--?
হ্যালো গুডবাই

12
অবশ্যই স্বীকার করতে হবে, এই ব্যাখ্যাটি আমাকে যে পরিমাণ সহায়তা করেছে তার চেয়ে বেশি আমাকে বিভ্রান্ত করেছে।
কনেল হুলি

8
মনে রাখবেন যে এই উত্তর পোস্ট হওয়ার ঠিক এক মাস পরে উবুন্টুর ডিফল্ট উমাস্কটি 0002 এ পরিবর্তিত হয়েছে
জেফ পেকেট

7
@ হেলো গুডবাই যদি উমাস্ক থাকে 000তবে কোনও অনুমতি সরানো হবে না। মত অ্যাপ্লিকেশনের touchএবং nanoডিফল্ট সঙ্গে ফাইল তৈরি 666, যাতে ফাইল অনুমতি থাকবে 666কিন্তু একটি umask 022, গ্রুপ এবং অন্যদের জন্য লিখতে বিট সরাবে তাই 666কমে পরার থেকে 644ওরফে -rw-r--r--বিবেচনা করুন mkdirযা ডিফল্টভাবে মোড তৈরি 777একটি umask সঙ্গে 022করার অনুমতি কমবে755
জেফ পেকেট

38

গৃহীত উত্তরের উত্তম আলোচনার পাশাপাশি umaskএটি কীভাবে 12.04 এবং তার পরে পরিচালিত হবে তার উল্লেখ সহ আরও কিছু বিষয় যুক্ত করা উচিত।

উমাস্ক এবং পাম_উমস্ক

ডিফল্ট উমাস্ক এখন রয়েছে /etc/login.defsএবং এতে নেই /etc/profile, যেমনটি সরকারী নোটে রয়েছে /etc/profile:

# The default umask is now handled by pam_umask.
# See pam_umask(8) and /etc/login.defs.

Pam_umaskনীচে সংক্ষিপ্তভাবে ব্যাখ্যা করা হয়েছে এবং এটি বলা উচিত যে ব্যবহারকারীর নিজের কাস্টম উমাস্ক সেটিংটি স্থাপন করার জন্য ডিফল্ট ফাইলটি এখনও রয়েছে ~/.profile

Pam_umaskউবুন্টুর অপারেশনে অত্যন্ত গুরুত্বপূর্ণ পাম মডিউলগুলির মধ্যে একটি হ'ল ( apropos '^pam_'অন্যগুলির জন্য ম্যান্যাপগুলি সন্ধান করতে চালানো )। ইন র manpage জন্য pam_umaskএটি উল্লিখিত হয় যে

pam_umask বর্তমান পরিবেশের ফাইল মোড তৈরির মুখোশ সেট করতে একটি প্যাম মডিউল। উমাস্ক নতুন তৈরি করা ফাইলগুলিতে নির্ধারিত ডিফল্ট অনুমতিগুলিকে প্রভাবিত করে।

ডিফল্ট উমাস্কের একটি নোট

ডিফল্ট উমাস্ক 022 হওয়ার পরেও ডিফল্ট 775 অনুমতি এবং ফাইলগুলি ডিফল্ট 664 অনুমতির সাথে তৈরি ফাইলগুলির $HOMEমাধ্যমে নতুন ফোল্ডারগুলিতে তৈরি করা যেতে পারে This এটি প্রথমে বিপরীত, এবং এটি ব্যাখ্যা করার মতো seemsmkdirtouch

উবুন্টুতে যখন ডিফল্ট উমাস্ক 022 হয় তবে এটি পুরো গল্প নয়, কারণ /etc/login.defsএকটি শর্ত পূরণ করা হলে উমাস্ককে নন-রুট ব্যবহারকারীদের জন্য 002 হতে দেয় (নীচে অংশটি দেখুন)। একটি স্বাভাবিক ইনস্টলেশনের উপর, /etc/login.defsসেটিং রয়েছে USERGROUPS_ENAB yes। এই কি

মূল-বিহীন ব্যবহারকারীদের জন্য উমাস্ক গোষ্ঠীর বিটগুলি মালিকের বিটের সমান (উদাহরণ: 022 -> 002, 077 -> 007) সেট করতে সক্ষম করে, যদি ইউইডটি জিডের মতো হয়, এবং ব্যবহারকারীর নামটি প্রাথমিকের মতো হয় দলের নাম.

অতএব আপনি statযখন mkdirএকক ব্যবহারকারী সিস্টেমে খনি (ইউআইডি এবং জিড সমান হয়) এর সাথে একটি নতুন ফোল্ডার তৈরি করা হয় তখন কেন নীচের বিষয়গুলি দেখেন :

Access: (0775/drwxrwxr-x)  Uid: ( 1000/username)   Gid: ( 1000/username)

আরও তথ্যের জন্য, দেখুন man pam_umaskএবং উবুন্টু অনলাইনে ম্যানেজ করুন


দেখে মনে হচ্ছে আপনার দ্বিতীয় অংশটি কিছু হারিয়েছে? (USERGROUP_ENABLE?) আপডেট তথ্যের জন্য +1
লেকেনস্টেইন

2
@ লেকেনস্টেইন আশ্চর্যজনকভাবে যথেষ্ট, সেটিংটি /etc/login.defsঅবশ্যই USERGROUPS_ENAB yesএটি চেক করার পরে is এই ফাইলটির বাক্য গঠনটি কিছুটা অস্বাভাবিক।

আমি কেবল ফাইল এবং উত্সটি যাচাই করেছি এবং আপনি ঠিক বলেছেন, এটি (এবং কিছু অন্যান্য) সেটিংস বিভ্রান্তিকরভাবে "_ENAB" নামকরণ করেছে।
লেকেনস্টেইন 19

33

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

Octal value : Permission
0 : read, write and execute
1 : read and write
2 : read and execute
3 : read only
4 : write and execute
5 : write only
6 : execute only
7 : no permissions

তারপরে আপনি উমাস্ককে যথাযথ প্রিমেশন সেট করতে গণনা করতে পারেন:

$ umask 077
$ mkdir dir1
$ touch file
$ ls -ld dir1 file

drwx------ 2 amrx amrx 4096 2011-03-04 02:05 dir1
-rw------- 1 amrx amrx    0 2011-03-04 02:05 file

ফাইলগুলির জন্য চূড়ান্ত অনুমতি গণনা করা

নিম্নরূপে ফাইলের চূড়ান্ত অনুমতি নির্ধারণ করতে আপনি বেস অনুমতিগুলি থেকে কেবল উমাস্কটি বিয়োগ করতে পারেন:

666 – 022 = 644
  • ফাইল বেস অনুমতি: 666
  • umask মান: 022
  • নতুন ফাইলের অনুমতি পেতে বিয়োগ (666-022):644 (rw-r–r–)

ডিরেক্টরিগুলির জন্য চূড়ান্ত অনুমতি গণনা করা

ডিরেক্টরি হিসাবে চূড়ান্ত অনুমতি নির্ধারণ করার জন্য আপনি কেবল বেস অনুমতিগুলি থেকে উমাস্কটি বিয়োগ করতে পারেন:

777 – 022 = 755
  • ডিরেক্টরি বেস অনুমতি: 777
  • umask মান: 022
  • নতুন ডিরেক্টরিের অনুমতি পেতে বিয়োগ (777-022):755 (rwxr-xr-x)

3
আমি মনে করি না যে চূড়ান্ত পার্সনগুলি কীভাবে গণনা করা হয়, যদি আনমাস্ক মানটি হয় 077তবে আপনি কীভাবে বিয়োগ করবেন 666-077?
সুফিয়ান ঘোরি

5
@ সুফিয়ানঘোরি ব্যারনের ব্যাখ্যা ফাইল অনুমোদনের জন্য সম্পূর্ণ নয়। আপনার ক্ষেত্রে এবং ভবিষ্যতের যে কোনও গণনার ক্ষেত্রে, সহজেই মনে রাখার জন্য, আপনার এগুলি তাদের এইভাবে বিয়োগ করার বিষয়টি মনে রাখা উচিত: 6-0 6-7 6-7 যদি এই তিনটির কোনও ফলাফল -1 হয় তবে এটি 0 হওয়া উচিত we চূড়ান্ত ফলাফল 600
Huy.PhamNhu

1
@ হুই.প্যামনহু এটিও সঠিক নয়। 6 666 এর বেস অনুমতি এবং 033 এর উমাস্কের সাহায্যে আপনি অবশ্যই 633 ছাড় পাবেন না।
মার্টিনাস

7
না না না. উমাস্ক গণনা করতে আপনি বিয়োগ ব্যবহার করতে পারবেন না (এটি নির্দিষ্ট মানগুলির সাথে কাজ করে তবে সমস্তটি নয়)। আপনাকে উমাস্ককে "বিটগুলি অক্ষম করুন" হিসাবে ভাবতে হবে। সুফিয়ান এবং উইসবাকির অন্যান্য উত্তর দেখুন।
উইসবাকি

33

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

প্রথমত, "মাস্ক" অর্থ পাটিগণিত অর্থে "বিয়োগ" নয় - কোনও bণ গ্রহণ বা বহন করা হয় না, দ্বিতীয়ত: umaskএটি একটি মুখোশ; এটি বিয়োগ করার সংখ্যা নয়।

তৃতীয়, মুখোশ অনুমতি বিট বন্ধ করে। যদি তারা ইতিমধ্যে বন্ধ umaskথাকে তবে অনুমতিগুলি কোনও পরিবর্তন করে না,

উদাহরণস্বরূপ, ধরে নিই যে 077ফাইলগুলি 666এবং ডিরেক্টরিগুলির জন্য আপনাকে সিস্টেম ডিফল্ট থেকে আনমাস্ক করতে হবে 777

আপনি যে আদেশটি ব্যবহার করবেন তা হ'ল

umask 077

(বাইনারি মধ্যে আনমাস্ক মান, 000 111 111)

এই আনমাস্কটি কী করবে তা হ'ল এটি প্রথম ছয়টি এলএসবি (ন্যূনতম উল্লেখযোগ্য বিট) এর কোনওটি বন্ধ করে দেবে 1এবং সেগুলির কোনও ইতিমধ্যে বন্ধ থাকলে কোনও পরিবর্তন আনবে না।

এখানে চূড়ান্ত অনুমতি গণনা করা হয়:

file permisison 666 = 110 110 110 
unmask value    077 = 000 111 111
will result in, 600 = 110 000 000

উভয় 110মান কীভাবে পরিবর্তিত হয়েছে তা পর্যবেক্ষণ করুন 000

একইভাবে,

directory permission 777 = 111 111 111 
unmask value         077 = 000 111 111
will result in,      700 = 111 000 000

7
এই উত্তর করা উচিত!
আবদেলৌহাব

@SufiyanGhori সুতরাং যদি umask 177(২001 111 111), এটিকে বন্ধ প্রথম 7 অন্তত উল্লেখযোগ্য বিট যদি তারা চালু হবে1
Kasun Siyambalapitiya

এটি সঠিক @ কাসুনসিয়াম্বলপিতিয়া
সুফিয়ান ঘোরি

1
সূত্রটিও তাইresult = file permission & (!umask)
এরিক হডজিন্স 15

1
@ এরিকহডগিন্স: হ্যাঁ, ঠিক
অমিত নাইডু

14

বেসিক ধারণা:

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

সবার আগে, "মুখোশ" কী তা নিয়ে ভাবেন। একটি মুখোশ কিছু বাধা দেয়। টেপকে মাস্ক করার কথা ভাবুন। এই ক্ষেত্রে, উমাস্ক কোনও নতুন ফাইল বা ডির তৈরি করার সময় অনুমতিগুলি ব্লক / অক্ষম করতে টেপকে মাস্ক করার মতো।

নতুন দির তৈরি করার সময় ডিফল্ট অনুমতিগুলি হয় octal 777 (111 111 111)এবং একটি নতুন ফাইল octal 666 (110 110 110)। আমরা উমাস্ককে নির্দিষ্ট অনুমতিগুলি অবরুদ্ধ / অক্ষম করার জন্য সেট করেছি।

  • 1সেই অনুমতিটিকে অবরুদ্ধ / নিষ্ক্রিয় করার একটি মাস্ক বিট (সেই বিটের উপরে মাস্কিং টেপ লাগানো)।
  • এর একটি মাস্ক বিট 0অনুমতিটি দিয়ে যাওয়ার অনুমতি দেবে (সেই বিটের উপরে কোনও মাস্কিং টেপ নেই)।

সুতরাং একটি octal 022 (000 010 010)মাস্ক মানে অক্ষম করা group writeএবং others write, এবং অন্যান্য সমস্ত অনুমতি দিয়ে যাওয়ার অনুমতি দেওয়া।

হিসাব:

022 উমাস্ক সহ একটি নতুন ফাইল (ডিফল্ট 666 অনুমতি) এর গণনা এখানে দেওয়া হল:

  perm mask result
----------------------------
u 1    0    1 (pass through)
  1    0    1 (pass through)
  0    0    0 (pass through)
----------------------------
g 1    0    1 (pass through)
  1    1    0 (disable)
  0    0    0 (pass through)
----------------------------
o 1    0    1 (pass through)
  1    1    0 (disable)
  0    0    0 (pass through)

সুতরাং যখন আপনি একটি নতুন ফাইল তৈরি করবেন তখন আপনি 644 এর ফলাফল দিয়ে শেষ হবেন।

সহজ উপায়:

তবে যদি বিপরীত মুখোশের গণনাগুলি আপনাকে কেবল বিভ্রান্ত করে তোলে তবে প্রতীকী উমাস্ক স্বরলিপি ব্যবহারের আরও সহজ উপায় রয়েছে। আপনি যখন এই পদ্ধতিটি ব্যবহার করেন, তারপরে আপনি কেবল মাস্ক বিটের পরিবর্তে পাস-থ্রু বিটগুলি নির্দিষ্ট করে দিচ্ছেন।

  • umask u=rwx,g=rx,o=rxমানে জন্য মধ্য দিয়ে পাস করার অনুমতি user rwx, group rx, other rx। কোনটি অক্ষম বোঝা group w, others w। আপনি যদি এই আদেশটি চালনা করেন তবে চেক করুন umask, আপনি পাবেন 022
  • umask u=rwx,g=,o=মানে এর মধ্য দিয়ে যেতে দিন user rwx। যা এর জন্য groupএবং সমস্ত অ্যাক্সেসকে অক্ষম করে others। আপনি যদি এই আদেশটি চালনা করেন তবে চেক করুন umask, আপনি পাবেন 077

বোনাস গণনা:

আপনি যদি "অষ্টাল উমাস্কগুলি বিটওয়াইজ এবং বিটওয়াইজ নট" ব্যবহার করে যুক্তির একাকার পরিপূরক দ্বারা কী গণনা করা হয় তা বুঝতে চান তবে এখানে এমন কিছু যুক্তিযুক্ত সারণী রয়েছে যা প্রদর্শন করতে সহায়তা করতে পারে। মনে রাখবেন, একটি মাস্ক বিট 1মানে অক্ষম করা, এর 0মধ্য দিয়ে যাওয়া।

perm mask result
----------------
0    1    0     (mask 1 always disables)
1    1    0     (mask 1 always disables)
0    0    0     (mask 0 passes through)
1    0    1     (mask 0 passes through)

আপনি যদি টেবিলটি দিয়ে তৈরি করেন তবে NOT(mask)এখন এটি কেবল একটি সাধারণ ANDলজিক টেবিল!

perm NOT(mask) result
---------------------
0    0         0     (mask 1 always disables)
1    0         0     (mask 1 always disables)
0    1         0     (mask 0 passes through)
1    1         1     (mask 0 passes through)

সুতরাং এর সূত্রটি হ'ল: result = perm AND (NOT mask)

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