GNU/Linux >> Tutoriales Linux >  >> Panels >> Webmin

Comandos personalizados

Esta página cubre el módulo Comandos personalizados de Webmin, que se puede usar para crear botones para ejecutar comandos de shell que se usan con frecuencia.

Contenido

El módulo de comandos personalizados

A la mayoría de los administradores de sistemas les gusta crear scripts de shell para realizar tareas comunes, como hacer una copia de seguridad de una base de datos o agregar un nuevo usuario de algún tipo. Debido a que cada sistema y organización es diferente, siempre habrá tareas que una herramienta generalizada como Webmin no puede realizar tan fácilmente como un simple script personalizado. Desafortunadamente, los scripts que se ejecutan en la línea de comandos no son fáciles de usar para un usuario sin experiencia.

El módulo Comandos personalizados le permite crear interfaces web simples para scripts y comandos de shell, de modo que puedan ejecutarse desde Webmin con solo hacer clic en un botón. También le permite definir parámetros de varios tipos para cada comando que el usuario puede ingresar y sustituir en el comando de shell. Esto se puede usar para proporcionar argumentos o entradas adicionales a los scripts que se ejecutan, según las selecciones realizadas por el usuario antes de ejecutarlo.

Otra característica del módulo es la capacidad de definir editores de archivos, de modo que los archivos que se cambian con frecuencia se puedan editar a través de la interfaz web de Webmin. También puede definir los comandos que se ejecutarán antes y después de editar el archivo, de modo que se pueda validar, copiar o hacer una copia de seguridad antes de editarlo.

Posiblemente, la característica más útil del módulo es su soporte de control de acceso. Puede otorgar a otros usuarios de Webmin los derechos para usar algunos o todos los comandos y editores, mientras que solo usted y otros administradores de confianza se otorgan permisos para crear y editar comandos. Esto significa que los otros usuarios solo pueden ejecutar los scripts y editar los archivos que usted les permita, pero sin privilegios completos de raíz.

A diferencia de la mayoría de los otros módulos, este no se ocupa de la configuración de algún servidor o servicio por separado. Por lo tanto, tiene exactamente la misma interfaz de usuario y funcionalidad en todas las versiones de Unix en las que se puede ejecutar Webmin.

Cuando ingresa al módulo desde la categoría Otros, su página principal muestra todos los comandos personalizados y editores de archivos existentes, junto con sus parámetros. La siguiente captura de pantalla muestra un ejemplo de un sistema con 1 editor de archivos y 8 comandos definidos, dos de los cuales tienen un parámetro. Sin embargo, si no ha utilizado el módulo antes, la página estará vacía.


El módulo de Comandos Personalizados

Puede ejecutar cualquier comando que se muestra en la página principal simplemente haciendo clic en su botón. Sin embargo, si el comando tiene campos de parámetros u opciones, debe completarlos o hacer las selecciones adecuadas antes de ejecutarlo. Cuando se hace clic en el botón, se lo llevará a una página que muestra todos los resultados del comando, para que pueda ver si tuvo éxito o falló.

Para usar un editor de archivos, simplemente haga clic en su botón en la página principal. Esto lo llevará a un formulario de edición que muestra el contenido del archivo actual, que puede cambiar libremente. Cuando haya terminado, haga clic en Guardar debajo del cuadro de texto para escribir el nuevo contenido del archivo.

Crear un nuevo comando

Para crear un nuevo comando que se pueda ejecutar mediante un botón en la página principal del módulo, los pasos a seguir son :

  1. Haga clic en Crear un nuevo comando personalizado enlace encima o debajo de los botones existentes. Esto abrirá el formulario de creación que se muestra en la imagen a continuación.
  2. Introduzca una breve descripción de su comando en la Descripción campo. Cualquier texto que ingrese aparecerá en el botón del comando en la página principal. También puede ingresar texto adicional (incluidas las etiquetas HTML) en el cuadro de texto más grande que se encuentra debajo, para que se muestre debajo del botón.
  3. En el Comando campo, ingrese el script de shell o el comando que desea ejecutar. Todos los metacaracteres de shell estándar {| border="1" |- son compatibles, como ||, &, . Para ingresar varios comandos, |} sepárelos con ; o &&. Si su comando tiene parámetros (establecidos en el paso 10), se convertirán en variables de entorno cuando se ejecute el comando. Entonces, si tiene un parámetro llamado foo, todas las apariciones de $foo en la cadena de comando se reemplazarán con lo que el usuario ingrese para ese parámetro. Por ejemplo, un comando que permitiera al usuario señalar con el dedo a cualquier usuario del sistema podría parecerse a dedo $usuario .
  4. De forma predeterminada, el comando se ejecutará en el directorio Webmin para este módulo. Para cambiar esto, anule la selección de Predeterminado para el directorio Ejecutar en e ingrese una ruta diferente en el cuadro de texto al lado.
  5. En Ejecutar como usuario campo, ingrese el nombre del usuario de Unix con el que se debe ejecutar el comando. En su lugar, puede seleccionar el usuario de Webmin, lo que hará que se ejecute como el usuario de Unix con el mismo nombre que el usuario de Webmin que lo ejecuta. Cuando se ejecuta el comando, normalmente no tendrá acceso a las mismas variables de entorno que tendría el usuario de Unix si iniciara sesión a través de telnet o SSH. Sin embargo, si marca la casilla Usar el entorno del usuario entonces todas las variables configuradas en el perfil del usuario, .cshrc y otros archivos de inicio de sesión estarán disponibles. Webmin ejecuta el comando con su, que cambia al usuario, ejecuta su shell y luego ejecuta el comando.
  6. Si su comando produce un resultado HTML que desea que aparezca en el navegador cuando se ejecuta, cambie el campo *¿El comando genera HTML?* a . . De lo contrario, Webmin evitará todas las etiquetas HTML en la salida, que es lo correcto para los comandos que producen solo texto normal.
  7. Para controlar la ubicación del nuevo comando en la página principal del módulo, ingrese un número para Pedidos en la página principal opción. Los comandos están ordenados de manera que los que tienen el número más alto aparezcan primero. Si Predeterminado se elige, el número de pedido se toma como cero. Si no establece el número de orden para ninguno de sus comandos personalizados, se mostrarán en el orden en que fueron creados.
  8. Para evitar que el usuario vea que se está ejecutando el comando de shell real cuando se hace clic en su botón, establezca el campo *¿Ocultar comando al ejecutar?* en . Esta es una buena idea si su comando contiene contraseñas u otra información confidencial que desea ocultar al usuario.
  9. Para que el comando aparezca en el módulo Comandos personalizados de Usermin, cambie ¿Disponible en Usermin? campo a . Consulte UserminConfiguration para obtener más información sobre cómo instalar y configurar Usermin.
  10. Si desea que su comando tenga parámetros que el usuario pueda configurar en la página principal, debe completar los Parámetros del comando sección. Cada fila de la tabla en esta sección define un parámetro, y para cada uno se debe ingresar la siguiente información :
    Nombre
    Un nombre corto y único para este parámetro, que se puede usar en el Comando (con el prefijo $) para indicar dónde se debe sustituir el valor ingresado por el usuario. El nombre debe estar compuesto únicamente por letras, números y el carácter _.
    Descripción
    El texto que etiquetará el parámetro en la página principal del módulo. Esto puede contener cualquier carácter, incluidas las etiquetas HTML, pero no debe ser demasiado largo.
    Tipo
    Este menú controla cómo se muestra el parámetro en la página principal del módulo y qué entradas se permiten. La opción más común es Texto , pero todas las opciones disponibles y sus significados están cubiertos en Tipos de parámetros sección a continuación.
    ¿Parámetro de cotización?
    Si se establece en , el valor ingresado por el usuario se citará con " caracteres antes de la sustitución. Al crear un nuevo comando, solo está disponible una fila vacía para ingresar un solo parámetro. Para agregar más, deberá volver a editar el comando después de guardarlo .
  11. Finalmente, cuando haya terminado de ingresar los detalles de su nuevo comando, haga clic en Crear botón. Siempre que no haya errores en el formulario, volverá a la página principal del módulo en la que debería estar visible el nuevo botón de comando


Creando un nuevo comando personalizado

Una vez que se ha creado un comando, puede editarlo haciendo clic en el Editar comando enlace debajo de él en la página principal del módulo. Todos los campos descritos anteriormente se pueden cambiar y se puede agregar un parámetro adicional. Una vez que haya terminado de hacer los cambios, haga clic en Guardar botón en la parte inferior de la página. O para deshacerse del comando, haga clic en Eliminar en la esquina inferior derecha en su lugar.

Tipos de parámetros

Para cada parámetro en un comando, puede elegir un tipo de su menú en Tipo columna. Las opciones disponibles y sus significados son :

Texto
campo de entrada de texto
argumentos [texto predeterminado para el campo de texto]
Usuario
campo de entrada de nombre de usuario
args [nombre de usuario predeterminado para el campo de usuario]
UID
campo de entrada de ID de usuario
argumentos [ID de usuario predeterminado para el campo UID]
Grupo
campo de entrada de nombre de grupo
args [nombre predeterminado para el campo de grupo]
GID
campo de entrada de ID de grupo
args [ID de grupo predeterminado para el campo GID]
Archivo
archivo (lado del servidor) seleccionar campo de entrada
argumentos [predeterminado /ruta/al/servidor/archivo]
Directorio
directorio (lado del servidor) seleccionar campo de entrada
argumentos [predeterminado /ruta/al/servidor/directorio/]
Opción..
sí | sin campo booleano
args ["valor a pasar si se selecciona Sí"]
Contraseña
campo de entrada de contraseña
args [contraseña predeterminada]
Menú..
campo de entrada del menú de selección de opciones
argumentos [/ruta/a/opción/archivo.txt]
las opciones de menú se enumeran en un archivo. Proporcione la ruta y el nombre de archivo al archivo /path/to/myMenu_options.txt en el campo Tipo de argumentos del parámetro. El archivo myMenu_options.txt contiene una opción por línea como "clave" "valor". La "clave" es lo que se pasa a su script de comando personalizado. El "valor" es lo que se muestra al usuario.
Subir
archivo (lado del usuario) seleccionar campo de entrada
args [ruta/archivo predeterminado]
Cuadro de texto
campo de entrada de área de texto
args [texto predeterminado para el cuadro de texto]
Menú múltiple..
campo de entrada de selección de opciones anidadas
argumentos como el tipo de menú, pero permite múltiples selecciones
Gran menú múltiple..
campo de entrada de selección anidado complejo
argumentos Lo mismo que Menú múltiple, pero lo suficientemente alto como para mostrar todas las opciones
Menú izquierda-derecha..
widget de menú izquierdo <-> derecho
argumentos Funcionalmente igual que Menú múltiple, pero muestra las opciones a la izquierda y los valores seleccionados a la derecha
Fecha
campo de entrada de selección de fecha
argumentos [fecha predeterminada en formato AAAA-MM-DD]
botón Enviar
enviar botón de comando
argumentos Solo un botón

Crear un nuevo editor de archivos

Para agregar un nuevo botón a la página principal del módulo para editar un archivo, debe seguir estos pasos :

  1. Haga clic en Crear un nuevo editor de archivos enlace encima o debajo de los botones existentes. Esto abrirá el formulario de creación del editor que se muestra en la imagen a continuación.
  2. Introduzca una breve descripción del archivo que se va a editar en la Descripción campo. Cualquier texto que ingrese aparecerá en el botón del editor en la página principal. También puede ingresar texto adicional (incluidas las etiquetas HTML) en el cuadro de texto más grande que se encuentra debajo, para que se muestre debajo del botón.
  3. Ingrese la ruta completa al archivo que se editará en el campo *Archivo para editar*. El archivo no necesariamente tiene que existir todavía.
  4. Para cambiar el propietario del archivo cuando se guarde, establezca el campo *Propiedad del archivo* en Usuario e ingrese un nombre de usuario de Unix y un nombre de grupo en los campos al lado. Esto es especialmente útil cuando se edita un archivo que aún no existe, para que la propiedad del archivo recién creado se establezca correctamente. Si deja el campo establecido en Dejar como está , la propiedad del archivo no cambiará cuando se guarde. Los archivos recién creados serán propiedad de root.
  5. Para cambiar los permisos de acceso del archivo cuando se guarda, configure los Permisos de archivo campo a Establecer a octal e ingrese los permisos (como 700 o 664 ) en el campo de al lado. Para seleccionar Dejar como está , los permisos del archivo no cambiarán cuando se guarde. Los permisos de los archivos recién creados dependen del umask de los procesos de Webmin.
  6. Para que un comando se ejecute justo antes de que el usuario guarde el archivo, complete el campo *Comando para ejecutar antes de guardar *. Esto podría ser útil para hacer una copia de seguridad, sacar el archivo de RCS o cualquier otra cosa que se te ocurra.
  7. De manera similar, para que un comando se ejecute justo después de guardar el archivo, complete el campo C*omand to run after save*. Esto puede ser útil para validar el contenido del archivo, copiarlo a otro sistema o verificarlo nuevamente en RCS.
  8. Para controlar la ubicación del botón del nuevo editor en la página principal del módulo, ingrese un número para la opción *Pedidos en la página principal*. Los comandos y editores están ordenados de forma que aparezcan primero los de mayor número. Si Predeterminado se elige, el número de pedido se toma como cero. Si no establece el número de orden para ninguno de sus editores de archivos, se mostrarán en el orden en que fueron creados.
  9. Para que el editor aparezca en el módulo Comandos personalizados de Usermin, cambie ¿Disponible en Usermin? campo a . Consulte UserminConfiguration para obtener más información sobre cómo instalar y configurar Usermin.
  10. Finalmente, haga clic en Guardar botón. Si no hay errores en el formulario, volverá a la página principal del módulo que incluirá un botón para el nuevo editor.


Creando un nuevo editor de archivos

Una vez que se ha creado un editor, puede editarlo haciendo clic en el enlace *Editar editor de archivos *que se encuentra debajo de él en la página principal del módulo. Una vez que haya terminado de hacer los cambios, haga clic en Guardar botón en la parte inferior de la página. O para deshacerse del editor, haga clic en Eliminar en la esquina inferior derecha en su lugar.

Control de acceso a módulos

Las opciones de control de acceso en el módulo Comandos personalizados están diseñadas para permitir que un usuario maestro de Webmin otorgue a otros usuarios los derechos para ejecutar comandos seleccionados, pero no editarlos ni crearlos. Desde el punto de vista de la seguridad, no tiene sentido dar permisos a un usuario que no es de confianza para crear sus propios comandos personalizados, porque eso le permitiría ejecutar cualquier comando como root y comprometer la seguridad de todo el sistema. Del mismo modo, puede restringir los editores de archivos que un usuario de Webmin puede usar y evitar que cree nuevos editores.

Una vez que haya creado un usuario o grupo con acceso al módulo de Comandos Personalizados (como se explica en el capítulo 52), los pasos a seguir para limitar su acceso son:

  1. En el módulo Usuarios de Webmin, haga clic en Comandos personalizados junto al nombre del usuario o grupo al que desea otorgar acceso. Esto abrirá el formulario de control de acceso para el módulo.
  2. Cambie ¿Puede editar la configuración del módulo? campo a No .
  3. A menos que desee que el usuario pueda ejecutar todos los comandos y usar todos los editores, configure los Comandos que este usuario puede ejecutar campo a Seleccionado y elija aquellos que se le debe permitir usar de la lista a continuación. Alternativamente, puede elegir *Todos excepto los seleccionados* y seleccionar de la lista los comandos que no debería poder usar. Todos los demás estarán disponibles para él.
  4. Cambie ¿Puede crear y editar comandos? campo a No .
  5. Haga clic en Guardar botón. La configuración de control de acceso se activará y volverá a la página principal del módulo Usuarios de Webmin.

Si desea otorgar acceso a comandos y editores personalizados seleccionados a una gran cantidad de usuarios, una mejor solución puede ser instalar Usermin, que permite que cualquier usuario de Unix inicie sesión. ¿Algún comando para el que esté disponible en Usermin? el campo está establecido en será visible en el módulo de comandos personalizados de Usermin y funcionará exactamente de la misma manera. Consulte Configuración de Usermin para obtener más información sobre Usermin y cómo se puede configurar para limitar qué usuarios de Unix pueden ejecutar comandos personalizados.


Webmin
  1. Comandos de Linux:trabajos, bg y fg

  2. 5 comandos de Linux que nunca uso

  3. Comandos programados

  4. Comandos personalizados

  5. Comandos Linux de la A a la Z

Cómo ejecutar comandos de Linux en segundo plano

Comandos básicos de Linux

Comandos de Linux - Guía completa

Cómo ejecutar múltiples comandos de Linux en un solo comando

Cómo ejecutar varios comandos de Linux a la vez en la terminal de Linux

Ejecutar comandos con límite de tiempo en Ubuntu 20.04