Antecedentes
La alternativa de OpenBSD sudo
es doas
, aunque no funciona de la misma manera que sudo y requiere alguna configuración. Es un acrónimo de "subexecutor de aplicación openbsd dedicado". OpenBSD 5.8, lanzado en 2015, fue el primero en incluir doas
. Fue creado por Ted Unangst después de que no estaba satisfecho con la complejidad de sudo y tuvo problemas con la configuración predeterminada de sudo.
El doas
comando es simple por diseño y no contiene características avanzadas requeridas para las elaboradas infraestructuras de administrador de sistemas. Para la mayoría de las personas, es más que suficiente. Si lo necesita sudo
, instálelo pkg_add sudo
como root.
Instalación
OpenBSD versión 5.8 y posterior se ha doas
preinstalado.
Configuración
Para dar acceso a los usuarios en el grupo de ruedasdoas
, agregue lo siguiente a /etc/doas.conf
. Necesitará acceso de root para editar este archivo.
permit :wheel
Esto dará a todos los usuarios del grupo de rueda permiso para ejecutar comandos como cualquier usuario.
Si desea que los usuarios puedan ingresar su contraseña una vez, y no tener que ingresarla por un tiempo, use la persist
opción. Aquí hay un ejemplo que otorga permisos solo al grupo de ruedas:
permit persist :wheel
En su lugar, puede usar la nopass
opción si desea que nunca tengan que ingresar su contraseña:
permit nopass :wheel
Si desea que el usuario "mynewuser" tenga derechos de administrador, puede agregarlos al grupo de rueda ejecutándose usermod -G wheel mynewuser
como root o agregar una línea para /etc/doas.conf
que se vea algo así:
permit nopass :wheel
permit nopass mynewuser
Este ejemplo asume que no necesita que sus usuarios ingresen una contraseña cuando la usan doas
. Si desea configurarlo para que mynewuser solo pueda ejecutar comandos como usuario www, la configuración sería la siguiente:
permit nopass :wheel
permit nopass mynewuser as www
Si desea que mynewuser pueda usar solo el comando "vim" con doas, use la siguiente configuración:
permit nopass :wheel
permit nopass mynewuser as www cmd vim
Existen otras opciones de configuración, pero las cubiertas aquí son las más comunes. Si desea leer más, puede usar el comando man doas.conf
para leer la página de manual de doas.conf (5).
Prueba de archivos de configuración
Para probar un archivo de configuración, use el doas -C /etc/doas.conf
comando. Si proporciona un comando después, por ejemplo doas -C /etc/doas.conf vim
, le dirá si tiene permiso para ejecutar un comando o no sin intentar ejecutar el comando.
Uso
Un usuario puede ejecutar el comando echo "test"
como root utilizando el comando: doas echo "test"
Un usuario que tiene permisos para usar doas para elevarse al usuario "www" puede ejecutar el comando vim /var/www/http/index.html
como el usuario "www" usando el comando: doas -u www vim index.html
Esto es útil para alguien que administra el servidor web pero no tiene permisos completos de superusuario.
Mejores prácticas
Se recomienda encarecidamente que use permiso en lugar de denegar cuando sea posible. Si le niega a un usuario el uso de un comando específico, es posible que pueda salirse con la suya utilizando una ruta o nombre alternativo de ese comando si existe. También pueden copiar el ejecutable del comando en su directorio de inicio y luego ejecutar ese ejecutable, lo que anula su sistema de permisos.
En términos generales, es una mejor idea usar doas que usar su porque nadie tiene que compartir la contraseña de root. No hay posibilidad de que alguien lo cambie, lo olvide y bloquee a todos fuera del sistema si todos usan su propia contraseña para acceder a la raíz. Se mantienen registros /var/log/secure
.
Consejos y trucos
Puede mantener todas sus variables de entorno con keepenv, lo cual es útil si tiene su editor configurado en algo y no desea que cambie cuando se convierta en otro usuario. Aquí hay un ejemplo con mynewuser:
permit nopass keepenv mynewuser
A veces, hay situaciones en las que sobrescribir cada variable de entorno puede romper las cosas, pero con setenv, puede elegir y elegir cuáles transferir. Aquí hay un ejemplo que mantendrá su editor configurado para lo que quiera usar con git y algunas otras cosas.
permit nopass setenv { VISUAL EDITOR } mynewuser
También puede usar setenv para eliminar variables de entorno (colocando un guión antes de cada una que desee eliminar) o establecerlas en elementos específicos con un signo igual. Por ejemplo, si desea que elimine la variable de entorno VISUAL y establezca EDITOR en vim, usaría esta línea de configuración:
permit nopass setenv { -VISUAL EDITOR=vim } mynewuser
Si doas
ha recordado su contraseña, puede hacer doas -L
que se olvide de la contraseña.