File-system permissions
زیادہ تر فائل سسٹمز میں فائلوں اور ڈائریکٹریز کی صفات شامل ہوتی ہیں جو صارفین کی فائل سسٹم کے مندرجات کو پڑھنے، تبدیل کرنے، نیویگیٹ کرنے اور ان پر عمل درآمد کرنے کی صلاحیت کو کنٹرول کرتی ہیں۔ بعض صورتوں میں، مینو کے اختیارات یا افعال کو صارف کی اجازت کی سطح کے لحاظ سے مرئی یا پوشیدہ بنایا جا سکتا ہے۔ اس قسم کے یوزر انٹرفیس کو اجازت پر مبنی کہا جاتا ہے۔ دو قسم کی اجازتیں وسیع پیمانے پر دستیاب ہیں: پوزیکس فائل سسٹم کی اجازت اور رسائی کنٹرول لسٹس (اے سی ایل) جو زیادہ مخصوص کنٹرول کے قابل ہیں۔ فائل سسٹم کے تغیرات اصل فائل الاکیشن ٹیبل فائل سسٹم میں فی فائل تمام صارف صرف پڑھنے کی خاصیت ہوتی ہے۔ مائیکروسافٹ ونڈوز این ٹی اور اس کے مشتقات میں نافذ کردہ این ٹی ایف ایس، اجازتوں کا ایک پیچیدہ مجموعہ فراہم کرنے کے لیے اے سی ایل کا استعمال کرتے ہیں۔ اوپن وی ایم ایس یونیکس کی طرح اجازت اسکیم کا استعمال کرتا ہے۔ چار زمرے ہیں (سسٹم، مالک، گروپ، اور دنیا) اور رسائی کی اجازتوں کی چار قسمیں ہیں (پڑھیں، لکھیں، انجام دیں اور حذف کریں)۔ زمرہ جات باہمی طور پر جداگانہ نہیں ہیں: ورلڈ میں گروپ شامل ہے، جس میں مالک بھی شامل ہے۔ سسٹم کے زمرے میں آزادانہ طور پر سسٹم کے صارفین شامل ہیں۔ کلاسک میک او ایس آپریٹنگ سسٹم میں نافذ کردہ ایچ ایف ایس، اور اس کے جانشین ایچ ایف ایس +، اجازتوں کی حمایت نہیں کرتے ہیں۔ میکوس پوزیکس کے مطابق اجازتوں کا استعمال کرتا ہے۔ ورژن 10.4 ("ٹائیگر") سے شروع کرتے ہوئے، یہ پوزیکس کے مطابق اجازتوں کے علاوہ این ایف ایس وی 4 اے سی ایل کے استعمال کی بھی حمایت کرتا ہے۔ ایپل میک او ایس ایکس سرور ورژن 10.4 + فائل سروسز ایڈمنسٹریشن دستی تجویز کرتا ہے کہ اگر ممکن ہو تو صرف روایتی یونکس اجازتوں کا استعمال کریں۔ میک او ایس اب بھی کلاسیکی میک او ایس کی "پروٹیکٹڈ" خاصیت کی حمایت کرتا ہے۔ سولارس اے سی ایل سپورٹ کا انحصار استعمال ہونے والے فائل سسٹم پر ہے۔ پرانا یو ایف ایس فائل سسٹم POSIX.1e اے سی ایل کی حمایت کرتا ہے، جبکہ زیڈ ایف ایس صرف این ایف ایس وی 4 اے سی ایل کی حمایت کرتا ہے۔ لینکس ایکسٹ 2، ایکسٹ 3، ایکسٹ 4، بی ٹی آر ایف ایس اور دیگر فائل سسٹمز کی حمایت کرتا ہے جن میں سے بہت سے میں POSIX.1e اے سی ایل شامل ہیں۔ ایکسٹ 3 اور ایکسٹ 4 فائل سسٹمز کے لیے این ایف ایس وی 4 اے سی ایل کے لیے تجرباتی سپورٹ موجود ہے۔ فری بی ایس ڈی یو ایف ایس پر POSIX.1e اے سی ایل، اور یو ایف ایس اور زیڈ ایف ایس پر این ایف ایس وی 4 اے سی ایل کی حمایت کرتا ہے۔ آئی بی ایم زیڈ/او ایس آر اے سی ایف (ریسورس ایکسیس کنٹرول فیسیلٹی) کا استعمال کرتے ہوئے فائل سیکیورٹی کو لاگو کرتا ہے۔ امیگا او ایس فائل سسٹم، امیگا ڈاس ایک واحد صارف او ایس کے لیے نسبتا جدید اجازت کے نظام کی حمایت کرتا ہے۔ امیگا او ایس 1. x میں، فائلوں میں آرکائیو، ریڈ، رائٹ، ایگزیکٹیو اور ڈیلیٹ (اجتماعی طور پر اے آر ڈبلیو ای ڈی کے نام سے جانا جاتا ہے) اجازت/جھنڈے تھے۔ امیگا او ایس 2. x اور اس سے اوپر، اضافی ہولڈ، اسکرپٹ، اور پیور پرمشنز/فلیگ شامل کیے گئے۔ پوزیکس اجازت یونکس جیسے فائل سسٹمز پر اجازتوں کی وضاحت POSIX.1-2017 معیار میں کی گئی ہے، جو تین دائرہ کار یا کلاسیں استعمال کرتا ہے جنہیں صارف، گروپ اور دیگر کے نام سے جانا جاتا ہے۔ جب کوئی فائل بنائی جاتی ہے تو اس کی اجازت اس عمل کے امسک کے ذریعے محدود ہوتی ہے جس نے اسے بنایا تھا۔ کلاسز فائلیں اور ڈائریکٹریز صارف کی ملکیت ہوتی ہیں۔ مالک فائل کی صارف کلاس کا تعین کرتا ہے۔ مخصوص اجازتوں کا اطلاق مالک پر ہوتا ہے۔ فائلوں اور ڈائریکٹریز کو ایک گروپ تفویض کیا جاتا ہے، جو فائل کے گروپ کلاس کی وضاحت کرتا ہے۔ مخصوص اجازتوں کا اطلاق فائل کے گروپ کے اراکین پر ہوتا ہے۔ مالک فائل کے گروپ کا رکن ہو سکتا ہے۔ وہ صارفین جو مالک نہیں ہیں، اور نہ ہی گروپ کے رکن ہیں، فائل کی دیگر کلاس پر مشتمل ہوتے ہیں۔ الگ الگ اجازتوں کا اطلاق دوسروں پر ہوتا ہے۔ موثر اجازتوں کا تعین فرسٹ کلاس کی بنیاد پر کیا جاتا ہے جس میں صارف صارف، گروپ اور پھر دوسروں کی ترتیب میں آتا ہے۔ مثال کے طور پر، صارف جو فائل کا مالک ہے اس کے پاس گروپ کلاس یا دیگر کلاس کو تفویض کردہ اجازتوں سے قطع نظر صارف کلاس کو دی گئی اجازت ہوگی۔ اجازت یونکس جیسے نظام تین مخصوص اجازتوں کو نافذ کرتے ہیں جو ہر کلاس پر لاگو ہوتے ہیں: پڑھنے کی اجازت فائل کو پڑھنے کی صلاحیت فراہم کرتی ہے۔ جب ڈائرکٹری کے لیے سیٹ کیا جاتا ہے، تو یہ اجازت ڈائرکٹری میں موجود فائلوں کے ناموں کو پڑھنے کی صلاحیت دیتی ہے، لیکن ان کے بارے میں مزید معلومات جیسے مواد، فائل کی قسم، سائز، ملکیت، اجازتوں کا پتہ لگانے کی اجازت نہیں دیتی ہے۔ تحریری اجازت کسی فائل میں ترمیم کرنے کی صلاحیت فراہم کرتی ہے۔ جب ڈائرکٹری کے لیے سیٹ کیا جاتا ہے، تو یہ اجازت ڈائرکٹری میں اندراجات میں ترمیم کرنے کی صلاحیت فراہم کرتی ہے، جس میں فائلیں بنانا، فائلیں حذف کرنا اور فائلوں کا نام تبدیل کرنا شامل ہے۔ اس کے لیے ضروری ہے کہ ایکزیکٹ بھی سیٹ ہو ؛ اس کے بغیر، ڈائریکٹریز کے لیے تحریری اجازت بے معنی ہے۔ ایکزیکٹ کی اجازت ایک فائل کو ایکزیکٹ کرنے کی صلاحیت فراہم کرتی ہے۔ یہ اجازت قابل عمل پروگراموں کے لیے مقرر کی جانی چاہیے، تاکہ آپریٹنگ سسٹم انہیں چلا سکے۔ جب ڈائرکٹری کے لیے سیٹ کیا جاتا ہے، تو عمل کی اجازت کی تشریح تلاش کی اجازت کے طور پر کی جاتی ہے: یہ فائل کے مندرجات اور میٹا معلومات تک رسائی حاصل کرنے کی صلاحیت فراہم کرتا ہے اگر اس کا نام معلوم ہو، لیکن ڈائرکٹری کے اندر فائلوں کی فہرست نہ ہو، جب تک کہ ریڈ بھی سیٹ نہ ہو۔ فائل کے بجائے ڈائریکٹری پر اجازتوں کو ترتیب دینے کا اثر "فائل کی اجازت کے سب سے زیادہ غلط فہمی والے مسائل میں سے ایک ہے"۔ جب اجازت مقرر نہیں کی جاتی ہے، تو متعلقہ حقوق سے انکار کر دیا جاتا ہے۔ اے سی ایل پر مبنی نظاموں کے برعکس، یونکس جیسے نظاموں پر اجازت وراثت میں نہیں ملتی ہیں۔ ڈائرکٹری کے اندر بنائی گئی فائلوں کو لازمی طور پر اس ڈائرکٹری کی طرح اجازت نہیں ہوتی ہے۔ سیٹوئڈ، سیٹ گیڈ، اور چپچپا بٹس یونکس جیسے سسٹمز کے ساتھ اجازت کے رویے کو تبدیل کرنا عام طور پر تین اضافی طریقوں کو استعمال کرتا ہے۔ یہ اصل میں صفات ہیں لیکن انہیں اجازت یا طریقے کہا جاتا ہے۔ یہ خاص طریقے مجموعی طور پر کسی فائل یا ڈائرکٹری کے لیے ہوتے ہیں، کسی کلاس کے لیے نہیں، حالانکہ علامتی اشارے میں (نیچے دیکھیں) سیٹوئڈ بٹ صارف کے لیے ٹرائڈ میں سیٹ کیا جاتا ہے، سیٹگڈ بٹ گروپ کے لیے ٹرائڈ میں سیٹ کیا جاتا ہے اور اسٹیکی بٹ دوسروں کے لیے ٹرائڈ میں سیٹ کیا جاتا ہے۔ سیٹ یوزر آئی ڈی، سیٹوئڈ، یا ایس یو آئی ڈی موڈ۔ جب سیٹوئڈ والی فائل پر عمل درآمد کیا جاتا ہے، تو اس کے نتیجے میں ہونے والا عمل مالک طبقے کو دی گئی موثر یوزر آئی ڈی کو فرض کر لے گا۔ یہ صارفین کو عارضی طور پر جڑ (یا کسی دوسرے صارف) کے طور پر استعمال کرنے کے قابل بناتا ہے۔ سیٹ گروپ آئی ڈی، سیٹ گیڈ، یا ایس جی آئی ڈی کی اجازت۔ جب سیٹ گیڈ والی فائل پر عمل کیا جاتا ہے، تو اس کے نتیجے میں ہونے والا عمل گروپ کلاس کو دی گئی گروپ آئی ڈی کو فرض کر لے گا۔ جب سیٹ گیڈ کو ڈائرکٹری پر لاگو کیا جاتا ہے، تو اس ڈائرکٹری کے تحت بنائی گئی نئی فائلیں اور ڈائرکٹریز اس ڈائرکٹری سے اپنے گروپ کے وارث ہوں گی۔ (ڈیفالٹ رویے یہ ہے کہ نئی فائلوں اور ڈائریکٹریز کے گروپ کو ترتیب دیتے وقت موثر صارف کے بنیادی گروپ کا استعمال کیا جائے، سوائے بی ایس ڈی سے ماخوذ سسٹمز کے جو ایسا برتاؤ کرتے ہیں جیسے سیٹگڈ بٹ ہمیشہ تمام ڈائریکٹریز پر سیٹ ہوتا ہے (سیٹوئڈ دیکھیں)۔) چپچپا موڈ (جسے ٹیکسٹ موڈ بھی کہا جاتا ہے)۔ قابل عمل فائلوں پر چپچپا بٹ کا کلاسیکی طرز عمل دانا کی حوصلہ افزائی کرنا رہا ہے کہ اس کے نتیجے میں ہونے والی عمل کی تصویر کو میموری میں ختم ہونے سے آگے برقرار رکھا جائے۔ تاہم، چپچپا بٹ کا اس طرح کا استعمال اب صرف یونیکس جیسے آپریٹنگ سسٹم (ایچ پی-یو ایکس اور یونیکس ویئر) کی ایک اقلیت تک محدود ہے۔ ڈائرکٹری پر، چپچپا اجازت صارفین کو اپنے علاوہ دوسرے صارفین کی ملکیت والی فائلوں کا نام تبدیل کرنے، منتقل کرنے یا حذف کرنے سے روکتی ہے، چاہے ان کے پاس ڈائرکٹری کو لکھنے کی اجازت ہو۔ صرف ڈائرکٹری کا مالک اور سپر یوزر اس سے مستثنی ہیں۔ ان اضافی طریقوں کو سیٹوئڈ بٹ، سیٹگڈ بٹ، اور چپچپا بٹ بھی کہا جاتا ہے، اس حقیقت کی وجہ سے کہ ان میں سے ہر ایک صرف ایک بٹ پر قبضہ کرتا ہے۔ روایتی یونکس اجازتوں کے اشارے علامتی اشارے یونکس اجازتوں کی نمائندگی یا تو علامتی اشارے میں یا آکٹل اشارے میں کی جاتی ہے۔ سب سے عام شکل، جیسا کہ کمانڈ ls-l کے ذریعہ استعمال کیا جاتا ہے، علامتی اشارے ہے۔ ایل ایس ڈسپلے کا پہلا کردار فائل کی قسم کی نشاندہی کرتا ہے اور اس کا اجازتوں سے کوئی تعلق نہیں ہے۔ باقی نو حروف تین سیٹوں میں ہیں، ہر ایک تین حروف کے طور پر اجازتوں کی ایک کلاس کی نمائندگی کرتا ہے۔ پہلا سیٹ صارف کلاس کی نمائندگی کرتا ہے۔ دوسرا سیٹ گروپ کلاس کی نمائندگی کرتا ہے۔ تیسرا سیٹ دوسروں کی کلاس کی نمائندگی کرتا ہے۔ تین حروف میں سے ہر ایک پڑھنے، لکھنے اور انجام دینے کی اجازت کی نمائندگی کرتا ہے: r اگر پڑھنے کی اجازت ہے،-اگر نہیں ہے۔ اگر لکھنے کی اجازت ہے،-اگر نہیں ہے۔ x اگر پھانسی کی اجازت ہے،-اگر نہیں ہے۔ علامتی اشارے کی کچھ مثالیں درج ذیل ہیں:-rwxr-xr-x: ایک باقاعدہ فائل جس کی صارف کلاس کو مکمل اجازت ہوتی ہے اور جس کے گروپ اور دیگر کلاسوں کو صرف پڑھنے اور انجام دینے کی اجازت ہوتی ہے۔ سی آر ڈبلیو-آر ڈبلیو-آر---ایک خاص کردار والی فائل جس کے صارف اور گروپ کلاسوں کو پڑھنے اور لکھنے کی اجازت ہوتی ہے اور جس کی دیگر کلاسوں کو صرف پڑھنے کی اجازت ہوتی ہے۔ ڈائرکٹری جس کی صارف کلاس نے اجازت کو پڑھا اور اس پر عمل درآمد کیا ہے اور جس کے گروپ اور دیگر کلاسوں کو کوئی اجازت نہیں ہے۔ کچھ اجازت کے نظاموں میں ls-l ڈسپلے میں اضافی علامتیں اضافی اجازت کی خصوصیات کی نمائندگی کرتی ہیں: + (پلس) لاحقہ ایک رسائی کنٹرول لسٹ کی نشاندہی کرتا ہے جو اضافی اجازتوں کو کنٹرول کر سکتا ہے۔ ۔ (ڈاٹ) لاحقہ اس بات کی نشاندہی کرتا ہے کہ SELinux سیاق و سباق موجود ہے۔ تفصیلات کو ls-Z کمانڈ کے ساتھ درج کیا جا سکتا ہے۔ @لاحقہ اس بات کی نشاندہی کرتا ہے کہ توسیع شدہ فائل کی صفات موجود ہیں۔ سیٹوئڈ، سیٹگڈ اور چپچپا یا متن کی صفات کی نمائندگی کرنے کے لیے، قابل عمل کردار (x یا-) میں ترمیم کی جاتی ہے۔ اگرچہ یہ صفات مجموعی فائل کو متاثر کرتی ہیں، نہ صرف ایک کلاس کے صارفین، سیٹوئڈ خاصیت صارف کے لیے تثلیث میں قابل عمل کردار کو تبدیل کرتی ہے، سیٹ گیڈ خاصیت گروپ کے لیے تثلیث میں قابل عمل کردار کو تبدیل کرتی ہے اور چپچپا یا ٹیکسٹ خاصیت دوسروں کے لیے تثلیث میں قابل عمل کردار کو تبدیل کرتی ہے۔ سیٹوئڈ یا سیٹگڈ صفات کے لیے، پہلے یا دوسرے تثلیث میں، x s بن جاتا ہے اور-S بن جاتا ہے۔ چپچپا یا متن کی خاصیت کے لیے، تیسرے تثلیث میں، x t بن جاتا ہے اور-T بن جاتا ہے۔ یہاں ایک مثال ہے:-rwsr-Sr-t: ایک فائل جس کے صارف طبقے نے پڑھنے، لکھنے اور اجازتوں کو انجام دیا ہے ؛ جس کی گروپ کلاس کو پڑھنے کی اجازت ہے ؛ جس کی دوسری کلاس نے پڑھنے اور اجازتوں کو انجام دیا ہے ؛ اور جس میں سیٹوئڈ، سیٹگڈ اور چپچپا صفات سیٹ ہیں۔ عددی نوٹیشن یونکس اجازتوں کی نمائندگی کرنے کا ایک اور طریقہ ایک آکٹل (بیس-8) نوٹیشن ہے جیسا کہ سٹیٹ-c% a سے ظاہر ہوتا ہے۔ یہ اشارے کم از کم تین ہندسوں پر مشتمل ہوتے ہیں۔ تین سب سے دائیں ہندسوں میں سے ہر ایک اجازت کے مختلف جزو کی نمائندگی کرتا ہے: مالک، گروپ، اور دیگر۔ (اگر چوتھا ہندسہ موجود ہے، تو بائیں طرف کا (اعلی درجے کا) ہندسہ تین اضافی صفات، سیٹوئڈ بٹ، سیٹگڈ بٹ اور چپچپا بٹ کو مخاطب کرتا ہے۔) ان ہندسوں میں سے ہر ایک بائنری عددی نظام میں اس کے جزو بٹس کا مجموعہ ہے۔ نتیجے کے طور پر، مخصوص بٹس رقم میں اضافہ کرتے ہیں کیونکہ اس کی نمائندگی ایک عدد کے ذریعے کی جاتی ہے: ریڈ بٹ اپنے کل میں 4 کا اضافہ کرتا ہے (بائنری 100 میں)، رائٹ بٹ اپنے کل میں 2 کا اضافہ کرتا ہے (بائنری 010 میں)، اور ایگزیکٹیو بٹ اپنے کل میں 1 کا اضافہ کرتا ہے (بائنری 001 میں)۔ یہ اقدار کبھی بھی مبہم امتزاج پیدا نہیں کرتی ہیں۔ ہر رقم اجازتوں کے ایک مخصوص سیٹ کی نمائندگی کرتی ہے۔ مزید تکنیکی طور پر، یہ بٹ فیلڈ کی آکٹل نمائندگی ہے-ہر بٹ ایک علیحدہ اجازت کا حوالہ دیتا ہے، اور آکٹل میں ایک وقت میں 3 بٹس کو گروپ کرنا صارف، گروپ اور دیگر کے ذریعہ ان اجازتوں کو گروپ کرنے سے مطابقت رکھتا ہے۔ یہ آکٹل نوٹیشن میں دیئے گئے علامتی نوٹیشن سیکشن کی مثالیں ہیں: صارف نجی گروپ کچھ نظام ہر صارف کے لیے ایک نیا گروپ-ایک "صارف نجی گروپ"-بنا کر صارفین اور گروپوں کے روایتی پوزیکس ماڈل سے الگ ہو جاتے ہیں۔ یہ فرض کرتے ہوئے کہ ہر صارف اپنے صارف نجی گروپ کا واحد رکن ہے، یہ اسکیم دوسرے صارفین کو عام ڈائریکٹریز میں نئی بنائی گئی فائلوں پر لکھنے کی اجازت دیے بغیر 02 کے اماسک کو استعمال کرنے کی اجازت دیتی ہے کیونکہ ایسی فائلیں تخلیق کرنے والے صارف کے نجی گروپ کو تفویض کی جاتی ہیں۔ تاہم، جب فائلوں کا اشتراک کرنا مطلوب ہوتا ہے، تو منتظم مطلوبہ صارفین پر مشتمل ایک گروپ بنا سکتا ہے، نئے گروپ کو تفویض کردہ گروپ لکھنے کے قابل ڈائرکٹری بنا سکتا ہے، اور، سب سے اہم بات، ڈائرکٹری سیٹ گیڈ بنا سکتا ہے۔ اسے سیٹ گیڈ بنانے سے اس میں بنائی گئی فائلیں اسی گروپ کو تفویض کی جائیں گی جیسا کہ ڈائرکٹری اور 02 اماسک (صارف کے نجی گروپوں کا استعمال کرکے فعال) اس بات کو یقینی بنائے گا کہ گروپ کے دوسرے ممبران ان فائلوں کو لکھ سکیں گے۔ یہ بھی دیکھیں۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔۔ lsattr فہرست صفات پوزیکس اماسک یوزر شناخت کنندہ (یونکس) گروپ شناخت کنندہ (یونکس) حوالہ جات بیرونی لنکس لینکس کک بک: گروپس اور ان میں کیسے کام کریں بذریعہ مائیکل اسٹٹز 2004