آذرسیس

5 Chattr commands for Immutable or immutable important files in Linux
5/5 - (2 امتیاز)

دستور Chattr ابزار خط فرمان Linux است که برای Set/ Unset کردن ویژگی‌های خاص یک فایل در سیستم لینوکس استفاده می‌شود تا حذف یا تغییر تصادفی فایل‌ها و پوشه‌های مهم را تضمین کند، حتی اگر به عنوان کاربر اصلی وارد شده باشید. در Linux Native Filesystems، یعنی ext2، ext3، ext4، btrfs و… از flagها پشتیبانی می‌کند ولی Non-Native FS پشتیبانی نمی شود.

هنگامی که ویژگی ها با دستور Chattr تنظیم می شوند، نمی توان فایل یا پوشه را حذف کرد یا تغییر داد، حتی اگر کسی مجوز داشته باشد. این آموزش برای تنظیم ویژگی‌ها در فایل های سیستمی مانند فایل‌های Passwd و Shadow که اطلاعات کاربر در آن‌ها وجود دارد بسیار مفید است. همراه آذرسیس باشید و از آموزش های پیشرفته دستور Chattr لذت ببرید.

5 دستور Chattr برای Immutable یا تغییرناپذیر کردن فایل های مهم در لینوکس

نکات مهم برای تغییرناپذیر کردن فایل ها در لینوکس

نکات زیر را در 5 دستور Chattr برای Immutable یا تغییرناپذیر کردن فایل های مهم در لینوکس، باید در نظر بگیرید:

1- Syntax of Chattr در دستور Chattr

chattr [operator] [flags] [filename]

2- ویژگی ها و Flag های در دستور Chattr

در زیر لیستی از ویژگی‌های رایج و Flag های مرتبط ارائه شده است که می توان با استفاده از دستور Chattr Set/ Unset کرد.

  1. اگر به فایلی با مجموعه ویژگی “A” دسترسی پیدا شود، رکورد زمان آن به روز نمی شود.
  2. اگر فایلی با مجموعه ویژگی “S” اصلاح شود، تغییرات به‌طور همزمان روی دیسک به‌روزرسانی می‌شوند.
  3. فایلی که با ویژگی “a” تنظیم شده است، فقط می تواند در حالت ضمیمه برای نوشتن باز شود.
  4. فایلی که با ویژگی “i” تنظیم شده است، نمی توان آن را تغییر داد (غیرقابل تغییر). به این معنی که بدون تغییر نام و بدون ایجاد پیوند نمادین، بدون اجرا، بدون قابلیت نوشتن، فقط Superuser می تواند ویژگی را تنظیم کند.
  5. فایلی که با ویژگی “j” تنظیم شده است، تمام اطلاعات آن قبل از به روز رسانی به خود فایل در ext3 Journal به روز می شود.
  6. فایلی که با ویژگی “t” تنظیم شده است، Tail-Merging نمی شود.
  7. فایلی با ویژگی “d”، دیگر کاندیدای پشتیبان گیری در هنگام اجرای فرآیند Dump نخواهد بود.
  8. هنگامی که یک فایل دارای ویژگی “u” حذف می شود، داده های آن ذخیره می شود. این مورد به کاربر امکان می دهد تا درخواست حذف آن را بکند.

3- اپراتور دستور Chattr

  1. + : Attribute را به ویژگی موجود فایل ها اضافه می کند.
  2. – :Attribute را از ویژگی موجود فایل ها حذف می کند.
  3. = : ویژگی های موجودی که فایل ها دارند را حفظ می کند.

در اینجا، برخی از نمونه‌های دستور Chattr را برای Set/ Unset کردن ویژگی‌های یک فایل و پوشه‌ها آماده کرده ایم.

نکات مهم برای تغییرناپذیر کردن فایل ها در لینوکس

5 دستور Chattr برای Immutable یا تغییرناپذیر کردن فایل های مهم در لینوکس

5 دستور Chattr برای Immutable یا تغییرناپذیر کردن فایل های مهم در لینوکس به شکل زیر است، با اندکی توجه می توانید به مفاهیم دست یابید. اما در صوررت وجود هرگونه سوال کارشناسان ما به صورت 24 ساعته در اختیار شما عزیزان می باشند:

1. نحوه اضافه کردن ویژگی ها به فایل ها برای ایمن شدن از حذف

برای این منظور، ما به ترتیب از Folder Demo و File Important_File.Conf استفاده کرده‌ایم. قبل از تنظیم ویژگی‌ها مطمئن شوید که فایل‌های موجود دارای ویژگی‌هایی هستند که با استفاده از دستور ls -l تنظیم شده‌اند، نتایج را ببینید در حال حاضر هیچ ویژگی تنظیم نشده است.

[root@admin admin]# ls -l
total 0
drwxr-xr-x. 2 root root 6 Aug 31 18:02 demo
-rwxrwxrwx. 1 root root 0 Aug 31 17:42 important_file.conf

برای تنظیم ویژگی ها، از علامت + و برای از تنظیم خارج کردن از علامت – با دستور Chattr استفاده کنید، بنابراین Immutable Bit را روی فایل‌ها با Flags +i تنظیم کنید تا از حذف فایل جلوگیری شود، حتی یک کاربر root اجازه حذف آن را ندارد.

نکته: Immutable Bt +i را فقط می‌توان توسط کاربر Superuser (یعنی root) تنظیم کرد یا کاربری با امتیازات Sudo می‌تواند تنظیم کند. پس از تنظیم Immutable Bit، ویژگی را با دستور ‘lsattr’ تأیید کنید.

[root@admin admin]# lsattr
----i----------- ./demo
----i----------- ./important_file.conf
[root@admin admin]# mv demo/ demo_alter
mv: cannot move âdemo/â to âdemo_alterâ: Operation not permitted
[root@admin admin]# chmod 755 important_file.conf
chmod: changing permissions of âimportant_file.confâ: Operation not permitted

2. نحوه حذف ویژگی در File ها

در مثال بالا نحوه تنظیم ویژگی برای ایمن سازی و جلوگیری از حذف تصادفی فایل ها را دیدیم، در این مثال نحوه بازنشانی مجوزها (Unset Attribute) را خواهیم دید و اجازه می دهد تا یک فایل را تغییر پذیر کنید یا با استفاده از i Flag- تغییر دهید.

[root@admin admin]# chattr -i demo/ important_file.conf

پس از بازنشانی مجوزها، وضعیت تغییرناپذیر فایل ها را با استفاده از دستور lsattr بررسی کنید.

[root@admin admin]# lsattr
---------------- ./demo
---------------- ./important_file.conf

در نتایج بالا مشاهده می کنید که Flag “-i” حذف شده است، به این معنی که می توانید با خیال راحت تمام فایل و پوشه موجود در پوشه Admin را حذف کنید:

[root@admin admin]# rm -rf *
[root@admin admin]# ls -l
total 0

3. نحوه ایمن کردن فایل های /etc/passwd  و /etc/shadow

تنظیم ویژگی Immutable روی فایل های /etc/passwd یا /etc/shadow، آن ها را از حذف یا دستکاری تصادفی ایمن می‌کند و همچنین ایجاد حساب کاربری را غیر فعال می‌کند.

[root@ admin admin]# chattr +i /etc/passwd
[root@ admin admin]# chattr +i /etc/shadow

اکنون اگر یک کاربر جدید بسازید با پیغام خطایی مواجه می شوید که می گوید “Cannot Open /etc/passwd”.

[root@ admin admin]# useradd admin
useradd: cannot open /etc/passwd

به این ترتیب می‌توانید مجوزهای تغییرناپذیر را روی فایل‌های مهم یا فایل‌های پیکربندی سیستم خود تنظیم کنید تا از حذف آن جلوگیری کنید.

5 دستور Chattr برای Immutable یا تغییرناپذیر کردن فایل های مهم در لینوکس

4. اضافه کردن داده ها بدون تغییر داده های موجود در یک فایل

فرض کنید فقط می‌خواهید به همه اجازه دهید داده‌ها را بدون تغییر یا اصلاح داده‌های وارد شده به فایل اضافه کنند، می‌توانید از ویژگی «a» به صورت زیر استفاده کنید.

[root@admin admin]# chattr +a example.txt
[root@admin admin]# lsattr example.txt
-----a---------- example.txt

پس از تنظیم Append Mode، فایل را می توانید فقط برای نوشتن داده ها در حالت پیوست باز کنید. شما می توانید Append Attribute را به صورت زیر تنظیم کنید.

[root@admin admin]# chattr -a example.txt

اکنون سعی کنید محتوای موجود را در فایل Example.txt جایگزین کنید، پس از این کار با خطای “Operation Not Permitted” مواجه خواهید شد.

[root@admin admin]# echo "replace contain on file." > example.txt
-bash: example.txt: Operation not permitted

اکنون سعی کنید محتوا جدید را روی فایل Example.txt اضافه کنید و آن را تأیید کنید.

[root@admin admin]# echo "replace contain on file." >> example.txt
[root@admin admin]# cat example.txt
Here is the example to test 'a' attribute mean append only.
replace contain on file.

5. نحوه ایمن سازی دایرکتوری ها

برای ایمن سازی کل دایرکتوری و فایل های آن، از سوئیچ Flag -R (به صورت بازگشتی) با +i به همراه مسیر کامل پوشه استفاده کنید.

[root@admin admin]# chattr -R +i myfolder

پس از تنظیم Recursively Attribute، سعی کنید پوشه و فایل های آن را حذف کنید.

[root@admin admin]# rm -rf myfolder/
rm: cannot remove 'myfolder/': Operation not permitted

برای Unset Permission از همان حالت سوئیچ R- با Flag -i به همراه مسیر کامل پوشه استفاده کنید.

[root@admin admin]# chattr -R -i myfolder

سخن آخر

امیدواریم آموزش 5 دستور Chattr برای Immutable یا تغییر ناپذیر کردن فایل های مهم در لینوکس، برای شما عزیزان مفید واقع شود. برای کسب اطلاعات بیشتر در جهت پیشبرد اهداف بیزینس تان در فضای آنلاین، نگاهی به تعرفه های مشخص شده در زمینه ارتقا وب سایت های خود در وب سایت رسمی آذرسیس بیندازید و از داشتن یک مرجع راهنما کامل در بروز هرگونه سوالات و ایرادات فنی مطمئن باشید. برای دریافت راهنمایی رایگان می توانید یک تیکت رایگان در صفحه اصلی ما ایجاد کرده و منتظر دریافت فوری پاسخ برای آن بمانید. به خاطر داشته باشید که ما همواره در تیم شما هستیم!


4 Comments

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *