วิธีการป้องกันรหัสผ่านหรือข้อมูลที่ละเอียดอ่อนอื่น ๆ จากการถูกเก็บไว้ในประวัติทุบตีเมื่อใช้ grep?


21

ฉันต้อง grep เมื่อเร็ว ๆ นี้สำหรับรหัสผ่านที่อาจถูกบันทึกไว้ในไฟล์ ฉันไม่ต้องการให้บรรทัดนั้นปรากฏในประวัติทุบตี

ฉันจะป้องกันรหัสผ่านหรือข้อมูลที่ละเอียดอ่อนอื่น ๆ จากการถูกเก็บไว้ในประวัติทุบตีเมื่อใช้ grep ได้อย่างไร? ตัวอย่างเช่นฉันจะได้รับ grep เพื่ออ่านรูปแบบจาก stdin หรือคอนโซลได้อย่างไร

คำตอบ:


37

หากคุณใส่HISTCONTROL=ignorespace. bashrc ของคุณและใส่ช่องว่างหน้าชื่อคำสั่งจะไม่ถูกเพิ่มลงในประวัติของคุณ

$ export HISTCONTROL=ignorespace
$ grep "passwd" secret_password_file.txt   # added to history
$  grep "passwd" secret_password_file.txt  # not added to history

3
FWIW: คำถามในชื่อเรื่องและคำถามในเนื้อหานั้นต่างออกไปโดยสิ้นเชิง ฉันตอบคำถามในชื่อ

คำติชมของคุณเหมาะสม ฉันเพิ่งแก้ไขชื่อ ตอนนี้มันดีกว่าไหม? ฉันยังคงคิดว่า (และชุมชนก็ดูเหมือนกัน) ว่าคำตอบของคุณมีความเกี่ยวข้องมากที่สุด
Leo

1
ฉันได้แก้ไขคำถามของคุณเพื่อชี้แจงสิ่งต่าง ๆ ทำให้ทั้งสองคำถาม (ป้องกันบางสิ่งไม่ให้ถูกเก็บไว้ในประวัติและอ่านจาก stdin ด้วย grep) ด้วยวิธีนี้คำตอบทั้งหมดยังคงใช้ได้ แต่โซลูชันที่แตกต่างกันมากจะไม่สับสน

5

เพียงเพื่อความสมบูรณ์ฉันตอบคำถามในร่างกาย: วิธีการ grep เพื่ออ่านรูปแบบจาก stdin:

คุณสามารถใช้-fตัวเลือก:

grep -f- /path/to/file

ที่จะอ่านจำนวนรูปแบบใด ๆ จากstdinหนึ่งรูปแบบต่อบรรทัด ( -หมายถึงstdinคุณยังสามารถระบุไฟล์ที่มีรูปแบบหนึ่งรูปแบบต่อบรรทัด) grepจะจับคู่บรรทัด/path/to/fileที่ตรงกับรูปแบบใดรูปแบบหนึ่งที่ระบุ


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

2

นี่คือสิ่งที่ดีที่สุดที่ฉันสามารถทำได้:

grep $(read -p "Pattern: "; echo $REPLY) .*

ปลอดภัยหรือไม่ อย่างไรก็ตามมีการกู้คืนรูปแบบอื่นนอกเหนือจากการเลื่อนเทอร์มินัลหรือไม่ มีวิธีที่ดีกว่าหรือไม่?


3
คุณสามารถใช้read -sเพื่อป้องกันเสียงสะท้อน (ดูคำถามนี้ด้วย ) ความลับจะปรากฏในpsผลลัพธ์แม้ว่า คุณสามารถใช้แทนgrep -f /dev/stdin *(หรือgrep -f - *) เพื่อที่ grep จะอ่านรูปแบบจากไฟล์แทน, สิ้นสุดอินพุตด้วย^Dหรือ:(read -es; echo $REPLY) | grep -f - *
mr.spuratic

1
เชลล์การดักจับควรมีเครื่องหมายอัญประกาศล้อมรอบ ในขณะนี้สิ่งนี้จะพังถ้าผู้ใช้ป้อนช่องว่างหรืออักขระพิเศษ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.