Umask
ممكنه كه با كلمه umask برخورد کرده باشید. بد نیست اینجا یه توضیحی راجع به این umask بدم، چون خودم هم با این مسئله برخورد کرده بودم که این چه صیغه ایه!
توی لینوکس همونطوری که می دونید یه بحثی هست به اسم سطوح دسترسی یا همون permissions. وقتی یه فایل یا فولدر دارین، اون فایل یا فولدر دارای یه سری سطوح دسترسی هستش. این دسترسی ها مشخص می کنن که چه کسانی می تونن از اون فایل یا فولدر استفاده کنن. اگر شما جلوی اعلان سیستم محیط ترمینال یه دستور لیست گیری با سوئیچ l- صادر کنید، احتمالا با یه خروجی شبیه این مواجه میشین:
drwxr-xr-x 2 root root 4096 Dec 12 15:30 bin
drwxr-xr-x 4 root root 1024 Dec 12 15:48 boot
drwxr-xr-x 11 root root 7000 Dec 19 16:17 dev
drwxr-xr-x 85 root root 12288 Dec 20 15:04 etc
drwxr-xr-x 13 root root 4096 Dec 17 18:24 home
drwxr-xr-x 8 root root 4096 Dec 17 19:38 lib
اون حروفی که سمت چپ تصویر می بینید، در واقع معرف همون سطوح دسترسی هستند. حرف d یعنی اینکه این مورد دایرکتوری هستش، حرف r یعنی اجازه دسترسی خوندن به اون آیتم وجود داره، حرف w اجازه نوشتن رو مشخص می کنه و حرف x هم یعنی اینکه این فایل آیا اجازه اجرا توسط کاربر مربوطه رو داره یا نه.
حالا چرا این حروف گاهی تکرار شدن؟ جواب اینه که برای هر آیتم، ما سه تا حالت داریم: مالک، گروه مالک و سایرین. مالک که مشخصه، کسی که فایل یا فولدر را ایجاد کرده یا به نوعی صاحب اونه. حرف دوم تا چهارم وضعیت دسترسی مالک رو برای اون آیتم مشخصمی کنه.
هر کاربری توی لینوکس متعلق به حداقل یک گروه هست. حرف پنجم تا هفتم مشخص کننده سطح دسترسی گروه مالک به آیتم مربوطه است. سایرین (که نه مالک اون فایل هستند، نه جزء گروه کاربرهای هم گروه با مالک فایل) وضعیت دسترسیشون از حرف هشتم تا دهم مشخص میشه.
حالا می رسیم به umask. به صورت پیش فرض برای ایجاد فایل ها یا فولدر ها یه سطح دسترسی توی سیستم تعریف میشه. منتها نه به صورت سطح دسترسی، بلکه به صورت برعکسش! یعنی اینکه شما اون دسترسی پیش فرضی که نمی خواهید به کاربران بدید رو در سیستم تعریف می کنید.
سیستم چطور متوجه سطح دسترسی میشه؟ میاد و اون عددی که شما به عنوان umask دادید رو در نظر می گیره. برای فایل ها از عدد ۶۶۶ و برای فولدر ها از عدد ۷۷۷ کم می کنه. حاصلی که باقی می مونه رو برای سطح دسترسی پیش فرض سیستم در نظر می گیره. مثلا اگر umask رو برابر ۰۲۲ تعریف کرده باشین، سیستم به فایل ها سطح دسترسی ۶۴۴ (به معنی --rw-r--r) و به فولدر ها دسترسي ۷۵۵ (يا rwxr-xr-x) رو اعطا می کنه.
