ฉันมีโครงสร้างนี้ในโมดูลหุ่นกระบอกเพื่อเพิ่มบรรทัด /etc/sudoers
หลังจากบรรทัดสุดท้าย "ค่าเริ่มต้น":
เพิ่ม { "sudoers.ssh_auth_sock" :
เลนส์ => "Sudoers.lns",
รวม => "/etc/sudoers",
onlyif => "match Defaults/env_keep/var[. = 'SSH_AUTH_SOCK'] size==0",
การเปลี่ยนแปลง => [
# สร้างบรรทัดเริ่มต้นใหม่สำหรับตัวแปรสองตัว
"ins Defaults หลัง Defaults[last()]",
# ทำให้บรรทัดเริ่มต้นนี้เป็นประเภท +=
"ล้างค่าเริ่มต้น[last()]/env_keep/append",
# กำหนดค่าให้กับตัวแปรทั้งสอง
"ตั้งค่าเริ่มต้น[last()]/env_keep/var[1] SSH_AUTH_SOCK",
]
}
มันทำงานได้อย่างสมบูรณ์แบบบนเครื่อง RedHat 6 ของฉัน
ประกาศ: Augea[sudoers.ssh_auth_sock](provider=augeas):
--- /etc/sudoers 2021-10-12 13:30:52.880901115 +0000
+++ /etc/sudoers.augnew 2021-10-12 13:31:28.697931561 +0000
@@ -77,6 +77,7 @@
# ค่าเริ่มต้น env_keep += "บ้าน"
ค่าเริ่มต้น secure_path = /sbin:/bin:/usr/sbin:/usr/bin
+ค่าเริ่มต้น env_keep += SSH_AUTH_SOCK
## ถัดมาเป็นส่วนหลัก: ผู้ใช้สามารถเรียกใช้ซอฟต์แวร์ใดได้บ้าง
ประกาศ: /Stage[main]/Sudoers/Augeas[sudoers.ssh_auth_sock]/returns: ดำเนินการสำเร็จ
แต่มันล้มเหลวในเครื่อง RedHat 7 ของฉัน:
คำเตือน: Augea[sudoers.ssh_auth_sock](provider=augeas): การโหลดไฟล์ตั้งแต่หนึ่งไฟล์ขึ้นไปล้มเหลว ดูการดีบักสำหรับ /augeas//เอาต์พุตข้อผิดพลาด
ข้อผิดพลาด: /Stage[main]/Sudoers/Augeas[sudoers.ssh_auth_sock]: ไม่สามารถประเมิน: เกิดข้อผิดพลาดในการส่งคำสั่ง 'ins' ด้วยพารามิเตอร์ ["Defaults", "after", "/files/etc/sudoers/Defaults[last( )]"]/ข้อผิดพลาดในการส่งคำสั่ง 'ins' ด้วย params ["Defaults", "after", "/files/etc/sudoers/Defaults[last()]"]
ใครสามารถช่วยฉันเข้าใจสิ่งที่เปลี่ยนแปลงหรือสิ่งที่ฉันทำผิด เพื่อให้ตัวอย่างนี้ทำงานได้ในทั้งสองสภาพแวดล้อม