در سیستم عامل های شبیه به Unix مانند لینوکس، کاربر root در حقیقت یک acount یا username میباشد که به صورت پیش فرض میتواند تمام پوشه ها و فایل ها را روی سیستم تغییر دهد. در این پست ما نحوه غیر قابل حذف کردن دایرکتوری ها یا فایل ها (حتی توسط کاربر root) در لینوکس را به شما نمایش خواهیم داد.
برای اینکه یک فایل را غیرقابل حذف کنیم (توسط هر کاربری از سیستم مانند root) شما نیاز دارید که این فایل را با استفاده از دستور chattr غیر قابل ویرایش و تغییر کنید. این دستور خصوصیات فایل (Attribute) را روی یک فایل سیستم لینوکسی تغییر میدهد.
نحوه غیر فعال کردن حذف یک فایل در لینوکس
دستور زیر باعث میشود که فایل /backups/passwd غیرقابل حذف گردد. با استفاده از این دستور، یک فایل را به هر شیوه ی ممکنی، دیگر نمیتوان تغییر داد :
توجه کنید که شما برای تعریف یا حذف این ویژگی (attribute) نیاز به سطح دسترسی super user (دسترسی sudo) با استفاده از دستور sudo دارید.
برای مشاهده ویژگی های (attribute) یک فایل همانند زیر از دستور lsattr استفاده کنید.
اکنون اقدام به حذف فایل مورد نظر (که آنرا را غیرقابل حذف کردیم) میکنیم هم با یک یوزر نرمال و هم با استفاده از کاربر root :
نحوه غیر قابل حذف کردن یک دایرکتوری با تمام زیر شاخه هایش در لینوکس
با استفاده از آپشن -R شما میتوانید به صورت recursive ویژگی های دایرکتوری های و محتوای آنها را همانند زیر تغییر دهید.
برای اینکه مجدد فایل را قابل حذف کنیم از آپشن -i برای حذف attribute بالا همانند زیر استفاده میکنیم.
برای کسب اطلاعات بیشتر توصیه میشود مقاله های زیر را مطالعه فرمایید.
دستور chattr برای غیر قابل ویرایش کردن فایل های مهم در لینوکس
مدیریت User و Group ها و فعال کردن دسترسی Sudo روی User ها
نحوه پیدا کردن فایل ها به همراه Permission های SUID و SGID در Linux (به زودی)
تبدیل Permission های rwx به فرمت Octal در لینوکس
در این پست همانطور که نمایش دادیم نحوه غیر قابل حذف کردن فایل ها و دایرکتوری ها حتی توسط کاربر root در لینوکس را به شما شرح دادیم. هر گونه نظر یا سوالی را در همین جا با ما مطرح کنید.
برای اینکه یک فایل را غیرقابل حذف کنیم (توسط هر کاربری از سیستم مانند root) شما نیاز دارید که این فایل را با استفاده از دستور chattr غیر قابل ویرایش و تغییر کنید. این دستور خصوصیات فایل (Attribute) را روی یک فایل سیستم لینوکسی تغییر میدهد.
نحوه غیر فعال کردن حذف یک فایل در لینوکس
دستور زیر باعث میشود که فایل /backups/passwd غیرقابل حذف گردد. با استفاده از این دستور، یک فایل را به هر شیوه ی ممکنی، دیگر نمیتوان تغییر داد :
- نمیتواند حذف یا rename شود.
- شما حتی نمیتوانید لینکی به آن ایجاد کنید.
- همچنین هیچ دیتایی نمیتواند در این فایل نوشته شود.
توجه کنید که شما برای تعریف یا حذف این ویژگی (attribute) نیاز به سطح دسترسی super user (دسترسی sudo) با استفاده از دستور sudo دارید.
کد PHP:
$ sudo chattr +i /backups/passwd
OR
$ sudo chattr +i -V /backups/passwd
برای مشاهده ویژگی های (attribute) یک فایل همانند زیر از دستور lsattr استفاده کنید.
کد PHP:
$ lsattr /backups/passwd
اکنون اقدام به حذف فایل مورد نظر (که آنرا را غیرقابل حذف کردیم) میکنیم هم با یک یوزر نرمال و هم با استفاده از کاربر root :
کد PHP:
$ rm /backups/passwd
$ sudo rm /backups/passwd
نحوه غیر قابل حذف کردن یک دایرکتوری با تمام زیر شاخه هایش در لینوکس
با استفاده از آپشن -R شما میتوانید به صورت recursive ویژگی های دایرکتوری های و محتوای آنها را همانند زیر تغییر دهید.
کد PHP:
$ sudo chattr +i -RV /backups/
برای اینکه مجدد فایل را قابل حذف کنیم از آپشن -i برای حذف attribute بالا همانند زیر استفاده میکنیم.
کد PHP:
$ sudo chattr -i /backups/passwd
برای کسب اطلاعات بیشتر توصیه میشود مقاله های زیر را مطالعه فرمایید.
دستور chattr برای غیر قابل ویرایش کردن فایل های مهم در لینوکس
مدیریت User و Group ها و فعال کردن دسترسی Sudo روی User ها
نحوه پیدا کردن فایل ها به همراه Permission های SUID و SGID در Linux (به زودی)
تبدیل Permission های rwx به فرمت Octal در لینوکس
در این پست همانطور که نمایش دادیم نحوه غیر قابل حذف کردن فایل ها و دایرکتوری ها حتی توسط کاربر root در لینوکس را به شما شرح دادیم. هر گونه نظر یا سوالی را در همین جا با ما مطرح کنید.