ฉันมีเครื่องมือทุบตีบางอย่างที่ใช้mysql -e "{command}"
ฟังก์ชั่นนี้ การป้อนรหัสผ่านทุกครั้งที่ฉันใช้เครื่องมือเหล่านี้จะเป็นความเจ็บปวดดังนั้นเพื่อหลีกเลี่ยงการเขียนรหัสผ่านในไฟล์ธรรมดาด้วยรหัสฉันเก็บไว้ในหน่วยความจำ (โดยใช้read -s
) และมี BASH อ่านทุกครั้งที่รันคำสั่ง
Mysql ยังคงคิดว่ารหัสผ่านกำลังถูกส่งผ่านบรรทัดคำสั่ง (เพราะในลักษณะของการพูดเป็น) และยังทำให้ฉันมีข้อผิดพลาด "การใช้รหัสผ่านบนอินเตอร์เฟสบรรทัดคำสั่งอาจไม่ปลอดภัย"
สำหรับวัตถุประสงค์ของฉันฉันไม่จำเป็นต้องระงับข้อความนี้ สิ่งที่ฉันจำเป็นต้องรู้คือมันเป็นสิ่งที่จะทำให้มันไม่ปลอดภัย? รหัสผ่านไม่สามารถมองเห็นได้ทางกายภาพดังนั้นการท่องไหล่จึงไม่สามารถทำได้และแม้แต่คนที่เดารหัสผ่าน SSH ของฉันก็ไม่สามารถทำได้เพราะมันถูกเก็บไว้ในหน่วยความจำแทนที่จะเป็นสคริปต์เอง การจู่โจมแบบคนกลางหรือสิ่งที่คล้ายกันเป็นไปได้หรือไม่
bash
อ่านมันอย่างไรเมื่อคุณรันคำสั่ง? ถ้าคุณทำแล้วทุกคนสามารถดูได้ในmysql -p"$pass"
ps
~/.my.cnf
ตัวอย่างคุณสามารถระบุต่อโฮสต์โดยทำ[client<hostname>]
เช่น[clientlocalhost]
เครื่องมือ MySQL จะใช้มันโดยอัตโนมัติดังนั้นมันจึงง่ายขึ้นและปลอดภัยขึ้น