آرش حقیقت
آرش حقیقت
خواندن ۳ دقیقه·۸ سال پیش

سطح دسترسی (پرمیشن) در لینوکس؟

امیدوارم شما قبل از خوندن این پست پرمیشن توی لینوکس رو بلد باشین و ازش استفاده کرده باشین. اگر بلد نیستین اصلا نگران نباشین چون الان می‌خوام خیلی ساده توضیح بدم تا یاد بگیرین یا مرور کنین (:

اول یک فایل می‌سازم و نشون میدم که چطور میشه سطح دسترسی یا همون پرمیشن مربوط بهش رو ببینیم.
من با 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 | || ||
آموزشسیستم‌عامللینوکس
شاید از این پست‌ها خوشتان بیاید