chattr: Bảo vệ tối đa các tệp / thư mục trong Linux bằng các thuộc tính hoặc cờ

Chà ... không phải cái gì cũng có thể là game, mình chỉ đăng bài nói về game cũng không có ý định đăng đâu 😉 ... Mình không phải là người chơi nhiều, ở nhà mình để đó cho bạn gái (mà bây giờ được nối vào Sims 4), đó là lý do tại sao nó thúc đẩy tôi xuất bản nhiều bài báo kỹ thuật hơn, về các lệnh hoặc mẹo trong thiết bị đầu cuối.

Trong Linux, chúng tôi có một số quyền mà chắc chắn giải quyết hầu hết mọi vấn đề, chúng tôi có thể xác định người dùng hoặc nhóm người dùng nào có quyền truy cập vào một tài nguyên, thư mục, dịch vụ nhất định. Tuy nhiên, đôi khi quyền không phải là chính xác những gì chúng ta cần, vì có những trường hợp chúng ta muốn ngay cả root cũng không thể thực hiện một hành động nhất định.

Giả sử chúng ta có một thư mục hoặc tệp mà chúng ta không muốn bị xóa, hãy tiếp tục ... không phải bởi người dùng của chúng ta, cũng không phải bởi người khác trên máy tính (ehm ... bạn gái của tôi chẳng hạn haha), hoặc thậm chí không root có thể xóa nó, làm thế nào để đạt được điều này? ... các quyền sẽ không giúp ích gì cho chúng ta bởi vì root là bậc thầy chết tiệt, anh ta có thể xóa bất kỳ thứ gì, vì vậy đó là nơi các thuộc tính tệp hoặc thư mục xuất hiện.

chattr + i

Giả sử chúng ta muốn bảo vệ một tệp để nó không thể bị xóa, đó là: Password.txt , vị trí của bạn là (ví dụ) $ HOME / mật khẩu.txt

Để thiết lập thuộc tính chỉ đọc (nghĩa là không sửa đổi và không xóa), nó sẽ là:

sudo chattr +i $HOME/passwords.txt

Như bạn thấy, chúng ta cần quyền quản trị cho tham số + i, nhân tiện, + i có nghĩa là tệp sẽ không thay đổi, bạn biết đấy, nó không thể bị xóa, nó không thể thay đổi theo bất kỳ nghĩa nào.

Sau đó, bạn có thể thử xóa tệp, thậm chí sử dụng sudo ... bạn sẽ thấy rằng bạn sẽ không thể, đây là ảnh chụp màn hình:

chattr_1

Để liệt kê hoặc xem các thuộc tính mà tệp có, chúng ta có thể sử dụng lệnh lsattr, ví dụ:

lsattr passwords.txt

Sau đó, để loại bỏ bảo vệ thay vì sử dụng +i chúng tôi sử dụng -i và thì đấy 😉

chattr + a

Như chúng ta vừa thấy, tham số + i cho phép chúng ta bảo vệ nó hoàn toàn, nhưng đã có lúc tôi cần một tệp nào đó để có thể sửa đổi, NHƯNG mà không làm thay đổi nội dung ban đầu của nó. Ví dụ: tôi có một danh sách và tôi muốn thêm các dòng và thông tin mới bằng cách sử dụng echo, nhưng không thay đổi các dòng trước đó, vì điều này:

sudo chattr +a $HOME/passwords.txt

Sau khi hoàn thành, hãy thử viết một cái gì đó mới vào tệp:

echo "Prueba" > $HOME/passwords.txt

Bạn sẽ nhận thấy rằng bạn gặp lỗi ... tuy nhiên, nếu chúng tôi thêm nội dung thay vì thay thế (sử dụng >> chứ không phải>):

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

Ở đây chúng tôi có thể.

Kết thúc!

Tôi biết rằng một người nào đó hiểu biết khi họ thấy rằng ngay cả với root có thể xóa / sửa đổi một tệp có thể kiểm tra các thuộc tính của nó ... nhưng, này! … Có bao nhiêu lần khi bạn nhận thấy một cái gì đó như thế này, bạn dừng lại để suy nghĩ về các thuộc tính? ... Tôi nói điều này bởi vì nói chung chúng tôi nghĩ đơn giản rằng ổ cứng hoặc khu vực của nó bị hỏng, hoặc hệ thống chỉ đơn giản là bị điên 😀

Chà không có nhiều thứ khác để thêm vào ... Tôi nghĩ tôi sẽ sử dụng cái này từ +i để dừng tải xuống thứ gì đó mà bạn gái tôi đang tải xuống ... и_€ ... ehm ... cô ấy không muốn tải sim 4 miễn phí? … Tôi nghĩ tôi sẽ dạy cho bạn một hoặc hai điều về giấy phép và chúng không được vi phạm 😀

Chúc mừng!


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.

  1.   ngưng dijo

    Thật thú vị khi biết về công cụ này, điều gì sẽ xảy ra nếu nó gây cho tôi một số tò mò, theo một cách nào đó nó sẽ không phải là một cái gì đó tương tự như quyền bit? Tức là setuid, setgid và dính bit? Nếu không, tại sao? Oo

    Tái bút: Tôi đã mất đếm số lần bạn nói bạn gái của tôi trong bài viết này hahaha

    1.    Hugo dijo

      Đây cũng là một bit, bit bất biến, và nó được thiết kế để không ai có thể sửa đổi hoặc xóa tệp mà nó áp dụng (thậm chí không phải root). Ví dụ, tôi sử dụng nó để ghi các tệp cấu hình bảo vệ, đặc biệt hữu ích trong các bản phân phối như Zentyal (đây là cách tùy chỉnh cấu hình nhanh hơn nhiều so với chỉnh sửa hoặc tạo mẫu).

      Bằng cách kết hợp lệnh này với chown, chmod và setfacl, những điều thú vị có thể được thực hiện.

      FreeBSD có một cái gì đó tương tự, mà tôi cũng sử dụng cho pfSense của mình.

    2.    John dijo

      Hahaha đó là một giai đoạn được biết đến.
      http://www.xkcd.
      com / 684 /

  2.   niandekuera dijo

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

  3.   Tesla dijo

    Thứ tự rất tốt. Tôi không biết cô ấy.

    Nó có thể rất hữu ích nếu chúng ta dùng chung PC hoặc nếu chúng ta có một tài liệu nào đó mà chúng ta đang làm việc mà chúng ta không muốn xóa cho mọi người.

    Trân trọng cảm ơn!

  4.   Luis dijo

    Rất thú vị.

    Có thể làm điều gì đó tương tự để ROOT không thể truy cập vào một thư mục nhất định trên trang chủ của chúng tôi không?

    1.    Tesla dijo

      Theo bài báo, với lệnh này, ngay cả root cũng không thể truy cập tệp. Tôi đoán điều tương tự cũng áp dụng cho các thư mục, vì trong Linux các thư mục cũng là tệp, phải không?

  5.   Joaquin dijo

    Thật là trùng hợp. Cuối tuần này, tôi đã cố gắng xóa phân vùng gốc và không thể xóa tệp khỏi thư mục / boot. Nhìn, tôi đã tìm thấy các thuộc tính, thành thật mà nói, tôi không biết chúng và bây giờ tôi hiểu rằng vấn đề về quyền và thuộc tính trong một tệp là rất lớn. Đây là một trong những lệnh cần thiết mà chúng ta phải biết, cùng với "chmod" và "chown".

  6.   aguatemala dijo

    Điều này cực kỳ hữu ích, đặc biệt nếu, chẳng hạn, nếu chúng ta muốn thay đổi DNS mặc định của ISP tương ứng của chúng ta và đây là lúc chúng ta phải sửa đổi tệp /etc/resolv.conf và để có thể thực hiện điều này, chúng ta phải chattr-i / etc / Resolutionv.conf, sửa đổi IP xuất hiện cho các DNS miễn phí và / hoặc miễn phí của chúng tôi (chẳng hạn như của OpenDNS 208.67.222.222 và 208.67.220.220 hoặc của Google 8.8.8.8 và 8.8.4.4) và sau khi có đã sửa đổi lại tệp make chattr + i /etc/resolv.conf để tệp không bị sửa đổi khi máy khởi động.
    Bài báo tuyệt vời ... và nhân tiện, bạn gái của bạn cũng giống như vợ tôi, nghiện game, hahahahaha

  7.   nguyên cơ bản dijo

    Rõ ràng 'chủ nhân' là bạn gái của bạn trong tình huống này. xD