¿Por qué tengo que editar / etc / sudoers con visudo?

51

Me di cuenta de que el archivo sudoers y los archivos de configuración cron actúan de manera especial en comparación con otros archivos de configuración en Linux. Deben editarse con un contenedor especial en lugar de cualquier editor de texto. ¿Por qué es esto?

Brian Lyttle
fuente

Respuestas:

71

Usas visudo principalmente para evitar romper tu sistema. Visudo ejecuta comprobaciones en sus cambios para asegurarse de que no arruinó nada. Si arruinaste algo, podrías arruinar por completo tu capacidad para arreglarlo o hacer cualquier cosa que requiera privilegios sin reiniciar en modo de rescate.

La página del manual describe esto .

visudo edita el archivo sudoers de forma segura, análogo a vipw (8). visudo bloquea el archivo sudoers contra múltiples ediciones simultáneas, proporciona comprobaciones básicas de sanidad y busca errores de análisis. Si el archivo sudoers se está editando actualmente, recibirá un mensaje para intentarlo más tarde.

Zoredache
fuente
3
¡Interesante! +1, por ilustrar una explicación simple de algo que debería haber sabido hace mucho tiempo :)
Greg Meehan
77
El comportamiento de visudo está disponible genéricamente como un comando llamado sudoedit. Esto hace el mismo ciclo de bloqueo / copia / edición / copia / desbloqueo (aunque obviamente no con el paso de análisis). Una ventaja que esto tiene es que le permite dar acceso a sudo a las personas para editar archivos propiedad de root sin iniciar un editor como root, lo que podría permitirles iniciar un shell desde dentro del editor. Si salgo de mi editor mientras ejecuto sudoedit, mi euid sigue siendo el mío.
James F
18

La respuesta de Zoredache es perfecta.

Una cosa más que vale la pena mencionar. Puede usar su editor favorito configurando EDITORo VISUAL:

export EDITOR=whatevertexteditoryouwant
export VISUAL=whatevertexteditoryouwant

O:

EDITOR=whatevertexteditoryouwant visudo
cstamas
fuente
Si hace eso, seguirá haciendo el paso de verificación de sintaxis, o será equivalente a llamar a sudoedit como sugirió @James F?
o0 '.
Sí, es la respuesta a tu pregunta. Puede usar casi cualquier editor que pueda invocar desde cli.
cstamas
3
No era una pregunta de sí o no: V
o0 '.
55
Será hacer la comprobación de sintaxis.
cstamas