รหัสผ่านสำหรับการดำเนินการคำสั่งด้วย sudo แคชนานเท่าไหร่?


23

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


1
เพียง FYI sudo -vคุณสามารถแจ้งให้ขยายวันหมดอายุโดยใช้ นี่เป็นวิธีที่ดีในการวางสคริปต์ที่เรียกใช้คำสั่ง sudo เพื่อให้คุณถามรหัสผ่านในตอนเริ่มต้น
valbaca

หมายเหตุ sudo ไม่ได้แคชรหัสผ่านจริง Sudo ไม่จำเป็นต้องใช้รหัสผ่านเลยในการทำงานมันจะถามเพื่อตรวจสอบว่าผู้ใช้ได้รับอนุญาตให้รันคำสั่งที่กำหนด โดยทั่วไปจะเก็บข้อมูลประจำตัวผู้ใช้สำหรับช่วงเวลา (เป็น "การประทับเวลา" พิเศษดูคำตอบยอดนิยม) ในระหว่างที่ไม่ต้องการให้ผู้ใช้ยืนยันตัวเองอีกครั้ง รหัสผ่านจะไม่ถูกแคช (เก็บไว้) ไม่เหมือนกับเว็บเบราว์เซอร์หรือคีย์เข้ารหัส
anthony

คำตอบ:


20

man 5 sudoersแจ้งให้เราทราบว่ามีตัวเลือกtimestamp_timeout:

timestamp_timeout

จำนวนนาทีที่สามารถผ่านไปก่อนที่ sudo จะขอรหัสผ่านอีกครั้ง การหมดเวลาอาจรวมถึงส่วนประกอบที่เป็นเศษส่วนหากจำนวนนาทีไม่เพียงพอตัวอย่างเช่น 2.5 ค่าเริ่มต้นคือ 5 ตั้งค่านี้เป็น 0 เพื่อให้ใส่รหัสผ่านทุกครั้ง หากตั้งค่าเป็นน้อยกว่า 0 การประทับเวลาของผู้ใช้จะไม่หมดอายุ สามารถใช้เพื่ออนุญาตให้ผู้ใช้สร้างหรือลบการประทับเวลาของตนเองผ่าน“ sudo -v” และ“ sudo -k” ตามลำดับ

ใช่มันสามารถกำหนดค่าผ่าน/etc/sudoersและโดยค่าเริ่มต้นมันจะหมดอายุหลังจาก 5 นาที


4
และคุณรู้ว่าใช้visudoเพื่อแก้ไขsudoการกำหนดค่าไม่เคยแก้ไข/etc/sudoersโดยตรง
Carlos Campderrós

2
@ CarlosCampderrós: ​​จริงไหม และ (หากเป็นไปได้) ให้เปิดรูทเชลล์อีกอันไว้ทางด้านที่ปลอดภัยเสมอ :)
Ulrich Schwarz

7

ขึ้นอยู่กับการกำหนดค่าของคุณ เริ่มต้นในการกระจายมากที่สุด (และในแหล่งที่มา) คือ 5 นาที แต่คุณสามารถเปลี่ยนได้ด้วยตัวเลือกในtimestamp_timeout /etc/sudoersจากman sudoers:

จำนวนนาทีที่สามารถผ่านไปก่อนที่ sudo จะขอรหัสผ่านอีกครั้ง การหมดเวลาอาจรวมถึงส่วนประกอบที่เป็นเศษส่วนหากจำนวนนาทีไม่เพียงพอตัวอย่างเช่น 2.5 ค่าเริ่มต้นคือ 5 ตั้งค่านี้เป็น 0 เพื่อให้ใส่รหัสผ่านทุกครั้ง หากตั้งค่าเป็นน้อยกว่า 0 การประทับเวลาของผู้ใช้จะไม่หมดอายุ สามารถใช้เพื่ออนุญาตให้ผู้ใช้สร้างหรือลบการประทับเวลาของตนเองผ่าน "sudo -v" และ "sudo -k" ตามลำดับ

ตัวอย่างเช่นหากต้องการตั้งค่าการหมดเวลาสำหรับผู้ใช้chrisเป็น 20 นาทีให้เพิ่มสิ่งต่อไปนี้/etc/sudoersหรือในไฟล์ใน/etc/sudoers.d(หมายเหตุ: ทั้งลำดับของกฎในไฟล์เหล่านี้และลำดับของไฟล์เหล่านี้มีความสำคัญโดยไม่ได้ตั้งใจแทน กฎที่จะดำเนินการในภายหลัง):

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