chattr: Максималната защита на файлове / папки в Linux чрез атрибути или флагове

Е ... не всичко може да бъде игри, не ми е намерение да публикувам само публикации, говорещи за игри 😉 ... Не съм потребител, който играе много, у дома оставям това на приятелката си (който сега е закачен Симс 4), затова ме мотивира повече да публикувам повече технически статии, относно команди или съвети в терминала.

В Linux имаме някои разрешения които със сигурност решават почти всеки проблем, можем да определим кой потребител или група потребители имат достъп до определен ресурс, папка, услуга. Има обаче случаи, когато разрешенията не са точно това, от което се нуждаем, тъй като има ситуации, в които искаме дори root да не може да извърши определено действие.

Да предположим, че имаме папка или файл, които не искаме да бъдат изтрити, да тръгваме ... нито от нашия потребител, нито от друг на компютъра (хм ... приятелката ми например хаха), или дори root не може да го изтрие, как да постигна това? ... разрешенията няма да ни помогнат, защото root е the-fucking-master, той може да изтрие всичко, така че там влизат атрибутите на файла или папката.

chattr + i

Да предположим, че искаме да защитим файл, така че да не може да бъде изтрит, той е: пароли.txt , местоположението ви е (например) $ HOME / passwords.txt

За да зададете атрибут само за четене (т.е. без модификация и без изтриване), би било:

sudo chattr +i $HOME/passwords.txt

Както можете да видите, ние се нуждаем от административни разрешения за параметъра + i, което между другото, + i означава, че файлът ще бъде неизменим, знаете ли, той не може да бъде изтрит, не може да се промени по никакъв смисъл.

След това можете да опитате да изтриете файла, дори като използвате sudo ... ще видите, че няма да можете, ето екранна снимка:

chattr_1

За да изброим или видим атрибутите, които даден файл има, можем да използваме командата lsattr, например:

lsattr passwords.txt

След това да премахнете защитата, вместо да я използвате +i ние използваме -i и voila 😉

chattr + a

Както току-що видяхме, параметърът + i ни позволява да го защитим изцяло, но има моменти, когато имам нужда от определен файл, за да мога да бъда модифициран, НО без да променя оригиналното му съдържание. Например имам списък и искам да се добавят нови редове и информация с помощта на ехо, но без да се променят предишните, за това:

sudo chattr +a $HOME/passwords.txt

С това, нека опитаме да напишем нещо ново във файла:

echo "Prueba" > $HOME/passwords.txt

Ще забележите, че се появява грешка ... обаче, ако добавим съдържание вместо да заменим (използвайки >>, а не>):

echo "Prueba" >> $HOME/passwords.txt

Тук можем.

Край!

Знам, че някой знаещ, когато вижда, че дори с root не може да изтрие / модифицира файл, може да провери неговите атрибути ... но, ей! ... Колко пъти, когато забележите нещо подобно, спирате да мислите за атрибутите? ... Казвам това, защото като цяло просто смятаме, че HDD или неговият сектор е повреден или че системата просто е полудяла 😀

Е, няма какво още да добавите ... Мисля, че ще използвам това от +i за да спре изтеглянето на нещо, което моята приятелка изтегля ... ¬_¬ ... хм ... не искаше ли изтегляне на симс 4 Безплатно? ... Мисля, че ще ви науча на две неща относно лицензите и че те не трябва да се нарушават 😀

Поздрави!


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.

  1.   прекрати каза той

    Интересно е да се знае за този инструмент, какво ще стане, ако ми причини известно любопитство, по някакъв начин не би било нещо подобно на битови разрешения? Т.е. setuid, setgid и sticky bit? Ако не, защо? Ооо

    PS: Загубих броя пъти, в които казваш моята приятелка в тази статия хахаха

    1.    Уго каза той

      Защото това също е малко, битът за неизменност и е проектиран така, че никой да не може да модифицира или изтрие файла, за който се отнася (дори корен). Използвам го например за защита срещу запис на конфигурационни файлове, което е особено полезно в дистрибуции като Zentyal (това е много по-бърз начин за персонализиране на конфигурацията, отколкото чрез редактиране или създаване на шаблони).

      Чрез комбиниране на тази команда с chown, chmod и setfacl могат да се постигнат интересни неща.

      FreeBSD има нещо подобно, което също използвам за моя pfSense.

    2.    Джон каза той

      Хахаха това е известна фаза.
      http://www.xkcd.
      com / 684 /

  2.   ниандекуера каза той

    [Д-р Боливар Траск] $ sudo chattr + i * .human

  3.   Tesla каза той

    Много добра поръчка. Не я познавах.

    Може да бъде много полезно, ако споделяме компютър или ако имаме определен документ, по който работим и който не искаме да изтриваме за цял свят.

    Благодаря и всичко хубаво!

  4.   Луис каза той

    Много интересно.

    Може ли да се направи нещо подобно, така че ROOT да няма достъп до определена папка на нашата начална страница?

    1.    Tesla каза той

      Според статията с тази команда дори root няма достъп до файла. Предполагам, че същото се отнася и за папки, тъй като в Linux папките също са файлове, нали?

  5.   Хоакин каза той

    Какво съвпадение. Този уикенд се опитах да изтрия коренния дял и не успях да изтрия файл от директорията / boot. Търсейки намерих атрибутите, честно казано не ги познавах и сега разбирам, че въпросът за разрешенията и атрибутите във файл е много голям. Това е една от онези основни команди, които трябва да знаем, заедно с "chmod" и "chown".

  6.   агуатемала каза той

    Това е изключително полезно, особено ако например искаме да променим DNS по подразбиране на съответния ни доставчик и тогава трябва да модифицираме файла /etc/resolv.conf и за да направим това, трябва да направим chattr -i / etc / resolv.conf, модифицирайте IP адресите, които се появяват за тези на нашия безплатен и / или безплатен DNS (като тези на OpenDNS 208.67.222.222 и 208.67.220.220 или тези на Google 8.8.8.8 и 8.8.4.4) и след като промените файл направете chattr + i /etc/resolv.conf отново, за да не се модифицира файлът при стартиране на машината.
    Страхотна статия ... и между другото, приятелката ти е като жена ми, също толкова пристрастена към игрите, хахахахаха

  7.   rawBasic каза той

    Очевидно „шибаният майстор“ е вашата приятелка в тази ситуация. xD