นโยบายชุดกฎจะไม่มีผลบังคับใช้


12

ฉันพยายามเขียน.rulesไฟล์ใหม่สำหรับ PolicyKit ความพยายามทดสอบของฉัน (ในไดเรกทอรี/etc/polkit-1/rules.d/) มีลักษณะดังนี้:

polkit.addRule(function(action, subject) {
    polkit.spawn(["rm","/home/gabriel/test"]);
    if (action.id == "org.freedesktop.policykit.exec") {
        polkit.log("action=" + action);
        polkit.log("subject=" + subject);
    }
    return polkit.Result.NOT_HANDLED;
});

แต่เท่าที่ฉันสามารถบอกได้รหัสนี้ไม่เคยทำงาน testไฟล์ยังคงมีอยู่และมีการส่งออกบันทึกหลังจากทำงานบางอย่างเช่น$ pkexec -u otheruser bash

(ฉันได้ลองทำเครื่องหมาย.rulesไฟล์ว่าสามารถใช้งานได้)

คำตอบ:


15

หากคุณอยู่บนUbuntu 19.04 (หรือต่ำกว่า) แสดงว่าคุณยังคงใช้ PolKit เวอร์ชันเก่าซึ่งไม่มีไฟล์. rules แต่มีเฉพาะไฟล์. pkla และ. conf

บนพรอมต์คำสั่งให้ทำ:

pkaction --version

ถ้ามันบอกว่า <0.106 คุณสามารถใช้ไวยากรณ์เก่าได้เท่านั้น

คุณสามารถสร้างไฟล์. pkla ได้ /etc/polkit-1/localauthority/


1
Ubuntu 15.10 ยังคงเป็นเวอร์ชั่นเก่า pkaction --versionให้pkaction version 0.105
Roger Binns

5
Ubuntu 18.04 ยังคงดำเนินการ 0.105 !!!! พุทโธ่!!!!
Osqui

1
และแม้แต่เวอร์ชั่น 0.10++ ก็ยังอยู่ใน repos สำหรับ Ubuntu! พระเจ้าช่วย!
Suncatcher

2
อูบุนตู pkaction version 0.10519.04 ไม่สนับสนุนไฟล์กฎใหม่ใน JavaScript
เดนิสเดนิซอฟ

0

ในการทำงานตามที่คาดไว้คุณต้องใส่.rulesไฟล์ของคุณเองใน:

/usr/share/polkit-1/rules.d

โปรดทราบว่าควรแก้ไขคำถามนี้ด้วย


การย้ายไฟล์ดูเหมือนจะไม่เปลี่ยนแปลงอะไรเลย นอกจากนี้ตามเอกสาร polkitและวิกิพีเดีย Arch , /etc/polkit-1/rules.dควรจะใช้สำหรับการตั้งค่าของผู้ใช้ ดังนั้นฉันไม่แน่ใจว่าการเปลี่ยนแปลงไดเรกทอรีทำอะไร
Keidax

@ Keidax: ชื่อ.rulesไฟล์ของคุณคืออะไร?
Sylvain Pineau

ปัจจุบัน/usr/share/polkit-1/rules.d/10-udisks-personal.rules
Keidax
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.