chattr: Maksymalna ochrona plików / folderów w Linuksie poprzez atrybuty lub flagi

Cóż ... nie wszystko może być grami, nie jest moim zamiarem tylko publikowanie postów o grach 😉 ... nie jestem użytkownikiem, który dużo gra, w domu zostawiam to swojej dziewczynie (który jest teraz podpięty Sims 4), dlatego bardziej motywuje mnie do publikowania bardziej technicznych artykułów, o poleceniach czy wskazówkach w terminalu.

W Linuksie mamy trochę pozwolenia które z pewnością rozwiązują prawie każdy problem, możemy określić, który użytkownik lub grupa użytkowników ma dostęp do określonego zasobu, folderu, usługi. Jednak są chwile, kiedy uprawnienia nie są dokładnie tym, czego potrzebujemy, ponieważ są sytuacje, w których nawet root nie może wykonać określonej czynności.

Załóżmy, że mamy folder lub plik, którego nie chcemy usunąć, chodźmy ... ani przez naszego użytkownika, ani przez inny na komputerze (ehm ... na przykład moja dziewczyna haha), czy nawet root nie może go usunąć, jak to osiągnąć? … Uprawnienia nie będą działać dla nas, ponieważ root jest pieprzonym mistrzem, może usunąć wszystko, więc to jest miejsce, w którym pojawiają się atrybuty plików lub folderów.

chattr + i

Załóżmy, że chcemy zabezpieczyć plik, aby nie można go było usunąć, jest to: hasła.txt Twoja lokalizacja to (na przykład) $ HOME / passwords.txt

Aby ustawić atrybut tylko do odczytu (czyli bez modyfikacji i bez usuwania), byłoby to:

sudo chattr +i $HOME/passwords.txt

Jak widzisz, potrzebujemy uprawnień administratora do parametru + i, co przy okazji + i oznacza, że ​​plik będzie niezmienny, wiesz, nie można go usunąć, nie można go w żaden sposób zmienić.

Następnie możesz spróbować usunąć plik, nawet używając sudo ... zobaczysz, że nie będziesz w stanie, oto zrzut ekranu:

czattr_1

Aby wyświetlić lub zobaczyć atrybuty pliku, możemy użyć polecenia lsattr, na przykład:

lsattr passwords.txt

Następnie usuń ochronę zamiast używać +i Używamy -i i voila 😉

chattr + a

Jak właśnie widzieliśmy, parametr + i pozwala nam całkowicie go zabezpieczyć, ale zdarzały się sytuacje, gdy potrzebowałem określonego pliku, aby można go było zmodyfikować, ALE bez zmiany jego oryginalnej zawartości. Na przykład mam listę i chcę, aby nowe wiersze i informacje były dodawane za pomocą echa, ale bez zmiany poprzednich, w tym celu:

sudo chattr +a $HOME/passwords.txt

Po wykonaniu tej czynności spróbujmy zapisać coś nowego do pliku:

echo "Prueba" > $HOME/passwords.txt

Zauważysz, że pojawia się błąd ... jednak jeśli dodamy treść zamiast zastępować (używając >> a nie>):

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

Tutaj możemy.

Koniec!

Wiem, że ktoś posiadający wiedzę, gdy widzi, że nawet z rootem może usunąć / zmodyfikować plik, może sprawdzić jego atrybuty ... ale hej! … Ile razy zauważając coś takiego, przestajesz myśleć o atrybutach? ... Mówię tak, ponieważ generalnie po prostu uważamy, że dysk twardy lub jego sektor jest uszkodzony, albo że system po prostu oszalał 😀

Cóż, nie ma nic więcej do dodania ... Myślę, że skorzystam z tego +i zatrzymać pobieranie czegoś, co pobiera moja dziewczyna ... ¬__¬ ... ehm ... nie chciała pobierz sims 4 wolny? ... Myślę, że nauczę cię kilku rzeczy o licencjach i że nie należy ich naruszać 😀

Pozdrowienia!


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   zaprzestać powiedział

    Ciekawostką jest wiedzieć o tym narzędziu, a co jeśli wzbudzi we mnie ciekawość, w pewnym sensie nie będzie to coś podobnego do uprawnień bitowych? To znaczy setuid, setgid i lepki bit? Jeśli nie, dlaczego? Oo

    PS: Straciłem rachubę, kiedy mówisz w tym artykule o mojej dziewczynie hahaha

    1.    Hugo powiedział

      Do tego też jest trochę, bit niezmienności, i jest zaprojektowany tak, aby nikt nie mógł modyfikować ani usuwać pliku, do którego się odnosi (nawet root). Używam go na przykład do zabezpieczania plików konfiguracyjnych przed zapisem, co jest szczególnie przydatne w dystrybucjach takich jak Zentyal (jest to znacznie szybszy sposób dostosowywania konfiguracji niż edycja lub tworzenie szablonów).

      Łącząc to polecenie z chown, chmod i setfacl, można osiągnąć interesujące rzeczy.

      FreeBSD ma coś podobnego, którego używam również dla mojego pfSense.

    2.    John powiedział

      Hahaha, to znana faza.
      http://www.xkcd.
      pl / 684 /

  2.   Niandekuera powiedział

    [Dr. Bolivar Trask] $ sudo chattr + i * .human

  3.   Tesla powiedział

    Bardzo dobry porządek. Nie znałam jej.

    Może to być bardzo przydatne, jeśli udostępniamy komputer lub mamy pewien dokument, nad którym pracujemy, którego nie chcemy usuwać dla świata.

    Dziękuję i pozdrawiam!

  4.   Luis powiedział

    Bardzo interesujące.

    Czy można zrobić coś podobnego, aby ROOT nie miał dostępu do określonego folderu na naszej stronie głównej?

    1.    Tesla powiedział

      Zgodnie z artykułem, za pomocą tego polecenia nawet root nie może uzyskać dostępu do pliku. Przypuszczam, że to samo dotyczy folderów, ponieważ w Linuksie foldery są również plikami, prawda?

  5.   Joaquin powiedział

    Co za zbieg okoliczności. W ten weekend próbowałem usunąć partycję główną i nie mogłem usunąć pliku z katalogu / boot. Szukając znalazłem atrybuty, szczerze ich nie znałem i teraz rozumiem, że kwestia uprawnień i atrybutów w pliku jest bardzo duża. Jest to jedno z tych podstawowych poleceń, które musimy znać, wraz z „chmod” i „chown”.

  6.   agwatemala powiedział

    Jest to niezwykle przydatne, zwłaszcza jeśli, na przykład, chcemy zmienić domyślny DNS naszego odpowiedniego usługodawcy internetowego i wtedy musimy zmodyfikować plik /etc/resolv.conf iw tym celu musimy zrobić chattr -i / etc / resolv.conf, zmodyfikuj adresy IP, które pojawiają się dla adresów naszego bezpłatnego i / lub wolnego DNS (na przykład tych z OpenDNS 208.67.222.222 i 208.67.220.220 lub Google 8.8.8.8 i 8.8.4.4) i po zmodyfikowano plik, aby ponownie wykonać chattr + i /etc/resolv.conf, aby plik nie był modyfikowany podczas uruchamiania maszyny.
    Świetny artykuł… a tak przy okazji, twoja dziewczyna jest jak moja żona, tak samo uzależniona od gier, hahahahaha

  7.   surowyBasic powiedział

    Najwyraźniej „pieprzonym mistrzem” jest twoja dziewczyna w tej sytuacji. xD