เมื่อหลายสัปดาห์ก่อน ฉันได้เขียนบทความที่ให้ภาพรวมพื้นฐานของเครื่องมือชุบแข็ง AppArmor อธิบายวิธีการทำงาน และแสดงตัวอย่างที่ใช้ได้จริงเกี่ยวกับวิธีจำกัดและทำให้เบราว์เซอร์ Firefox แข็งขึ้น แต่เดี๋ยวก่อน ไม่ใช่แค่ Firefox รุ่นไหน แต่โดยเฉพาะรุ่น tarball ที่คุณสามารถดาวน์โหลดได้จาก Mozilla ฉันกำลังพูดถึงไฟล์เก็บถาวร tar คว้า สกัด วิ่ง
จนถึงตอนนี้ดีมาก การใช้โปรไฟล์ AppArmor (เทมเพลต) จากการติดตั้ง Kubuntu ของฉัน ทำให้ฉันสามารถสร้างชุดกฎที่กำหนดเองสำหรับเวอร์ชัน tar ของ Firefox ที่เรียกใช้จากโฮมไดเร็กทอรีของฉันได้ ทุกอย่างเรียบร้อยดี แต่มีปัญหาอย่างหนึ่ง ตามค่าเริ่มต้น จะไม่สามารถอัปเดตได้ เราจะแก้ไขทันที
ปัญหาในรายละเอียดเพิ่มเติม
ดังนั้นสิ่งที่เกิดขึ้นต่อไปนี้ หากคุณใช้เวอร์ชัน Firefox tar จะมีตัวเลือกในการอัปเดตอัตโนมัติด้วยตัวเองเหมือนที่คุณเห็นใน Windows โดยพื้นฐานแล้ว เบราว์เซอร์จะได้รับการอัปเดต คุณรีสตาร์ท เสร็จงาน คุณไม่จำเป็นต้องติดตั้งอะไรใหม่ด้วยตนเอง คุณแค่เรียกใช้เบราว์เซอร์ต่อจากที่ที่คุณแตกไฟล์ครั้งแรก เช่น say ~/Firefox/ หรือบางอย่าง
อย่างไรก็ตาม ด้วยโปรไฟล์ AppArmor ของฉัน เบราว์เซอร์จะไม่สามารถอัปเดตตัวเองได้ (ดูภาพหน้าจอด้านบน) จะแจ้งให้คุณทราบว่ามีการอัปเดตและคุณสามารถดาวน์โหลดได้ด้วยตนเอง อันที่จริง มีวิธีแก้ปัญหาค่อนข้างน้อย:
- คุณสามารถลบกฎ AppArmor ได้ และในการรีสตาร์ทเบราว์เซอร์ครั้งถัดไป Firefox จะสามารถอัปเดตตัวเองได้ แต่นี่เป็นเรื่องยุ่งยาก และคุณจะต้องใช้กฎอีกครั้งในภายหลัง
sudo apparmor_parser -R "ชื่อโปรไฟล์เวอร์ชัน Firefox tar ของคุณ"
- คุณสามารถไปที่เว็บไซต์ทางการด้วยตนเอง ดาวน์โหลดไฟล์เก็บถาวร tarball ใหม่ แล้วแตกไฟล์ทับไฟล์เก่า หรือเพียงแค่แตกไฟล์แล้วคัดลอกไฟล์ทั้งหมดจากโฟลเดอร์ใหม่ไปยังที่ใดก็ตามที่คุณเก็บ Firefox ไว้ด้วยตนเอง สิ่งนี้จะไม่ส่งผลกระทบต่อโปรไฟล์ Firefox ของคุณแต่อย่างใด
tar -xvf "tarball"
cp -ar "tarball แยกโฟลเดอร์"/* "โฟลเดอร์การติดตั้ง Firefox"/
อย่างไรก็ตาม สิ่งเหล่านี้เป็นเพียงการแก้ไขแบบกึ่งๆ (ง่าย) และเราต้องการบางสิ่งที่มั่นคงกว่านี้
วิธีแก้ปัญหา
การแก้ไขที่แท้จริงคือการดูโปรไฟล์ AppArmor และทำความเข้าใจว่ากฎข้อใดที่สร้างความขัดแย้ง โดยทั่วไปแล้ว แต่ละบรรทัดในโปรไฟล์เป็นกฎที่เลือกอนุญาตบางสิ่ง (เช่น อ่านแต่ไม่เขียนไปยังไดเร็กทอรี) หรือปฏิเสธการเข้าถึงทรัพยากรเฉพาะโดยสิ้นเชิง สิ่งใดที่ไม่ได้เขียนไว้อย่างชัดเจนจะไม่ครอบคลุมโดยโปรไฟล์
หนึ่งในกฎเริ่มต้นในไฟล์คือการปฏิเสธการเข้าถึงการเขียนไฟล์และโฟลเดอร์ภายในไดเร็กทอรีการติดตั้ง Firefox สิ่งนี้สมเหตุสมผลสำหรับโปรไฟล์เริ่มต้นเมื่อและที่ที่ติดตั้ง Firefox ในไดเร็กทอรีระบบ แต่ไม่จำเป็นหากคุณติดตั้ง Firefox ในที่แยกต่างหาก
ปฏิเสธ @{MOZ_LIBDIR}/** w,
เราสามารถแสดงความคิดเห็นเกี่ยวกับกฎนี้ โหลดโปรไฟล์ Firefox ใหม่ และทำงานให้เสร็จ:
sudo apparmor_parser -r "ชื่อโปรไฟล์"
บทสรุป
งานเสร็จแล้ว การเปลี่ยนแปลงเล็กน้อยและเรียบง่ายนี้ทำให้ Firefox รุ่น tar (ด้านหลัง) สามารถอัปเดตตัวเองได้ ตอนนี้ หากคุณใส่ใจเรื่องความปลอดภัยเป็นพิเศษ คุณอาจบอกว่านี่ไม่ดีหรือไม่ดี และคุณโอเคที่จะทำการอัปเดตด้วยตนเองหากจำเป็นและเมื่อจำเป็น คุณสามารถใช้กลอุบายนั้นได้เสมอ แต่ถ้าคุณต้องการความสะดวกสบายและยังมีโปรไฟล์ AppArmor จำนวนมากที่แข็งขึ้นสำหรับคุณ คุณสามารถอนุญาตให้เบราว์เซอร์เขียนไปยังโฟลเดอร์การติดตั้งได้ เพียงตระหนักถึงผลที่อาจเกิดขึ้น
หวังว่าคู่มือนี้จะอธิบายหรือไขข้อสงสัยบางข้อที่คุณอาจมีเกี่ยวกับหัวข้อนี้ แต่อีกครั้งเรายังไม่ได้ทำ ต่อไป เราจะพูดถึง D-Bus โดยเฉพาะ กฎที่จำเป็นเพื่อให้ Firefox สามารถใช้คุณสมบัติการรวม KDE/Plasma ได้ บางทีนี่อาจฟังดูเฉพาะของ KDE แต่ฉันจะทำให้แน่ใจว่าบทช่วยสอนนั้นกว้างพอที่จะใช้กับฟังก์ชันการรวมเบราว์เซอร์ประเภทใดก็ได้ ไว้คราวหน้านะเพื่อนเนิร์ดที่รัก
ไชโย