chattr: การป้องกันสูงสุดของไฟล์ / โฟลเดอร์ใน Linux โดยแอตทริบิวต์หรือแฟล็ก

ไม่ใช่ทุกอย่างที่สามารถเป็นเกมได้ไม่ใช่ความตั้งใจของฉันที่จะเผยแพร่โพสต์ที่พูดถึงเกมเท่านั้น😉 ... ฉันไม่ใช่ผู้ใช้ที่เล่นบ่อยมากที่บ้านฉันปล่อยให้แฟนของฉัน (ซึ่งตอนนี้ติดยาเสพติด Sims 4) นั่นคือสาเหตุที่กระตุ้นให้ฉันเผยแพร่บทความทางเทคนิคเพิ่มเติมเกี่ยวกับคำสั่งหรือเคล็ดลับในเทอร์มินัล

ในลินุกซ์เรามี สิทธิ์ ซึ่งสามารถแก้ปัญหาได้เกือบทุกปัญหาเราสามารถระบุได้ว่าผู้ใช้หรือกลุ่มผู้ใช้รายใดสามารถเข้าถึงทรัพยากรโฟลเดอร์บริการบางอย่างได้ อย่างไรก็ตามมีหลายครั้งที่สิทธิ์ไม่ตรงตามที่เราต้องการเนื่องจากมีสถานการณ์ที่เราต้องการให้รูทไม่สามารถดำเนินการบางอย่างได้

สมมติว่าเรามีโฟลเดอร์หรือไฟล์ที่เราไม่ต้องการให้ถูกลบไปกันเลย ... ไม่ว่าจะโดยผู้ใช้ของเราหรือโดยผู้อื่นในคอมพิวเตอร์ (เอิ่ม ... แฟนตัวอย่างฮ่าฮ่า) หรือไม่แม้แต่รูทก็สามารถลบได้จะทำอย่างไร? ... การอนุญาตจะไม่ช่วยเราเพราะรูทคือปรมาจารย์เขาจะสามารถลบอะไรก็ได้นั่นคือที่มาของคุณสมบัติของไฟล์หรือโฟลเดอร์

chattr + i

สมมติว่าเราต้องการปกป้องไฟล์เพื่อไม่ให้ลบไฟล์ได้คือ: รหัสผ่าน.txt ตำแหน่งของคุณคือ (ตัวอย่าง) $ HOME / passwords.txt

ในการตั้งค่าแอตทริบิวต์แบบอ่านอย่างเดียว (นั่นคือไม่มีการแก้ไขและไม่มีการลบ) จะเป็น:

sudo chattr +i $HOME/passwords.txt

อย่างที่คุณเห็นเราต้องการสิทธิ์การดูแลระบบสำหรับพารามิเตอร์ + i ซึ่งโดยวิธีการแล้ว + i หมายความว่าไฟล์จะไม่เปลี่ยนรูปคุณก็รู้ว่าไม่สามารถลบได้และไม่สามารถเปลี่ยนแปลงได้

จากนั้นคุณสามารถลองลบไฟล์ได้แม้ใช้ sudo ... คุณจะเห็นว่าคุณจะไม่สามารถทำได้นี่คือภาพหน้าจอ:

chattr_1

หากต้องการแสดงรายการหรือดูแอตทริบิวต์ที่ไฟล์มีเราสามารถใช้คำสั่ง ศีลตัวอย่างเช่น:

lsattr passwords.txt

จากนั้นให้ทำการถอดการป้องกันออกแทนการใช้ +i เราใช้ -i และ voila 😉

chattr + ก

อย่างที่เราเพิ่งเห็นพารามิเตอร์ + i ช่วยให้เราสามารถป้องกันได้อย่างสมบูรณ์ แต่มีหลายครั้งที่ฉันต้องการไฟล์บางไฟล์เพื่อให้สามารถแก้ไขได้ แต่โดยไม่ต้องแก้ไขเนื้อหาต้นฉบับ ตัวอย่างเช่นฉันมีรายการและฉันต้องการเพิ่มบรรทัดและข้อมูลใหม่โดยใช้เสียงสะท้อน แต่ไม่ต้องแก้ไขรายการก่อนหน้าสำหรับสิ่งนี้:

sudo chattr +a $HOME/passwords.txt

เมื่อเสร็จแล้วเรามาลองเขียนสิ่งใหม่ในไฟล์:

echo "Prueba" > $HOME/passwords.txt

คุณจะสังเกตเห็นว่าคุณได้รับข้อผิดพลาด ... อย่างไรก็ตามหากเราเพิ่มเนื้อหาแทนการแทนที่ (โดยใช้ >> ไม่ใช่>):

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

ที่นี่เราทำได้

ตอนจบ!

ฉันรู้ว่ามีคนที่มีความรู้เมื่อเห็นว่าแม้จะมีรูทก็สามารถลบ / แก้ไขไฟล์ได้ก็สามารถตรวจสอบคุณสมบัติของมันได้ ... แต่เดี๋ยวก่อน! …กี่ครั้งที่คุณสังเกตเห็นอะไรแบบนี้คุณเลิกคิดถึงคุณลักษณะต่างๆ ... ฉันพูดแบบนี้เพราะโดยทั่วไปเราคิดว่า HDD หรือเซกเตอร์เสียหายหรือว่าระบบมันบ้าไปแล้ว😀

ไม่มีอะไรให้เพิ่มอีกมาก ... ฉันคิดว่าฉันจะใช้สิ่งนี้จาก +i เพื่อหยุดการดาวน์โหลดบางสิ่งที่แฟนของฉันกำลังดาวน์โหลด ... ... เอ๊ะ ... เธอไม่ต้องการ ดาวน์โหลด sims 4 ฟรี? ... ฉันคิดว่าฉันจะสอนคุณสักเรื่องหรือสองเรื่องเกี่ยวกับใบอนุญาตและไม่ควรละเมิด😀

ทักทาย!


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา

  1.   หยุด dijo

    น่าสนใจที่จะรู้เกี่ยวกับเครื่องมือนี้จะเกิดอะไรขึ้นถ้ามันทำให้ฉันอยากรู้อยากเห็นในทางที่มันจะไม่คล้ายกับการอนุญาตบิต? เช่น setuid, setgid และ sticky bit? ถ้าไม่เพราะเหตุใด Oo

    PS: ฉันพลาดจำนวนครั้งที่คุณพูดว่าแฟนของฉันในบทความนี้ฮ่า ๆ ๆ

    1.    ฮิวโก้ dijo

      สำหรับสิ่งนี้ยังเป็นบิตที่ไม่เปลี่ยนรูปและได้รับการออกแบบมาเพื่อให้ไม่มีใครสามารถแก้ไขหรือลบไฟล์ที่ใช้ (ไม่แม้แต่รูท) ฉันใช้มันเป็นตัวอย่างในการเขียน - ป้องกันไฟล์คอนฟิกูเรชันซึ่งมีประโยชน์อย่างยิ่งในการแจกแจงเช่น Zentyal (เป็นวิธีที่เร็วกว่าในการปรับแต่งการกำหนดค่ามากกว่าการแก้ไขหรือสร้างเทมเพลต)

      ด้วยการรวมคำสั่งนี้กับ chown, chmod และ setfacl สิ่งที่น่าสนใจสามารถทำได้

      FreeBSD มีบางอย่างที่คล้ายกันซึ่งฉันใช้สำหรับ pfSense ของฉันด้วย

    2.    Juan dijo

      ฮ่า ๆ ๆ มันเป็นเฟสที่รู้จักกัน
      http://www.xkcd.
      com / 684 /

  2.   Niandekuera dijo

    [ดร. โบลิวาร์ทราสก์] $ sudo chattr + i * .human

  3.   เทสลา dijo

    คำสั่งที่ดีมาก ฉันไม่รู้จักเธอ

    จะมีประโยชน์มากหากเราใช้พีซีร่วมกันหรือหากเรามีเอกสารบางอย่างที่เรากำลังดำเนินการซึ่งเราไม่ต้องการลบให้กับโลกใบนี้

    ขอขอบคุณและขอแสดงความนับถือ!

  4.   หลุยส์ dijo

    ที่น่าสนใจมาก

    สามารถทำสิ่งที่คล้ายกันเพื่อให้ ROOT ไม่สามารถเข้าถึงบางโฟลเดอร์ในโฮมเพจของเราได้หรือไม่?

    1.    เทสลา dijo

      ตามบทความด้วยคำสั่งนี้แม้แต่รูทก็ไม่สามารถเข้าถึงไฟล์ได้ ฉันเดาเช่นเดียวกันกับโฟลเดอร์เนื่องจากในโฟลเดอร์ Linux เป็นไฟล์ด้วยใช่ไหม

  5.   Joaquin dijo

    ช่างเป็นเรื่องบังเอิญ สุดสัปดาห์นี้ฉันพยายามลบพาร์ติชันรูทและไม่สามารถลบไฟล์จากไดเร็กทอรี / boot เมื่อมองไปฉันพบแอตทริบิวต์ แต่ฉันไม่รู้โดยสุจริตและตอนนี้ฉันเข้าใจแล้วว่าปัญหาของสิทธิ์และแอตทริบิวต์ในไฟล์นั้นใหญ่มาก นี่เป็นหนึ่งในคำสั่งสำคัญที่เราต้องรู้ควบคู่ไปกับ "chmod" และ "chown"

  6.   Aguatemala dijo

    สิ่งนี้มีประโยชน์อย่างยิ่งโดยเฉพาะอย่างยิ่งหากเราต้องการเปลี่ยน DNS เริ่มต้นของ ISP ของเราและนั่นคือเวลาที่เราต้องแก้ไขไฟล์ /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 อีกครั้งเพื่อไม่ให้ไฟล์ถูกแก้ไขเมื่อเครื่องเริ่มทำงาน
    บทความดีมาก…แล้วยังไงแฟนคุณก็เหมือนเมียผมเหมือนกันนะเนี่ยแหละติดเกม XNUMX

  7.   ดิบ dijo

    เห็นได้ชัดว่า 'the-fucking-master' คือแฟนของคุณในสถานการณ์นี้ xD