วิธีที่เหมาะสมในการให้ผู้ใช้ป้อนรหัสผ่านสำหรับสคริปต์ทุบตีโดยใช้เฉพาะ GUI (ที่ซ่อนเทอร์มินัล)
ฉันได้สร้างสคริปต์ทุบตีที่ใช้ kdialog เฉพาะสำหรับการโต้ตอบกับผู้ใช้ มันถูกเปิดตัวจากไฟล์ ".desktop" เพื่อให้ผู้ใช้ไม่เคยเห็นเทอร์มินัล ดูเหมือน 100% เหมือนแอป GUI (แม้ว่าจะเป็นเพียงสคริปต์ทุบตี) มันทำงานใน KDE เท่านั้น (Kubuntu 12.04) ปัญหาเดียวของฉันคือจัดการรหัสผ่านให้ปลอดภัยและสะดวก ฉันไม่สามารถหาทางออกที่น่าพอใจ สคริปต์ได้รับการออกแบบให้รันในฐานะผู้ใช้ปกติและแจ้งให้ใส่รหัสผ่านเมื่อต้องการคำสั่ง sudo ก่อน ด้วยวิธีนี้คำสั่งส่วนใหญ่ที่ไม่ต้องการสิทธิ์ sudo จะถูกเรียกใช้ในฐานะผู้ใช้ปกติ เกิดอะไรขึ้น (เมื่อสคริปต์รันจากเทอร์มินัล) คือผู้ใช้จะได้รับพร้อมต์สำหรับรหัสผ่านของพวกเขาหนึ่งครั้งและการหมดเวลา sudo เริ่มต้นทำให้สคริปต์เสร็จสิ้นรวมถึงคำสั่ง sudo เพิ่มเติมโดยไม่ต้องแจ้งผู้ใช้อีกครั้ง นี่คือวิธีที่ฉันต้องการให้ทำงานเมื่อเรียกใช้ GUI ด้านหลัง ปัญหาหลักคือการใช้kdesudoเพื่อเปิดสคริปต์ของฉันซึ่งเป็นวิธี GUI มาตรฐานหมายความว่าสคริปต์ทั้งหมดจะถูกดำเนินการโดยผู้ใช้รูท ดังนั้นความเป็นเจ้าของไฟล์จึงถูกกำหนดให้กับผู้ใช้รูทฉันไม่สามารถพึ่งพา~/ในพา ธ ได้และสิ่งอื่น ๆ อีกมากมายนั้นน้อยกว่าอุดมคติ การรันสคริปต์ทั้งหมดในฐานะผู้ใช้รูทเป็นเพียงโซลูชันที่ไม่น่าพอใจและฉันคิดว่านี่เป็นวิธีปฏิบัติที่ไม่ดี ฉันขอขอบคุณแนวคิดใด ๆ ที่ให้ผู้ใช้ป้อนรหัสผ่าน sudo เพียงครั้งเดียวผ่านทาง GUI ในขณะที่ไม่ได้ใช้สคริปต์ทั้งหมดในฐานะที่เป็นรูท …