امیدوارم شما قبل از خوندن این پست پرمیشن توی لینوکس رو بلد باشین و ازش استفاده کرده باشین. اگر بلد نیستین اصلا نگران نباشین چون الان میخوام خیلی ساده توضیح بدم تا یاد بگیرین یا مرور کنین (:
اول یک فایل میسازم و نشون میدم که چطور میشه سطح دسترسی یا همون پرمیشن مربوط بهش رو ببینیم.
من با touch test یک فایل جدید میسازم و با دستور ls -l میخوام لیست مشخصات فایل رو بهم نشون بده:
arash@FunLife:~> ls -l test -rw-r--r-- 1 arash users 0 Dec 24 00:55 test
همونطور که میبینید در ابتدای خط نوشته -rw-r–r– ، که داره دسترسی فایل رو نشون میده.
خب بهتره اول به قطعات کوچکتر بشکنیماش تا راحتتر متوجه بشیم اون علایم و حروف دقیقا چی هستن.
شاید بهتر باشه اینطوری ببینیدش که از چپ به راست اول یک – هست که میتونه هر کدوم از کاراکترهای -، d، l، s، t، یا _ باشه که چون پرمیشنهای پیشرفته محسوب میشن، اینجا توضیح نمیدم و صرفا بدونید اگر – بود یعنی فایل معمولی هست، اگر d دیدید، شما با یک دایرکتوری سر و کار دارید و اگر l بود، فایل یا دایرکتوری دارید که یک symbolic link هست.
غیر از اون فقط ۹ کاراکتر دیگه باقی میمونه که ۳ دسته ۳تایی هستن و خوشبختانه دارای ترتیب و معنی مشخص (: پس یکی از دستهها رو توضیح میدم و بعد میگم ۲ تای دیگه چی رو نشون میدن.
هر دسته ۳ کاراکتر داره که یا یک حرف هستن یا یک – که نشون دهنده فعال بودن اون دسترسی هستن.
اگر همه دسترسیها وجود داشته باشه، اینطوری دیده میشه: rwx که نشاندهنده read، write و execute هستن.
حالا برای هر دسته همون تکرار میشه و چون گفتم ۳ دسته داریم، هر کدوم از چپ به راست نشوندهنده دسترسیهای بالا برای user، group و other هستن که فکر میکنم اگر یکم آشنایی داشته باشین، نیازی به توضیح نداره.
حالا که یک یادآوری سریع داشتیم بریم سر اصل مطلب و توضیح بدیم چطور باید با پرمیشنهای عددی مثل ۶۴۴، ۵۶۶ و ۷۷۷ که از معروفها هستن.
کافیه بدونید که پرمیشن rwx به ترتیب برابر اعداد ۴۲۱ هست که کافبه اونها رو جمع بزنید تا به مجموع ۷ که بالاترین صطح دسترسی هست برسید یعنی خواندن، نوشتن و اجرا کردن به صورت همزمان که چون ۳ دسته داشتیم میتونه به شکل ۷۷۷ یا هر مجموعی از اعداد ۴، ۲ و ۱ باشه.
اگر براتون عجیبه که این اعداد از کجا میان کافیه بهتون بگم که دسترسی rwx ، سه بیت در کنار هم هستن که صفر و یک میشن تا نشون بدن چه دسترسیهایی موجوده و برابر ارزش اونها در باینری وقتی تبدیل به دسیمال میشن تبدیل به اعداد ۱، ۲ و ۴ میشن (:
در آخر انگلیسها گفتن:
“A picture is worth a thousand words“
در آخر باید بگم اگر با تمام این توضیحات به هر دلیل نمیخواهید از اعداد استفاده کنید، راههای دیگری مثل chmod uo+rx test که داره میگه دسترسی خواندن و اجرا شدن را به user و other بده یا chmod uo-rx test که دقیقا برعکس قبلی هست هم وجود داره (:
_____________________________ < *nix permissions made easy! > ----------------------------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||