Score:7

สิทธิ์ถูกปฏิเสธเมื่อ Evince พยายามใช้ Chrome เพื่อเปิดลิงก์

ธง jp

ฉันรู้ว่ามีคำถามที่มีอยู่เกี่ยวกับปัญหาเกี่ยวกับลิงก์การเปิด Evince แต่ดูเหมือนว่าจะเป็นข้อผิดพลาดใหม่ นี่คือใน 21.04 แต่ฉันคิดว่าข้อผิดพลาดเพิ่งเกิดขึ้น เช่น ลิงก์ทำงานก่อนหน้านี้ใน 21.04 ฉันจึงเริ่ม evince จากบรรทัดคำสั่ง และเมื่อฉันพยายามเปิดลิงก์ในเอกสาร ฉันได้รับข้อผิดพลาดนี้:

[205689:205689:0812/101716.420196:FATAL:double_fork_and_exec.cc(131)] execv /opt/google/chrome/crashpad_handler: การอนุญาตถูกปฏิเสธ (13)

นี่คือ evince 40.1 และ Chrome 92.0.4515.131

ฉันส่งหลักฐานเกี่ยวกับเรื่องนี้: https://gitlab.gnome.org/GNOME/evince/-/issues/1646 และระบุว่าปัญหาคือ AppArmor ซึ่งป้องกันไม่ให้ evince เรียกใช้ Chrome (แต่อนุญาตให้ใช้ Firefox) ดังนั้นฉันต้องแก้ไขโปรไฟล์ AppArmor เพื่อพิสูจน์ ฉันไม่รู้ว่าจะทำอย่างไร ฉันลองใช้ aa-logprof แต่ฉันต้องการคำแนะนำที่เข้าใจได้อย่างชัดเจน ฉันขอขอบคุณตัวชี้ใด ๆ ที่แสดงทีละขั้นตอน วิธีการแก้ไขที่จำเป็นในโปรไฟล์ evince

อัปเดต: ความสำเร็จ. ฉันเพิ่มบรรทัดนี้ในโปรไฟล์ sanitized_helper ใน abstractions/ubuntu_helpers:

/opt/google/chrome/crashpad_handler Pixr

และโหลดโปรไฟล์ evince อีกครั้ง ตอนนี้ฉันได้รับข้อผิดพลาดเหล่านี้เมื่อคลิกที่ลิงก์:

[20036:20069:0813/075235.070369:ERROR:address_tracker_linux.cc(195)] ไม่สามารถสร้างซ็อกเก็ต NETLINK: สิทธิ์ถูกปฏิเสธ (13)
[20036:20065:0813/075235.071590:ERROR:udev_watcher.cc(52)] ไม่สามารถเริ่มต้นจอภาพ udev
กำลังเปิดในเซสชันเบราว์เซอร์ที่มีอยู่

และเปิดลิงก์สำเร็จในแท็บ Chrome ใหม่

ru flag
เริ่มต้นด้วยการรัน `tail -f /var/log/syslog | grep -i apparmor` ในเทอร์มินัล จากนั้นลองเปิดลิงค์ แบ่งปันผลลัพธ์ของการปฏิเสธ apparmor เพื่อให้เราสามารถเริ่มชี้ตำแหน่งที่คุณต้องไปแก้ไข เนื่องจากจะมีการระบุนโยบายเฉพาะที่มีผลกระทบ จากนั้นเราจะสามารถอัปเดตนโยบายได้ในภายหลัง
jp flag
13 ส.ค. 05:38:20 เคอร์เนลเรท: [52504.309148] การตรวจสอบ: type=1400 การตรวจสอบ (1628858300.725:61): apparmor="DENIED" operation="exec" profile="/usr/bin/evince//sanitized_helper" name= "/opt/google/chrome/crashpad_handler" pid=16475 comm="chrome" ask_mask="x"dened_mask="x" fsuid=1000 ouid=0 มีข้อเสนอแนะจากความคิดเห็นในรายงาน gitlab ของฉันว่าปัญหาน่าจะเป็นความจริงที่ว่าโปรแกรมเรียกทำงานของ Chrome อยู่ใน /opt/google/chrome แทนที่จะเป็นตำแหน่ง "ปกติ" เช่น /usr/bin
jp flag
โปรไฟล์ sanitized_helper ซึ่งกำหนดไว้ใน ubuntu_helpers รวมมาจากโปรไฟล์ evince ทางอ้อม ดูเหมือนว่าจะอนุญาตการดำเนินการต่างๆ ภายใต้ /opt/google/chrome แต่ไม่ใช่ crashpad_handler
Gert Willems avatar
cn flag
ฉันต้องใช้คำนำหน้า chrome_ บน Ubuntu 20.04 ของฉัน Chrome เวอร์ชัน 96.0.4664.45 (รุ่นอย่างเป็นทางการ) (64 บิต)
Score:10
ธง jp

แก้ไขไฟล์ ubuntu-helpers:
sudo gedit /etc/apparmor.d/abstractions/ubuntu-helpers
ภายใต้ โปรไฟล์ sanitized_helper {,
ค้นหาบรรทัดที่ขึ้นต้น /opt/google/chrome
เพิ่มบรรทัดนี้:
/opt/google/chrome/crashpad_handler Pixr
บันทึกไฟล์
โหลดโปรไฟล์ evince อีกครั้ง (ในขณะที่อยู่ใน /etc/apparmor.d):
sudo apparmor_parser -r usr.bin.evince

cn flag
ขอบคุณมาก! ทำงานภายใต้ Debian 11 เช่นกัน สำหรับส่วนสุดท้าย คุณสามารถเรียกใช้ `sudo service apparmor restart`
cn flag
ฉันใช้ `/opt/google/chrome/chrome_crashpad_handler Pixr` เนื่องจากไม่มีสิ่งใดในพาธที่มีชื่อนั้น `/opt/google/chrome/crashpad_handler` และวิธีแก้ปัญหาก็ใช้การได้ จากนั้นฉันก็เปลี่ยนกลับเป็นโซลูชันของคุณ มันหยุดทำงาน จากนั้นฉันก็ย้อนกลับไปที่วิธีแก้ปัญหาของฉัน :|
jp flag
ในระบบของฉัน มันยังคงเป็น `chrome_crashpad_handler` นี่คือ Chrome เวอร์ชัน 94.0.4606.61 (รุ่นทางการ) (64 บิต) แปลกมากที่ชื่อจะแตกต่างกันในระบบของคุณ
cn flag
ฉันที่สอง @ssi-anik เช่น Debian 11 (Bullseye) มีคำนำหน้า `chrome` ข้างหน้า `crashpad_handler` ดังนั้นคำตอบของ @ssi-anik จึงดีสำหรับบางกรณี
Rob Rutten avatar
ru flag
ฉันต้องการคำนำหน้า chrome_ เป็นครั้งที่สอง ใช้งานได้ใน Ubuntu 18,04 ของฉัน!
ng flag
คุณสามารถค้นหาเส้นทางด้วย `$ dpkg -S `. ฉันมี Chrome มาตรฐานจาก Google (ไม่ใช่โครเมียมหรือทางเลือกอื่น) สำหรับเส้นทางของคำตอบ: `dpkg-query: ไม่พบเส้นทางที่ตรงกับรูปแบบ /opt/google/chrome/crashpad_handler` ด้วยคำนำหน้า `chrome_`: `google-chrome-stable: /opt/google/chrome/chrome_crashpad_handler`
ng flag
การเพิ่มบรรทัดนี้ครอบคลุมทั้งสองกรณี: `/opt/google/chrome{,-beta,-unstable}/{,chrome_}crashpad_handler Pixr,`
water stone avatar
in flag
ฉันยังมี /opt/google/chrome/chrome_crashpad_handler เท่านั้น ไม่มี /opt/google/chrome/crashpad_handler (ชื่อไฟล์เดิมชัดเจนกว่า)
water stone avatar
in flag
โหลดโปรไฟล์ evince ซ้ำจาก dir ใดก็ได้: sudo apparmor_parser -r /etc/apparmor.d/usr.bin.evince
Score:2

ฉันได้สร้างคำขอผสานบน AppArmor เพื่อแก้ไขปัญหานี้:

https://gitlab.com/apparmor/apparmor/-/merge_requests/830

David avatar
cn flag
จะทำอย่างไรในภายหลังเมื่อไม่มีลิงค์ หากมีข้อมูลสำคัญในลิงค์ให้รวมไว้ในคำตอบ

โพสต์คำตอบ

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