ฉันรู้แล้วว่าฉันต้องการปรับแต่งไฟล์ / 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
ควรมีวิธีการแบบหนึ่งเดียวในการเปลี่ยนแปลงโดยไม่ต้องแก้ไขไฟล์!