Mediante visudo podremos editar el archivo /etc/sudoers de una manera segura, evitando ediciones simultaneas por parte de varios usuarios: si /etc/sudoers está siendo editado recibiremos un mensaje diciendonos que lo intentemos mas tarde. De hecho, visudo bloquea el archivo /etc/sudoers mientras se esté editando.
Además, al finalizar la edición y antes de guardar el archivo modificado , visudo realiza una comprobación de éste, impidiendo guardarlo si detecta errores sintácticos.
Localizado un error, nos avisará mediante un mensaje en el que se indica la linea en el cual se encuentra el error y la pregunta "What now?" . Llegado a este punto el usuario tiene varias opciones:
/etc/sudoers . El cursor se colocará en la linea en la que se ha detectado el error ( si el editor usado soporta esta funcionalidad). Para realizar su función, visudo utilizará uno de los editores que asignados en el momento de su compilación. De todas formas, el editor a utilizar puede fijarse en el archivo /etc/sudoers , mediante la variable editor, de Defaults.
Por otra parte, si se configura visudo con el argumento --with-enveditor o se implementa la variable enveditor, en Defaults de /etc/sudoers , visudo podra utilizar cualquier editor definido en las variables de entorno de sudo VISUAL o EDITOR .
Debemos tener en cuenta que esto puede representar un problema de seguridad ya que posibilita que el usuario pueda ejecutar cuanquier programa con solo configurar las mencionadas variables de entorno.
La sintaxis de visudo es:
$ sudo visudo -f sudoers
Mediante la opción -f puede especificarse otra localización del archivo sudoers . Ello nos permite editar o comprobar cualquier archivo sudoers , no solo el archivo por defecto /etc/sudoers .
El nombre del archivo temporal que se crea al bloquear sudoers frente a ediciones simultaneas es el mismo sudoers que se está editando , con la extensión .tmp
Además de la comentada opción -f , otras opciones utilizables con el comando visudo son :
-c
Antiva el modo de solo-comprobación. Se mostrará un mensaje con el resultado de la comprobación realizada.
asd53@ubuntu-p:~$ sudo visudo -c -f /etc/sudoers
Password:
/etc/sudoers file parsed OK
asd53@ubuntu-p:~$
-q
Activa el modo "silencioso": con esta opción no se muestran los detalles del resultado de la comprobación sintactica realizada con -c . Esta opción solo tiene utilidad combinada con -c .
asd53@ubuntu-p:~$ sudo visudo -cq -f /etc/sudoers
Password:
asd53@ubuntu-p:~$
-s
Activa la comprobación estricta ( no solo sintáctica) del archivo sudoers . Si se utiliza un alias antes de ser definido, se considerará un error. Debe tenerse en cuenta que no puede distinguirse un alias de un nombre de host o de usuario en los que se hayan utilizado sólo letras mayúsculas, números y guiones bajos _ .
-V
Muestra la versión de visudo y sale.
sudoers file busy, try again later./etc/sudoers.tmp: Permission deniedCan?t find you in the passwd database/etc/passwd del sistema.Warning: undeclared Alias referenced near ...Warning: runas_default set after old value is in use ...Todo lo que se acaba de explicar lo he aprendido de: