ข้อมูล
- ฉันต้องการให้ผู้ใช้โอเปอเรเตอร์บนเครื่องนี้ติดตั้ง cifs ของตัวเอง
sudoers
ไฟล์แล้วมี/bin/mount -t cifs //*/* /media/* -o username=*
คำสั่งสำหรับผู้ประกอบการทั้งหมด- ฉันต้องการให้ผู้ใช้เมา
cifs
นต์แชร์ผ่านสคริปต์ที่พิมพ์รหัสผ่านเพียงครั้งเดียวไม่ใช่สองครั้ง - รหัสผ่าน sudo และรหัสผ่าน cifs เหมือนกัน
สิ่งที่ฉันมีอยู่แล้ว
สคริปต์นี้ใช้งานได้:
#!/bin/bash
sudo 'mount -t cifs //192.168.1.1/home /media/$USER/home -o username=$USER'
... แต่ผู้ใช้ต้องพิมพ์รหัสผ่านเดียวกันสองครั้ง!
- ครั้งเดียวสำหรับ
sudo
- ครั้งหนึ่งสำหรับเขานั้นเอง
สิ่งนี้จะได้ผล:
#!/bin/bash
echo -n Password:
read -s szPassword
echo $szPassword | sudo -S sh -c 'echo $szPassword | mount -t cifs //192.168.1.1/home /media/$USER/home -o username=$USER'
... แต่สิ่งนี้จะทำให้ฉันต้องอนุญาตให้ผู้ใช้โอเปอเรเตอร์ทุกคนสามารถsudo sh
(ปัญหาด้านความปลอดภัยที่สำคัญ)
คำถาม
วิธีการติดตั้งส่วนแบ่ง CIFS ในทุบตี ¹โดยไม่ต้องใส่sh
ในsudoers
ไฟล์หรือสร้างไฟล์ถาวร / ชั่วคราว ???
หมายเหตุ 1:ไม่มีไพ ธ อน, Perl, C, Go, ... ได้โปรด?
หมายเหตุ 2:ฉันรู้ว่าฉันสามารถลบรหัสผ่านผ่านsudoers
ไฟล์ได้ แต่ฉันพยายามกระชับความปลอดภัยไม่คลายมันโดยไม่ยอมแพ้ ...
printf "%s\n" "$szPassword" "$szPassword" | sudo -S mount -t cifs / ...
ล่ะ