Score:0

วิธีต่อท้ายบรรทัด /etc/fstab ผ่าน ssh

ธง cn

ฉันมีโปรแกรม hdd automount ที่เขียนขึ้น

ซอฟต์แวร์ใช้ ssh เพื่อส่งคำขอกับเครื่องเป้าหมาย แนวคิดคือ hdd ที่ติดตั้งใหม่จะถูกเพิ่มไปยัง fstab โดยอัตโนมัติ

ฉันได้ทำทุกอย่างจนถึงจุดที่ fstab line enty พร้อมที่จะต่อท้ายไฟล์

ฉันพยายามผนวกสิ่งนี้ในซอฟต์แวร์ของฉัน:

command.RunCommandSudo($"echo \"{mountstring}\" >> /etc/fstab");

ส่งผลให้แบบสอบถาม ssh ในรูปแบบต่อไปนี้:

sudo echo "UUID=X /mnt/test ext4 ค่าเริ่มต้น 0 1" >> /etc/fstab 

=> ปฏิเสธการอนุญาต

จะเป็นทางที่เหมาะสมได้อย่างไร? ฉันสงสัยว่าวิธีที่เหมาะสมสำหรับซอฟต์แวร์อัตโนมัติจะต้องใช้โปรแกรมแก้ไขข้อความเช่นนาโนหรือไม่

Matt Murphy avatar
ng flag
ฉันคิดว่าการอ้อมบรรทัดคำสั่ง (>>) ไม่สามารถตีความได้ว่าเชื่อมโยงกับเสียงสะท้อนเพื่อที่จะพูด ฉันเดาว่ามันจบลงที่การรับเอาต์พุตจาก sudo แทน
Score:2
ธง cn

แบบนี้

sudo su -c "echo 'UUID=X /mnt/test ext4 ค่าเริ่มต้น 0 1' >> /etc/fstab"

โปรดทราบว่าผู้ใช้รูทควรใช้สคริปต์เช่นนี้ ไม่ใช่ผู้ดูแลระบบของคุณ เพื่อลบล้างการใช้ sudo

ฉันทำสิ่งนี้มากขึ้น:

grep -q '/mnt/test' /etc/fstab || 
printf 'UUID=X /mnt/test ext4 ค่าเริ่มต้น 0 1\n' >> /etc/fstab

ใช้รูทผู้ใช้เพื่อทำสิ่งนี้

Score:2
ธง id

อีกวิธีหนึ่งคือการใช้ ที สั่งการ.

ชื่อ
       ที - อ่านจากอินพุตมาตรฐานและเขียนไปยังเอาต์พุตและไฟล์มาตรฐาน

เรื่องย่อ
       ที [ตัวเลือก]... [ไฟล์]...

คำอธิบาย
       คัดลอกอินพุตมาตรฐานไปยังแต่ละ FILE และไปยังเอาต์พุตมาตรฐานด้วย

       -a, --ผนวก
              ต่อท้าย FILEs ที่กำหนด ห้ามเขียนทับ

ดังนั้นสำหรับคำสั่งของคุณ คุณสามารถทำได้ดังนี้:

echo "UUID=X /mnt/test ext4 ค่าเริ่มต้น 0 1" | sudo tee -a /etc/fstab

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา