176 lines
7.1 KiB
Python
176 lines
7.1 KiB
Python
#/**
|
|
#@file PostConfLib.py
|
|
#@brief Librería o clase PostConf
|
|
#@class PostConf
|
|
#@brief Funciones para la postconfiguración de sistemas operativos.
|
|
#@warning License: GNU GPLv3+
|
|
#*/
|
|
|
|
import os
|
|
import subprocess
|
|
|
|
import FileSystemLib
|
|
|
|
#/**
|
|
# ogCleanOs int_ndisk int_nfilesys
|
|
#@brief Elimina los archivos que no son necesarios en el sistema operativo.
|
|
#@param int_ndisk nº de orden del disco
|
|
#@param int_nfilesys nº de orden del sistema de archivos
|
|
#@exception OG_ERR_FORMAT Formato incorrecto.
|
|
#@exception OG_ERR_NOTFOUND Disco o particion no corresponden con un dispositivo.
|
|
#@exception OG_ERR_PARTITION Partición desconocida o no accesible.
|
|
#@note Antes incluido en la funcion ogReduceFs
|
|
#@return (nada)
|
|
#*/ ##
|
|
|
|
|
|
|
|
#/**
|
|
# ogInstallMiniSetup int_ndisk int_npartition str_filename [str_admuser str_admpassword bool_autologin [str_autouser str_autopassword] ]
|
|
#@brief Metafunción para instalar archivo que se ejecutará en el arranque de Windows.
|
|
#@see ogInstallFirstBoot ogInstallRunonce
|
|
#*/ ##
|
|
|
|
|
|
#/**
|
|
# ogInstallFirstBoot int_ndisk int_npartition str_filename
|
|
#@brief Crea unas claves del registro y el archivo cmd que se ejecutara en el primer arranque estando la maquina en un estado bloqueado
|
|
#@param int_ndisk nº de orden del disco
|
|
#@param int_npartition nº de orden de la partición
|
|
#@param str_filename nombre del archivo .cmd a ejecutar en el arranque
|
|
#@return (nada)
|
|
#@exception OG_ERR_FORMAT Formato incorrecto.
|
|
#@note El archivo estará en system32 y será visible por el sistema.
|
|
#*/ ##
|
|
|
|
|
|
#/**
|
|
# ogInstallRunonce int_ndisk int_npartition str_filename str_adm_user str_adm_password bool_autologin [str_auto_user str_auto_password]
|
|
#@brief Crea el archivo cmd que se ejecutara en el runonce de un usuario administrador
|
|
#@param int_ndisk nº de orden del disco
|
|
#@param int_npartition nº de orden de la partición
|
|
#@param str_filename nombre del archivo .cmd a ejecutar en el arranque (estara en system32 y sera visible por el sistema)
|
|
#@param str_adm_user usuario administrador para hacer autologin y ejecutar el runonce
|
|
#@param str_adm_password password del usuario administrador
|
|
#@param bool_autologin si despues de la postconfiguracion queremos que la maquina haga autologin (0 o 1)
|
|
#@param str_auto_user Usuario con el que queremos que haga autologin despues de la postconfiguracion
|
|
#@param str_auto_password Password del usuario que hara autologin
|
|
#@return (nada)
|
|
#@exception OG_ERR_FORMAT Formato incorrecto.
|
|
#*/ ##
|
|
|
|
#/**
|
|
# ogAddCmd int_ndisk int_npartition str_filename str_commands
|
|
#@brief Añade comandos al cmd creado por ogInstalMiniSetup
|
|
#@param int_ndisk nº de orden del disco
|
|
#@param int_npartition nº de orden de la partición
|
|
#@param str_filename nombre del fichero cmd (siempre se guardara en windows\system32\para que sea visible por el sistema
|
|
#@param str_commands comando o comandos que se añadiran al fichero
|
|
#@return
|
|
#@exception OG_ERR_FORMAT Formato incorrecto.
|
|
#@exception OG_ERR_PARTITION Tipo de partición desconocido o no se puede montar.
|
|
#*/ ##
|
|
|
|
|
|
#/**
|
|
# ogDomainScript int_ndisk int_npartition str_domain str_user str_password
|
|
#@brief Crea un script .vbs para unir al dominio una maquina windows y el comando adequado en el archivo cmd creado por ogInstallMiniSetup
|
|
#@param int_ndisk nº de orden del disco
|
|
#@param int_npartition nº de orden de la partición
|
|
#@param str_filename nombre del fichero cmd donde deberemos introducir el comando de ejecutar el script vbs
|
|
#@param str_domain dominio donde se quiere conectar
|
|
#@param str_user usuario con privilegios para unir al dominio
|
|
#@param str_password password del usuario con privilegios
|
|
#@return
|
|
#@exception OG_ERR_FORMAT Formato incorrecto.
|
|
#*/ ##
|
|
|
|
|
|
### PRUEBAS.
|
|
|
|
#/**
|
|
# ogConfigureOgagent int_ndisk int_filesys
|
|
#@brief Modifica el fichero de configuración del nuevo agente OGAent para sistemas operativos.
|
|
#@param int_ndisk nº de orden del disco
|
|
#@param int_filesys nº de orden del sistema de archivos
|
|
#@return (nada)
|
|
#@exception OG_ERR_FORMAT Formato incorrecto.
|
|
#@exception OG_ERR_NOTFOUND Fichero o dispositivo no encontrado.
|
|
#@exception OG_ERR_LOCKED Sistema de archivos bloqueado.
|
|
#*/ ##
|
|
|
|
|
|
#/**
|
|
# ogInstallLaunchDaemon int_ndisk int_nfilesys str_filename
|
|
#@brief Instala archivo que se ejecutará en el arranque de macOS.
|
|
#@param int_ndisk nº de orden del disco
|
|
#@param int_nfilesys nº de orden del sistema de archivos
|
|
#@param str_filename nombre del script
|
|
#return (nada)
|
|
#@exception OG_ERR_FORMAT Formato incorrecto.
|
|
#@exception OG_ERR_NOTFOUND Fichero o directorio no encontrado.
|
|
#@npte Crea ficheros de configuración /Library/LaunchDaemon/es.opengnsys.Script.plist.
|
|
#*/ ##
|
|
|
|
|
|
### PRUEBAS.
|
|
|
|
#/**
|
|
# ogAddToLaunchDaemon int_ndisk int_nfilesys str_filename str_commands
|
|
#@brief Añade comandos al script creado por ogInstalLaunchDaemon.
|
|
#@param int_ndisk nº de orden del disco
|
|
#@param int_nfilesys nº de orden del sistema de archivos
|
|
#@param str_filename nombre del script (siempre se guardará en /usr/share para que sea visible por el sistema
|
|
#@param str_commands comando o comandos que se añadiran al fichero
|
|
#return (nada)
|
|
#@exception OG_ERR_FORMAT Formato incorrecto.
|
|
#@exception OG_ERR_NOTFOUND Fichero o directorio no encontrado.
|
|
#*/ ##
|
|
|
|
|
|
#/**
|
|
# ogUninstallLinuxClient int_ndisk int_filesys
|
|
#@brief Desinstala el cliente OpenGnSys para sistemas operativos GNU/Linux.
|
|
#@param int_ndisk nº de orden del disco
|
|
#@param int_filesys nº de orden del sistema de archivos
|
|
#@return (nada)
|
|
#@exception OG_ERR_FORMAT Formato incorrecto.
|
|
#@exception OG_ERR_PARTITION Paritición o sistema de archivos incorrectos.
|
|
#@exception OG_ERR_LOCKED Sistema de archivos bloqueado.
|
|
#*/ ##
|
|
def ogUninstallLinuxClient (disk, par):
|
|
mntdir = FileSystemLib.ogMount (disk, par)
|
|
if not mntdir:
|
|
return
|
|
|
|
for f in [
|
|
f'{mntdir}/usr/sbin/ogAdmLnxClient',
|
|
f'{mntdir}/sbin/ogAdmLnxClient',
|
|
f'{mntdir}/usr/local/sbin/ogAdmLnxClient',
|
|
f'{mntdir}/etc/ogAdmLnxClient.cfg',
|
|
f'{mntdir}/usr/local/etc/ogAdmLnxClient.cfg',
|
|
]:
|
|
try: os.remove (f)
|
|
except: pass
|
|
|
|
for f in [
|
|
f'{mntdir}/etc/rc.local',
|
|
f'{mntdir}/etc/rc.d/rc.local',
|
|
f'{mntdir}/usr/local/etc/rc.local',
|
|
f'{mntdir}/usr/local/etc/rc.d/rc.local',
|
|
]:
|
|
subprocess.run (['sed', '-i', '-e', '/ogAdmLnxClient/ d', f], stderr=subprocess.DEVNULL)
|
|
|
|
|
|
#/**
|
|
# ogUninstallWindowsClient int_ndisk int_filesys str_filename
|
|
#@brief Desinstala el cliente OpenGnSys para sistemas operativos Windows.
|
|
#@param int_ndisk nº de orden del disco
|
|
#@param int_npartition nº de orden de la partición
|
|
#@param str_filename nombre del fichero cmd donde deberemos introducir el comando de ejecutar el script vbs
|
|
#@return (nada)
|
|
#@exception OG_ERR_FORMAT Formato incorrecto.
|
|
#@exception OG_ERR_PARTITION Paritición o sistema de archivos incorrectos.
|
|
#@exception OG_ERR_LOCKED Sistema de archivos bloqueado.
|
|
#*/ ##
|