ทำไมบางคนไม่ควรใช้รหัสผ่านในบรรทัดคำสั่ง


33

เหตุใดผู้คนจึงกลัวที่จะเขียนรหัสผ่านในบรรทัดคำสั่ง

ไฟล์ประวัติอยู่ใน~/.historyดังนั้นจึงใช้ได้เฉพาะกับผู้ใช้ที่ดำเนินการคำสั่ง (และรูท)


2
คุณสามารถหลีกเลี่ยงการบันทึกคำสั่งในไฟล์ประวัติของคุณ ดูคำตอบในหลีกเลี่ยงการออกคำสั่งในประวัติศาสตร์
Luc M

5
จุ๊บ! แม้ว่าคุณจะกำหนดรหัสผ่านด้วยexport mypass=secretและคุณจะใช้งานa_command --password=$mypassคุณจะเห็นsecretในpsตาราง
Luc M

คำตอบ:


51

บรรทัดคำสั่งไม่ได้มีให้ในประวัติศาสตร์เท่านั้น พวกเขายังมีอยู่เช่นในผลลัพธ์ของps -ocmdหรือผ่าน/procระบบแฟ้ม ( /proc/<pid>/cmdline) ซึ่งเป็นที่ที่psพวกเขาอ่าน

นอกจากนี้ไดเรกทอรีบ้านของผู้ใช้มักจะสามารถอ่านได้ทั่วโลกหรือเป็นกลุ่ม คุณสามารถทำให้ไฟล์ประวัติอ่านได้โดยผู้ใช้เท่านั้น แต่อาจไม่รอดและการลบ


17

รหัสผ่านในบรรทัดคำสั่งเป็นเพียงความคิดที่ไม่ดีตลอดทาง นอกเหนือจากวิธีการที่กล่าวถึงในคำตอบอื่น ๆ :

  • proc /
  • รายการกระบวนการ ( ps)
  • ไฟล์ประวัติของผู้ใช้

คำสั่งของผู้ใช้สามารถแสดงในตำแหน่งเหล่านี้เช่นกัน:

  • บันทึกการตรวจสอบ
  • / var / log / *

นอกจากนี้คำสั่งของผู้ใช้ยังสามารถแสดงเมื่อผู้ใช้เข้าสู่ระบบระหว่างระบบดังนั้นโดยทั่วไปแล้วมันเป็นข้อปฏิบัติที่ไม่ดีและควรหลีกเลี่ยงตลอดเวลา


3
+1 สำหรับการอ้างอิง / var / log โปรดทราบว่าบ่อยครั้งที่บันทึกของระบบที่สำคัญสามารถส่งไปที่อื่นได้และไม่จำเป็นต้องอยู่บนระบบเดียวกัน ดังนั้นรหัสผ่านของคุณอาจถูกส่งไปยังเครือข่ายในรูปแบบข้อความธรรมดาโดยไม่ได้ตั้งใจ
Mark Glossop

11

ปัญหาคือการมองเห็นของพารามิเตอร์ (กับผู้ใช้รายอื่นในกรณีส่วนใหญ่แม้สำหรับรูท) ในขณะที่คำสั่งกำลังทำงานอยู่ ดูผลลัพธ์ของ

ps -eo pid,user,args
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.