ฉันรู้แล้วว่าฉันต้องการปรับแต่งไฟล์ / etc / sudoers แต่ฉันต้องการดูข้อมูลแบบเต็มและวิธีแก้ปัญหาที่ไม่ต้องการให้ฉันใช้viโปรแกรมแก้ไข
ปรับปรุง: visudoไม่เคยพยายามที่จะแก้ไขไฟล์ที่มีสิ่งอื่นมากกว่า
ฉันรู้แล้วว่าฉันต้องการปรับแต่งไฟล์ / etc / sudoers แต่ฉันต้องการดูข้อมูลแบบเต็มและวิธีแก้ปัญหาที่ไม่ต้องการให้ฉันใช้viโปรแกรมแก้ไข
ปรับปรุง: visudoไม่เคยพยายามที่จะแก้ไขไฟล์ที่มีสิ่งอื่นมากกว่า
คำตอบ:
เรียกใช้sudo visudoและเพิ่มบรรทัดนี้:
Defaults timestamp_timeout=-1
man 5 sudoersดู -1ทำให้รหัสผ่านไม่หมดเวลา คุณสามารถเปลี่ยนจำนวนเป็นสิ่งที่คุณต้องการในไม่กี่นาที
หน้าคนสำหรับsudoบอกว่าsudo -v"ขยายเวลา sudo ออกไปอีก 5 นาที"
การเรียกใช้ 'sudo visudo' แทนการแก้ไขไฟล์จะทำให้ระบบตรวจสอบความถูกต้องของไฟล์ sudoers ก่อนที่จะยอมรับการเปลี่ยนแปลง ตัวอย่างเช่นหากคุณปล่อยให้ตัวละครเร่ร่อนไปที่ใดที่หนึ่งเมื่อคุณบันทึกและออกมันจะพูดว่า "มีข้อผิดพลาดในไฟล์ sudoers คุณต้องการทำอะไร" ... จึงให้โอกาสคุณในการย้อนกลับและแก้ไข เรื่องนี้เพิ่งเกิดขึ้นกับฉันเมื่อ 10 นาทีก่อน
visudoเรียกใช้การตรวจสอบสติพื้นฐานในไฟล์ sudoers ก่อนบันทึก หากคุณทำให้ไฟล์ยุ่งเหยิงโดยใช้viโดยตรงคุณอาจล็อคตัวคุณเองจากการใช้ sudo ทำให้การยกเลิกการเปลี่ยนแปลงนั้นยากมาก
visudoล้อมรอบตัวแก้ไขค่าเริ่มต้นของระบบ (ฉันจะเดาค่าเริ่มต้นของผู้ใช้รูทหากรูทแทนที่ค่าเริ่มต้น) ดังนั้นจึงไม่มีอะไรเกี่ยวข้องกับชื่อแถบ vi ในระบบของฉัน (ไม่ใช่ apple btw) ฉันได้รับ nano ลองใช้ตัวexport EDITOR='/bin/nano'แก้ไขอะไรก็ได้ที่คุณต้องการใช้ visudo
ใช้ความระมัดระวังอย่างมากเกี่ยวกับการแก้ไข/etc/sudoersโดยตรง!
ตัวอย่างเช่นฉันลองคำแนะนำข้างต้นโดยตรง:
sudo sh -c 'echo "\nDefaults timestamp_timeout=-1">>/etc/sudoers'
ซึ่งทำให้/etc/sudoersไฟล์ของฉันยุ่งเหยิง(บน CentOS Virtualbox VM) ควรได้รับ:
sudo sh -c 'echo -e "\nDefaults timestamp_timeout=-1">>/etc/sudoers'
โชคดีที่ฉันสามารถเข้าถึงบัญชีรูทเข้าสู่ระบบในฐานะรูทใช้visudoและแก้ไขปัญหาได้! ดังนั้นฉันเห็นด้วยกับความคิดเห็นข้างต้นที่จะใช้visudoแทน
ข้อมูลทั้งหมดสำหรับ sudoers สามารถพบได้จาก terminal ด้วยคำสั่ง
man sudoers
คุณยังสามารถใช้ข้อความง่าย ๆ ในการแก้ไขไฟล์ได้อย่างไรก็ตามองอาจทำให้มันยาก sudoers คือ-r--r----- (Octal 0440)
สิ่งนี้บ่งชี้ว่า Apple ไม่ต้องการให้คุณเล่นไฟล์ นี่คือความปลอดภัยหลักของระบบปฏิบัติการ
ตัวเลือกสำหรับการแก้ไขคือ vi, emacs หรือ BBEdit โปรดส่วนตัวของฉัน
visudoแทนที่จะแก้ไขไฟล์ด้วยตัวคุณเอง นอกจากนี้สิ่งนี้ไม่เกี่ยวข้องกับ OS X มันเป็นมาตรฐาน * ระวัง นอกจากนี้ถ้าคุณต้องการที่จะใช้โปรแกรมแก้ไขไม่ใช่ค่าเริ่มต้นเพียงแค่ตั้งค่าตัวแปรสภาพแวดล้อมก่อนที่จะเรียก$EDITOR เช่นvisudo EDITOR=nano sudo visudo
ปิดการใช้งาน sudo timeout ด้วยคำสั่งนี้:
sudo sh -c 'echo "\nDefaults timestamp_timeout=-1">>/etc/sudoers'
วิธีเปิดใช้งานการหมดเวลา sudo อีกครั้งด้วยวิธีนี้:
sudo sed -i "/Defaults timestamp_timeout=-1/d" /etc/sudoers
sudoควรมีวิธีการแบบหนึ่งเดียวในการเปลี่ยนแปลงโดยไม่ต้องแก้ไขไฟล์!