ประโยชน์อีกประการของการใช้visudo -f
ดังที่กล่าวไว้ในคำตอบคือมีตัวเลือกที่เกี่ยวข้อง-c
หรือ--check
ยืนยันว่าคุณไม่มีข้อมูลที่ไม่ถูกต้องในไฟล์ sudoers.d หรือไฟล์อื่น ๆ ที่คุณอาจต้องการใส่ใน sudoers.d นี่เป็นประโยชน์อย่างมากในกรณีที่กล่าวถึงด้วยเครื่องมืออัตโนมัติตามที่คุณสามารถเรียกใช้เช่น
sudo visudo -c -q -f /home/myuser/mysudoers && \
sudo chmod 600 /home/myuser/mysudoers && \
sudo cp /home/myuser/mysudoers /etc/sudoers.d/mysudoers
วิธีนี้จะทำการตรวจสอบไฟล์ (ไม่มีเอาต์พุตเนื่องจาก -q) และจะไม่ส่งคืนข้อผิดพลาด (ออก 1 หมายถึงไฟล์ sudoers ที่ไม่ถูกต้อง) จากนั้นจะคัดลอกไฟล์ไปยัง sudoers.d ด้วยวิธีนี้คุณสามารถสร้างไฟล์และ ทำงานได้โดยไม่ต้องทำให้ถูกต้องในครั้งแรก (การใช้sudo visudo -f /etc/sudoers.d/myfile
ต้องสำเร็จหรือไม่สนใจเนื้อหาหากคุณไม่แก้ไข)
นอกจากนี้ยังมีคำเตือนเกี่ยวกับข้อความเหล่านี้จากคำตอบอื่น ๆ
เป็นประสบการณ์ของฉันที่กฎในไฟล์ในไดเรกทอรีนี้จะหลวมกว่าสำหรับ / etc / sudoers สิ่งนี้ได้รวม:
ข้อผิดพลาดในไฟล์ไม่ได้ทำให้ sudo ล้มเหลว อย่างไรก็ตามไฟล์นั้นถูกละเว้น กฎการอนุญาตปรากฏขึ้นเข้มงวดน้อยลง ฉันอนุญาตให้กลุ่มที่เกี่ยวข้องอ่านไฟล์ได้ ฉันไม่เชื่อว่าเป็นไปได้ด้วย / etc / sudo
ไฟล์ใน /etc/sudoers.d จำเป็นต้องใช้ไวยากรณ์เดียวกันกับ / etc / sudoers เนื่องจากภายใต้หน้าปกของระบบจะเชื่อมไฟล์ทั้งหมดเข้าด้วยกันโดยใช้ไฟล์ล่าสุดที่มี "สุดท้าย" หากมีหลายรายการในรายการเดียวกัน การตั้งค่าเอกพจน์
หากสิทธิ์ไม่ถูกต้องอย่างน่ากลัว (เขียนได้ทั่วโลก) ในไฟล์ใน /etc/sudoers.d/ พวกเขาจะถูกเพิกเฉยนี่อาจเป็นสาเหตุที่ทำให้ไฟล์ที่ไม่ถูกต้องถูกมองข้ามมิฉะนั้นคุณสามารถทำลายsudo
คำสั่งอย่างจริงจังโดยการใช้ sudoers ที่ไม่ถูกต้อง ไฟล์ d ที่มีสิทธิ์ที่ถูกต้อง
คุณสามารถอนุญาตให้ไฟล์ sudoers สามารถอ่านได้ทั่วโลกถ้าคุณอนุญาตให้ 'อื่น ๆ ' ได้รับอนุญาตให้เขียนคุณต้อง sudo ในฐานะผู้ใช้รายอื่นหรือจากเทอร์มินัลรูทเรียกใช้คำสั่งนี้ สิ่งนี้สามารถทำลายได้ถ้าไฟล์นั้นเป็นของบุคคลอื่นที่ไม่ใช่ root: root
sudo chmod 644 /etc/sudoers.d/mysudoers
sudo chown root:root /etc/sudoers.d/mysudoers
ฉันเพิ่งยืนยันว่าถ้าฉันรันchmod o+w /etc/sudoers.d/vagrant
ฉันไม่สามารถ sudo ในฐานะผู้ใช้คนจรจัดได้อีกต่อไปฉันจะขอรหัสผ่านของฉันจากนั้นล้มเหลว
เมื่อฉันวิ่งsudo -l
ไปดูการอนุญาตคำสั่งที่ใช้เป็นผู้ใช้ sudo อื่นที่ถูกต้องฉันยังได้รับคำเตือนเกี่ยวกับสิทธิ์ของไฟล์ นี่เป็นคำสั่งเดียวกับที่ฉันใช้เพื่อยืนยันว่าผู้ใช้ 'คนจรจัด' สูญเสีย sudo เมื่อฉันใช้การo+w
อนุญาตกับไฟล์ที่ให้สิทธิ์ผู้ใช้ sudo