
Me pregunto si existen herramientas para usar en scripts bash que puedan permitirle fácilmentemanipular(agregar, eliminar, actualizar) directivas dentro de archivos conf?
por ejemplo, fail2ban.conf tiene directivas agrupadas, cada una en sus propias secciones.
[proftpd]
enabled = true
port = ftp,ftp-data,ftps,ftps-data
[postfix]
enabled = true
port = smtp,465,submission
mientras que pagespeed.conf tiene directivas mixtas, algunas en sus propias secciones y otras dispuestas por todas partes.
<Location /pagespeed_admin>
Order allow,deny
Allow from localhost
Allow from 127.0.0.1
SetHandler pagespeed_admin
</Location>
<Location /pagespeed_global_admin>
Order allow,deny
Allow from localhost
Allow from 127.0.0.1
SetHandler pagespeed_global_admin
</Location>
ModPagespeedMessageBufferSize 100000
ModPagespeedStatisticsLogging on
ModPagespeedEnableCachePurge on
ModPagespeedPurgeMethod PURGE
ModPagespeedFileCacheSizeKb 2048000
ModPagespeedFileCacheCleanIntervalMs 3600000
ModPagespeedFileCacheInodeLimit 500000
Entiendes la idea.
¿Existe alguna herramienta que le permita: por ejemplo, manipular la directiva 'habilitada' en la sección 'proftpd' de fail2ban.conf?
¿O manipular la directiva 'Permitir desde' en la sección 'Ubicación /pagespeed_admin' de pagespeed.conf?
¿O manipular la directiva 'ModPagespeedMessageBufferSize' en la sección 'ningún particular' de pagespeed.conf?
Gracias
Respuesta1
No, por la sencilla razón de que hay demasiados formatos que podría utilizar un archivo de configuración. Creo que lo mejor que puedes hacer es crear el tuyo propio utilizando herramientas de procesamiento de texto.
Puede haber bibliotecas para algunos formatos (JSON, por ejemplo), pero los autores de herramientas son libres de usar cualquier formato que deseen, por lo que no será posible una herramienta general. Sólo para ilustrar el punto, aquí hay algunas líneas de algunos archivos conf:
emacs
;; Are we running XEmacs or Emacs? (defvar running-xemacs (string-match "XEmacs\\|Lucid" emacs-version)) ;; disable menu bar when running in terminal (when (not (display-graphic-p)) (menu-bar-mode -1)) ;;My libraries, ebib, wordcount etc (add-to-list 'load-path "~/.emacs-lisp/")
vi
highlight Normal guibg=grey90 highlight Cursor guibg=Green guifg=NONE highlight lCursor guibg=Cyan guifg=NONE highlight NonText guibg=grey80 highlight Constant gui=NONE guibg=grey95 highlight Special gui=NONE guibg=grey95
tinte
#--------------------------------------------- # BACKGROUND AND BORDER #--------------------------------------------- # general panel settings rounded = 7 border_width = 2 #background_color = #B4B2B2 10 background_color = #000000 30 border_color = #8F0004 0
vlc
# Trigger button (string) #gestures-button=left [motion] # motion control interface [oldrc] # Remote control interface # Show stream position (boolean) rc-show-pos=0
sshd
AuthorizedKeysFile .ssh/authorized_keys ChallengeResponseAuthentication no UsePAM yes
etcétera etcétera.
Respuesta2
En realidad no, pero podrías crear algo para un diseño de configuración específico. Algo como
sed -E "/\[proftpd]/,/\[/{s/(enabled\s*=\s*).*/\1false/}" input.file
podría diseñarse como una función para cambiar fail2ban.conf, por ejemplo.
Podría ampliarlo si fuera interesante.