รหัสผ่านถูกถามสำหรับคำสั่ง sudo บ่อยแค่ไหน? ฉันจะตั้งค่าได้ที่ไหน


24

ผมดำเนินการค่อนข้างมากของsudoคำสั่ง

ฉันสังเกตเห็นว่าถ้าฉันดำเนินการอย่างใดอย่างหนึ่งแล้วอีกอันหนึ่งภายในไม่กี่นาทีครั้งที่ 2 ฉันไม่ได้รับข้อความ:

[sudo] รหัสผ่านสำหรับ my_username:

แต่ฉันจะได้รับเมื่อมีเวลามากขึ้นระหว่างการดำเนินการของสองคำสั่ง

ระยะเวลาที่ข้อความไม่ปรากฏคืออะไร เราจะตรวจสอบ / อัพเดทได้อย่างไร?


1
sudo visudo แล้ว% sudo line ควรเป็น% sudo ALL = (ALL: ALL) NOPASSWD: ALL มันจะไม่ถามรหัสผ่านของคุณเมื่อคุณพิมพ์ sudo any-stuff
Qasim

3
นี่ (NOPASSWD: ALL) เป็นคำแนะนำที่อันตรายมาก มันจะทำให้การติดตั้งของคุณไม่ปลอดภัย
Sri

คำตอบ:


31

การหมดเวลาเริ่มต้นของsudo15 นาที; นั่นคือsudoจะจดจำรหัสผ่านของคุณเป็นเวลา 15 นาทีโดยค่าเริ่มต้น

/etc/sudoersคุณสามารถปรับเปลี่ยนหมดเวลาเริ่มต้นนี้โดยการเพิ่มสตริงในแฟ้ม อย่างไรก็ตามคุณไม่ได้แก้ไขไฟล์โดยตรง แต่คุณใช้คำสั่งsudo visudoแทน

ดังนั้นพิมพ์sudo visudoเทอร์มินัล สิ่งนี้จะเปิดไฟล์ (จริง ๆ แล้วเป็นไฟล์ชั่วคราว) เพื่อให้เราแก้ไขโดยใช้เครื่องมือแก้ไขที่คุณต้องการ

หมายเหตุ:หากคุณใช้visudoเป็นครั้งแรกคุณควรถูกถามว่าคุณต้องการใช้ตัวแก้ไขใดดังนั้นเลือกตัวแก้ไขของคุณ ไม่มีการแก้ไข "ดี" nanoแต่ฉันชอบ หากคุณเคยใช้แล้วvisudoและเลือกแก้ไขก่อน แต่คุณต้องการที่จะใช้โปรแกรมแก้ไขเวลาเป็นอีกที่คุณสามารถทำsudo EDITOR=vi visudoใช้viหรือเปลี่ยนการใช้งานnano หากคุณต้องการที่จะเปลี่ยนแปลงแก้ไขที่คุณต้องการอย่างถาวรทำnanosudo update-alternatives --config editor

มองหาบรรทัดนี้:

Defaults    env_reset

และเพิ่ม(ด้วยเครื่องหมายจุลภาค) ที่ส่วนท้ายของมันโดยที่Xคือเวลาที่คุณต้องการตั้งค่าในไม่กี่นาทีtimestamp_timeout=X

ดังนั้นสายของคุณควรมีลักษณะเช่นนี้เป็นตัวอย่าง:

Defaults    env_reset,timestamp_timeout=5

หากคุณระบุ 0 คุณจะถูกถามรหัสผ่านเสมอ หากคุณระบุค่าลบการหมดเวลาจะไม่หมดอายุ

เมื่อเสร็จแล้วบันทึกและออก

ที่มา: RootSudoTimeout


ขอบคุณ @Alaa มันเป็นคำตอบที่ดีและเป็นประโยชน์ เช่นเดียวกับหมายเหตุด้านCtrl + xส่วนหนึ่งอาจไม่ตรงกับตัวแก้ไขเสมอตัวอย่างเช่นvi(ในกรณีของฉัน)
fedorqui

โดยวิธีการที่ผมทำผิดพลาดครั้งใหญ่เพิ่มบรรทัดใหม่มีเพียงแทนหนึ่งด้วยDefault timestamp-0 env_resetมันทำลายไฟล์ sudoers ของฉัน ต้องใช้askubuntu.com/a/73872/143251เพื่อแก้ปัญหา!
fedorqui

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

ใช่แล้วนั่นคือสิ่งที่ฉันทำ @Plutor แต่เป็นบรรณาธิการที่ผมได้กำหนดไว้สำหรับvi visudoปัญหาคือฉันบันทึกไฟล์แม้ว่าฉันจะได้รับข้อความเตือนเมื่อปิดมัน ความผิดของฉันอย่างชัดเจน
fedorqui

1
@ fedorqui ใช่ฉันต้องการลบส่วนนั้นออกเพราะใคร ๆ ก็สามารถใช้โปรแกรมแก้ไขอื่นได้ ฉันได้แก้ไขคำตอบของฉันเพื่อไม่เฉพาะบรรณาธิการ
Alaa Ali

3

ดูโพสต์ที่นี่: http://ubuntuforums.org/showthread.php?p=116697#post116697

แก้ไข/etc/sudoersไฟล์ใช้sudo visudoคำสั่งเพื่อความปลอดภัย เพิ่มtimestamp_timeout=0ในบรรทัดที่เริ่มDefaultsถามทุกครั้งหรือบวก X สำหรับการหน่วงเวลา X นาที


1
ฉันต้องลงทะเบียนในฟอรัมเพื่อดูมัน ในขณะเดียวกันคุณสามารถระบุไฟล์ที่ฉันควรแก้ไขด้วยtimestamp_timeout=0บรรทัดได้ไหม?
fedorqui

ตกลงคำตอบคงที่
Tuminoid

มันหลอก! ฉันจะยอมรับคำตอบอื่น ๆ เนื่องจากมีคำอธิบายที่ครอบคลุมมากขึ้นและรวมถึงการenv_resetอ้างอิงซึ่งเป็นสิ่งสำคัญ อย่างไรก็ตามคำตอบของคุณก็มีประโยชน์มากขอบคุณมาก!
fedorqui

0

ไม่แน่ใจว่าสิ่งนี้หมดอายุหรือไม่ แต่คุณสามารถลองได้

sudo su

มันจะถามคุณสำหรับรหัสผ่านและหลังจากนั้นคำสั่งทั้งหมดจะถูกเรียกใช้เป็น sudo


1
ใช่ @ Rat2000 แต่ฉันต้องการที่จะใช้กับผู้ใช้rootต่อไป ฉันคิดว่ามันปลอดภัยกว่า อย่างไรก็ตามขอขอบคุณสำหรับคำแนะนำ
fedorqui

3
sudo su ทำให้คุณรูต ข้อความแจ้งของคุณควรเป็น root @ yourpc โปรดทราบว่ารูทนั้นมี. bashrc ของตัวเองดังนั้นชื่อแทนของคุณจะไม่ทำงาน อย่าลืมว่ารูทสามารถสร้างความเสียหายอย่างรุนแรงต่อระบบดังนั้นระวัง!
speter
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.