ฉันกำลังเขียนแอปพลิเคชันที่คอมไพล์ปกติที่ต้องการสร้างไฟล์พิเศษและเขียนคุกกี้วิเศษลงไป ฉันไม่สามารถเขียนไฟล์ได้โดยตรงจากแอปพลิเคชันโมเดลความปลอดภัยของระบบต้องการให้ฉันเปิดใช้เครื่องมือตัวช่วยที่มีสิทธิ์ระดับสูงในการทำเคล็ดลับ ฉันสามารถให้ข้อโต้แย้งกับเครื่องมือช่วยเหลือได้ไม่ จำกัด จำนวน ตอนนี้ฉันต้องการเลือกคำสั่งระบบที่ง่ายมากซึ่งจะทำหน้าที่เป็นเครื่องมือช่วยเหลือและสร้างไฟล์ให้ฉัน บางสิ่งเช่นนี้
/bin/sh -c "/bin/echo -n 'magic' > /some/where/file"
Simple touch
ไม่ตัดตามที่ฉันต้องการเขียนคุกกี้ลงในไฟล์ง่ายๆecho
โดยไม่มี shell wrapper ไม่ทำงานเนื่องจากต้องการการเปลี่ยนเส้นทางเพื่อเขียนไฟล์ ฉันรู้สึกไม่สบายใจที่จะเรียกเชลล์ด้วยสิทธิพิเศษรูทเพื่อทำงานที่ไม่สำคัญ มีคำสั่งระบบที่เรียบง่ายและ จำกัด มาก ๆ ที่ฉันสามารถเรียกให้เขียนไฟล์ให้ฉันได้ไหม?
tee
ที่สามารถนำมาใช้ในการเขียนคุกกี้ใช้ ขอบคุณ!
/bin/sh -c 'echo magic > /path/to/magic/file'
ไม่ทำงาน? นั่นจะเป็นไฟล์เรียกทำงานและอาร์กิวเมนต์สองตัว คุณจะต้องสร้างอาร์กิวเมนต์สุดท้ายเป็นสตริง (ที่มี sprintf หรือเทียบเท่า) มีเหตุผลนี้จะไม่ทำงานสำหรับคุณ? จากคำถามของคุณดูเหมือนว่า doCommandAsRoot () ไม่ได้ป้อนข้อมูลเพื่อสตรีมไปยังคำสั่งถูกต้องหรือไม่ มิฉะนั้นคุณสามารถแทนที่อาร์กิวเมนต์สุดท้ายด้วย'cat > /path/to/magic/file'
และส่งผ่านข้อมูลแทนการสร้างสตริง