محدود کردن دسترسی های یک کاربر
سلام
آیا می تونم سطح دسترسی کاربری که تعریف می کنم طوری تعیین کنم که فقط به دایرکتوری {home{username خودش محدود باشه و تنها در این دایرکتوری بتونه عملیات خواندن و نوشتن رو انجام بده و در سایر دایرکتوری ها مجوز هیچ کاری رو نداشته باشه؟
3 پاسخ
ممنونم از توضیحات خوب و جامعت
من فقط می خوام کاربر x به Home Directory کاربر y دسترسی نداشته باشه و بر عکس. اما هر کدومشون بتونن دستورات و کارهای معمولی رو انجام بدن
با این تفاصیر بهترین راه حل استفاده از روش آخره ؟؟؟؟
سلام ، در وهله اول به شما صمیمانه پیشنهاد می کنم که اصلا این کار رو انجام ندید چون در این صورت کاربر حتی نمیتونه دستورات اولیه و ساده سیستم مثل cp ، ls و ... رو اجرا کنه. اگر چه روش هایی برای انجام این کار هست ....
برای رسیدن به هدفتون چند تا روش هست که خدمتتون میگم. اولین راه اینه که اول باید اطمینان حاصل کنید که تمامی دایرکتوری های موجود در دایرکتوری روت (/) بیت execute یا دسترسی اجرایی برای گروه Others غیرفعال هست . شما با قالب دستوری زیر میتونید بیت execute رو از دایرکتوری بگیرید :
$ chmod o-x <dir>
حالا دستور فوق رو برای دایرکتوری هایی که یوزرتون عضو اون گروه هستش باید اجرا کنید تا بیت execute رو از دایرکتوری بگیرید :
$ chmod g-x <dir>
دستور بالا شاید در عمل اتفاق نیوفته چون خیلی از پراسس ها روی دایرکتوری های سطوح بالایی ساختار سلسله مراتبی لینوکس مثل روت () و یا var دارن کار می کنن. این روش خیلی میتونه اذییتون کنه پس بهتره بیخیالش بشید ...
روش بعدی استفاده از chroot jail هست ، فکر می کنم این بهترین گزینه باشه چون که یوزر بعد از لاگین بلافاصله وارد یک محیط Restricted میشه.
یه راه بی دردسر تر هم براتون سراغ دارم و اونم اینه که home directory یوزر رو با دستور زیر کاری کنید که به غیر از خودش کسی دیگه ای نتونه به پروفایل کاربریش دسترسی داشته باشه :
$ chmod 700 user_home_directory
بله دقیقا ، راحت ترین و بهترین راه