ตั้งค่า HISTIGNORE เป็น " sudo -S "
$ export HISTIGNORE='*sudo -S*'
จากนั้นส่งรหัสผ่านของคุณอย่างปลอดภัยไปยัง sudo:
$ echo "your_password" | sudo -S -k <command>
"HISTIGNORE" หมายถึงการไม่บันทึกคำสั่งนี้ลงในประวัติ นั่นคือประวัติในหน่วยความจำหรือไฟล์ "~ / .bash_history"
ตัวอย่างเช่นด้านล่างจะไพพ์รหัสผ่านของคุณอย่างปลอดภัยไปยังคำสั่ง sudo โดยไม่ต้องเก็บประวัติรหัสผ่านของคุณ
“ -S” หมายถึงการใช้ stdin สำหรับรหัสผ่าน
“ -k” หมายถึงการเพิกเฉยต่อข้อมูลประจำตัวที่แคชเพื่อบังคับให้ sudo ถามทุกครั้ง นี่คือพฤติกรรมที่สอดคล้องกัน
$ export HISTIGNORE='*sudo -S*'
$ echo "<your_password>" | sudo -S -k whoami
$ echo "<your_password>" | sudo -S -k cat /etc/shadow
$ echo "<your_password>" | sudo -S -k bash /tmp/myscript.sh
ข้อเสียของวิธีการข้างต้นคือถ้าคุณต้องการดูคำสั่งที่คุณใช้ในประวัติศาสตร์ในภายหลังพวกเขาจะไม่อยู่ที่นั่น อีกวิธีคือการอัปเดตแคชข้อมูลรับรองความถูกต้องของ sudo (ค่าเริ่มต้นถูกเปิดใช้งานด้วยการหมดเวลา 5 นาที) จากนั้นเรียกใช้ sudo แยกต่างหาก แต่ข้อเสียของสิ่งนี้คือคุณจะต้องระวังแคช 5 นาที
ตัวอย่างเช่น:
$ export HISTIGNORE='*sudo -S*'
$ echo "<your_password>" | sudo -S -v
$ sudo whoami
$ echo "<your_password>" | sudo -S -v
$ sudo cat /etc/shadow
$ echo "<your_password>" | sudo -S -v
$ sudo /tmp/myscript.sh
หมายเหตุฉันเรียกใช้ sudo ก่อนแต่ละคำสั่งเพื่อให้แน่ใจว่ามีการอัพเดตแคช sudo เนื่องจากค่าเริ่มต้นคือ 5 นาที ใช่ whoami ไม่ควรใช้เวลา 5 นาที แต่ฉันคิดว่ามันอาจจะทำงานต่อหน้าแต่ละคำสั่งเพื่อความมั่นคง คุณสามารถใส่ "export HISTIGNORE = ' sudo -S'' ในไฟล์ ~ / .bashrc ของคุณจากนั้นโหลดด้วย " ~ / .bashrc "หรือออกจากระบบจากนั้นเข้าสู่ระบบอย่างไรก็ตามฉันคิดว่าใช้สิ่งนี้เพื่อจุดประสงค์ในการเขียนสคริปต์ดังนั้นฉันจะเก็บมันไว้ที่ด้านบนสุดของสคริปต์ทั้งหมดของฉันเพื่อความปลอดภัยที่ดีที่สุดการตั้งค่า" echo "" | sudo -S -v "ไปที่ตัวแปรแทนอาจเป็นความคิดที่ดีจากนั้นให้เรียกใช้ตัวแปรก่อนที่แต่ละคำสั่งที่ต้องการสิทธิ์รูทดูความคิดเห็นของ Janar ความคิดเห็นของ" John T "ควรรวมพารามิเตอร์" -k "ด้วย ราวกับว่าคุณใช้ "sudo -S" โดยไม่มี "-k" และ sudo รับรองความถูกต้องแคชมีข้อมูลประจำตัวของคุณแล้ว (และยังคงถูกต้องแคชการตรวจสอบความถูกต้อง sudo เริ่มต้นคือ 5 นาที) จากนั้น bash จะใช้รหัสผ่านของคุณเป็นคำสั่งแทน ไม่ดี
halt
เรียกใช้เป็นรูท