jueves, 30 de diciembre de 2010

Integrar el Antivirus Avast en Nautilus

Tener instalado un antivirus en Linux en realidad solo sirve para verificar que no tienes virus que vayan a afectar a Windows, para no enviarlos a tus amigos que usan ese sistema, o a tu Windows si tienes tu pc con Windows y Linux , o una red casera con Linux en un pc  y Windows en otro. Si solo usas Linux y nada mas que Linux, no te sirve de mucho tener un antivirus.

Aconsejo que os descarguéis el documento: http://www.iberprensa.com/todolinux/articulos/TL89_reporvirus.pdf
y que os lo leáis. aclara mucho sobre virus en general y en Linux en particular.
Lo mas claro que dice ese documento:
“Mi experiencia como administrador: En más de diez años que llevo administrando Linux, con instalaciones en cientos de máquinas de centros de cálculo, laboratorios de alumnos, empresas, etc, nunca me ha “entrado” un virus, nunca he conocido a alguien que le haya ocurrido, nunca he conocido a alguien que haya conocido a alguien que le haya ocurrido. Conozco a más gente que ha visto al monstruo del Lago Ness a que haya visto virus para Linux.”
Se puede decir mas alto, pero no mas claro.

--------------------------------------

El antivirus Avast se pueden descargar desde:
http://files.avast.com/files/linux/avast4workstation_1.3.0-2_i386.deb ( al ejecutarlo por primera vez te pide una contraseña, y para conseguirla te reenvia a una página desde la que te tienes que inscribir con tu dirección de correo, a la que luego te mandan la contraseña). Es de muy sencillo manejo como se puede ver en esta imagen. A partir de esta interfaz ya podemos empezar a usar el antivirus, pero tras lo que haremos a continuación solo nos interesará de ella el botón Update database.



 Podemos hacer que la actualización de la base de datos de virus se haga de forma automatica cada vez que se abra el programa, para ello: Tools->Preferences->pestaña Update->seleccionar: Automatically

———————————-

Añadir acciones de Nautilus al menú contextual, y/o a su barra de herramientas: la explicación general de como hacer esto esta enAñadir acciones al menú contextual a Nautilus ( desde que escribí el tema hasta ahora ha variado algo la interfaz gráfica del programa, pero se sigue entendido bastante bien ).

Añadir la acción Scannear Antivirus: A traves del programa Sistema -> Preferencias -> Configuración de acciones de Nautilus , vamos a crear una acción con la que podamos elegir uno o varios archivos y/o directorios de Natilus y que o a través del menú contextual o a través de un click en un icono de la barra de herramientas de Nautilus podamos scannear si éstos estan infectados por algún virus.

Una vez en la pantalla principal del programa Configuración de acciones de Nautilus, y después de dar al botón de "Definir nueva Acción", llegamos a la edición de ésta a traves de cinco pestañas.

--- Pestaña Acción: la editamos como se ve en la imagen. Ponemos un texto adecuado en "Context label" , "Toolbar label" y "Tooltip" ( por ejemplo Scannear Antivirus ) para darle un nombre a la acción, y que aparezca en el menú contextual, y el la barra de herramientas de Nautilus;  elegimos un icono, y seleccionamos el resto de las las casillas, como se ve en la imagen.



 --- Pestaña Comando: en Path: xterm y en Parameters: -hold -e avast -p3 %M



 --- Pestaña Folders ( carpetas ): lo dejamos como está de serie : es decir con: /

--- Pestaña Conditions: ponemos * tanto en como en Filenames y en Mimetypes, y seleccionamos Match Case. En "Apear if selecction contains": ponemos Both ( es decir tanto archivos como directorios ) y seleccionamos "multiples files or folders" ( es decir varios archivos y/o directorios). Todo ello para que se produczca el escaneo de varios archivos y/o directorios de todo tipo de archivos tanto por su nombre como por su tipo de archivo.





 --- Pestaña Advanced Conditions: elegimos el tipo de archivos sobre los que queremos que se realice el scaneo: sobre archivos locales ( los del disco duro ), archivos encontrados en una red: bien a través de sftp (ssh ), ftp, samba ( smb -> Archivos de Windows ) , o en la web.

Una vez hecho todo esto guardamos los cambios realizados y cerramos el programa. Al abrir de nuevo Nautilus veremos que ha aparecido en su barra de herramientas un nuevo icono. Si elegimos uno o varios archivos y/directorios y luego o bien con el botón derecho del ratón y el menú contextual ( en el que aparece una nueva acción ) o a través de un click en el nuevo icono de la barra de herramientas de Nautilus, seleccionamos la acción Scannear Antivirus, se abre una ventana de la terminal en la que se ve que se escanean los archivos y/o directorios que hayamos elegido y al final aparece un resumen del scanneo realizando informándonos del número de archivos y/o directorios scanneados y de si hay o no infección, y si la hubiera que archivos estarían afectados, para que los borrásemos.



 -------------------------------

Añadir la acción Antivirus Avast (para acceder a la actualización de la base de datos del antivirus Avast ) :

Tras lo hecho hasta aquí ya tenemos el antivirus Avast integrado en Nautilus, pero para realizar la actualización de la base de datos tendríamos que abrir el programa Avast a partir del Menú de Aplicaciones. Si queremos tener otro icono en la barra de herramientas de Nautilus, desde el que iniciar la interfaz gráfica de Avast para actualizar la base de datos del antivirus, debemos volver a abrir el programa Configuración de acciones de Nautilus, y una vez creada otra acción con el nombre Antivirus-Avast, editar la pestaña Comando, y en ella, poner  en Path: avastgui. El resto de las pestañas las podemos editar de forma similar a como lo hicimos al crear la acción Scannear Antivirus

El resultado final de todo ello es que tenemos dos iconos nuevos en la barra de herramientas de Nautilus: uno para iniciar la interfaz gráfica del antivirus Avast y actualizar la base de datos del antivirus, y el otro para scannear los archivos y/o directorios que seleccionemos.  [En la imagen se ve también otro icono nuevo que de forma similar he añadido para ejecutar otro programa que no tiene nada que ver con el antivirus ( - es un renombrador masivo de archivos - ) ].



------------------------

Añadido ( 20-08-2011):

Si tras una actualización de la base de datos no volviera a abrirse el programa, como me paso a mi una vez, ( pero solo una tras hacer lo que pongo a continuación ) debemos realizar lo siguiente para solucionar el problema:

1. Abriremos la terminal en modo root
2. Tecleamos lo siguiente:
echo 128000000 > /proc/sys/kernel/shmmax
3. Luego abrimos el archivo: rcS , con gedit tecleando lo siguiente:
gedit /etc/init.d/rcS
4. Dentro de este archivo incluiremos la siguiente linea:
sysctl -w kernel.shmmax=128000000

Debe quedar así:
#! /bin/sh
#
# rcS
#
# Call all S??* scripts in /etc/rcS.d/ in numerical/alphabetical order
#
sysctl -w kernel.shmmax=128000000
#
exec /etc/init.d/rc S

5. Guardamos el archivo rcS y salimos de gedit.
7. Cerramos la terminal de root
8. Reiniciamos el PC. Luego abrimos Avast, actualizamos la base de datos de virus, y ya está.

Aprendido en http://foro-ubuntu-guia.963965.n3.nabble.com/Solucion-al-problema-de-Avast-can-not-initialize-avast-engine-Argumento-invalido-tp3269936p3269936.html

------------------------------------------------------------------------------------

lunes, 27 de diciembre de 2010

Programar/Automatizar tareas no repetitivas, con Gnome-Schedule

Este tema es continuación del tema Programar / Automatizar tareas repetitivas con Gnome Schedule/

Imagina que quieres programar una tarea para que se ejecute una sola vez en un determinado momento, este tipo de tareas son Tareas No Repetitivas. Para programar/automatizar tareas ( tanto las repetitivas como las no repetitivas ) existe un programa gráfico: Gnome-Schedule. Para programar / automatizar tareas no repetitivas se puede hacer también de otra forma, con la terminal: Programar / Automatizar tareas no repetitivas con el comando at, es conveniente leer éste tema para comprender mejor el tema actual).

Si queremos que una tarea (o varias ) se ejecute una sola vez en un tiempo determinado ( Tarea No Repetitiva) , podemos usar Gnome-Schedule con la opción "Una tarea que se lanza una sola vez" : esta opción Gnome-Schedule hace de interfaz gráfica del comando at , por lo que antes de ejecutar el comando at, y por tanto las tareas no repetitivas en Gnome-Schedule hay que asegurarse de que el daemon de at (atd ) se ha ejecutado al inicio del sistema ( en mi caso no se iniciaba por defecto, y tuve que hacer que se iniciara: Desde el programa boot-up-manager ( el ejecutable es bum ) he visto que el demonio del comando at ( atd) no estaba activado para que se ejecutara desde el inicio del sistema; he activado el atd, y reiniciado el pc, para que el daemon atd se ejecute desde el inicio .

Inicio de Gnome-Schedule:

Una vez ejecutamos el programa, nos aparece la ventana principal del programa



desde la que podemos seleccionar el tipo de tarea programada: "tarea que se lanzará una sola vez"



En la pantalla de Edición de la Tarea, para ejecutar una tarea única con Gnome-Schedule hay que:

- Poner un nombre descriptivo a la tarea

- Seleccionar la casilla  "Aplicación X"



- Elegir el Tiempo de ejecución: Año, Mes, Dia, Hora y Minuto

- En la sección  Tareas hay que poner:
SHELL=/bin/bash ; DISPLAY=:0 ; un espacio y luego o bien el ejecutable o bien la ruta completa donde esta el script con el que se ejecute un programa gráfico, o bien el comando

Por ejemplo

SHELL=/bin/bash ; DISPLAY=:0 ; sylpheed ---> ejecutable del prográma
SHELL=/bin/bash ; DISPLAY=:0 ; /home/usuario/changebutton ---> ruta completa del script
SHELL=/bin/bash ; DISPLAY=:0 ; cp /home/usuario/fsck /home/usuario/Escritorio ---> comando

Fijarse bien en que los punto y coma ( en rojo ;) están separados por un espacio tanto de lo que los precede como de lo que les sigue:  hay un espacio de separación en varias zonas de las lineas, es necesario ponerlo exactamente así para que se ejecute la tarea.

Se puede crear tres tareas distintas con cada una de las líneas anteriores ; o crear una sola tarea con las tres lineas: en este caso se ejecuta primero el programa gráfico, y cuando lo cierras, se ejecuta luego el script con el que se ejecuta un programa gráfico, y cuando se cierra éste, por fin se ejecuta el comando.

Con cada una de esas tareas se puede crear una Plantilla que nos sirva para futuras ejecuciones, cambiando solo la segunda parte de la linea ( la que esta en azul )



-----------------------------

Gnome-Schedule con permisos de root: El programa Gnome-Schedule se puede usar también con permisos de root, si queremos que las tareas las realice el root, ejecutando: sudo gnome-schedule; Si queremos que se ejecute un script o comando que en su sintaxis lleva el comando sudo, es decir que necesita permisos de root para ejecutarse, tendremos que usar Gnome-Schedule con permisos de root para ejecutar dicha tarea.

Desde el programa Gnome-Schedule del usuario ( y de cada usuario si hay varios  ) y desde el del root, se accede cada uno a sus propias tareas. Desde el Gnome-Schedule ejecutado con permisos de root se puede acceder  ( y modificar )   a las tareas de cada uno de los usuarios que tengamos en el sistema, a través de una nueva opción (cambiar de usuario ) que aparece en la barra de herramientas del programa.



----------------------------------



martes, 21 de diciembre de 2010

Programar/Automatizar tareas no repetitivas, con el comando at

En el tema Crontab, programar / automatizar tareas repetitivas explique como programar/automatizar tareas repetitivas con el comando crontab; y en Programar / automatizar tareas repetitivas con Gnome-Schedule como hacerlo con su interfaz gráfica Gnome-Schedule. El comando crontab sirve para tareas que queremos que se ejecuten de forma repetida en horarios determinados, pero si queremos que una tarea (o varias ) se ejecute una sola vez en un tiempo determinado, debemos usar el comando at.

Daemon atd: El comando at se encarga de ejecutar uno o varios comandos en una fecha indicada en el futuro;  tiene un daemon atd que permite ejecutarlo en el momento que el daemon lo active. Una sola llamada a este comando basta para postergar la ejecución de varias instrucciones, al conjunto de estas se le llama trabajo o job (por su significado en inglés).  ( Desde el programa boot-up-manager - el ejecutable es bum - he visto que el demonio del comando at ( atd) no estaba activado para que se ejecutara desde el inicio del sistema; he activado el atd, y reiniciado el pc, para que el daemon atd se ejecute desde el inicio ).

El daemon atd guarda los trabajos o jobs creados , asignándole un número, en la carpeta /var/spool/cron/atjobs ; una vez ejecutada la tarea, su job correspondiente desaparece de dicha carpeta.

Controlar los usuarios que pueden ejecutar el comando at: En el archivo /etc/at.deny se pueden poner el nombre de usuarios que queramos que no puedan usar este comando, y al revés en el archivo de texto (no viene creado por defecto ) /etc/at.allow se pueden poner el nombre de los usuarios que queramos que puedan usar este comando: para que el comando ejecute una tarea de un usuario, este debe estar incluido en éste archivo. Si creas el archivo de texto /etc/at.allow sólo el usuario que hayas incluido y root pueden ejecutar el comando "at". Ambos archivos solo se pueden editar con permisos de root : sudo gedit /etc/at.allow y sudo gedit /etc/at.deny

El root siempre puede  utilizar  estos  comandos. Para  otros usuarios,  los  permisos  para  utilizarlos  están  determinados en los ficheros /etc/at.allow y /etc/at.deny.
Si el archivo /etc/at.allow existe, sólo  los  usuarios  cuyos  nombres están mencionados aquí tienen permiso para utilizar at.
Si  el archivo /etc/at.allow  no  existe, se chequea /etc/at.deny y entonces todos los usuarios cuyos nombres no estén  mencionados  allí  tienen  permiso para utilizar at.
Si ninguno de los ficheros existe, sólo el root  puede utilizar at.
Un archivo /etc/at.deny vacío significa que todo usuario puede  utilizar  estos comandos, esta es la configuración por defecto.

Controlar las tareas creadas: 1-El comando atq muestra los trabajos, con su número, que se han guardado y no se han ejecutado aún , y 2-el comando atrm elimina un trabajo,indicando el número del trabajo que se desea eliminar: sirve para eliminar antes de que se ejecuta una tarea que hemos creado, y que luego nos hemos arrepentido y no queremos que se ejecute.

Sintaxis del tiempo con el comando at:

El comando at es un comando que se encarga de ejecutar tareas a una hora determinada. Tiene la forma at [hora] [fecha]. Tiempo puede ser:

* Hora: admite los siguientes formatos para las Horas y Minutos: HH:MM, HHMM, HH.MM, HH,MM, Hpm, Ham, también entiende las palabras midnight (00:00), noon (12:00), now (en el momento), teatime (16:00)
* FechaMeses y Dias y Años: Admite los siguientes formatos:  Meses: en inglés: JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC, el Dia y Año  en número , DD.MM.AA (formato europeo ) , MMDDAA, MM/DD/AA, AA-MM-DD ; también palabras en ingles:  today (hoy), tomorrow (mañana), now + tiempo: por ejemplo: now + 5 years, now + 1 min, soporta el singular y el plural (year/s ) , min, minute, hour, day, week, month y year.

Si no se especifica la hora se toma la hora actual.
Si no se especifica año se toma el más próximo.
Si no se especifica fecha se toma la más próxima.

Tras poner at [tiempo] sale at> para ir escribiendo las órdenes de una en una pulsando intro. Para comunicarle que hemos acabado se pulsa Ctrl+D. Para cancelar siempre podrás hacer Ctrl+C ( para cancelar cualquier programa de consola ).

usuario@mint ~ $ at now + 10 min
warning: commands will be executed using /bin/sh
at> sylpheed
at> nautilus
at> <EOT>
job 402 at Sat Dec 11 21:43:00 2010
usuario@mint ~ $

Las órdenes, el trabajo a realizar,  se guardan aunque cierres la consola. Para ver la lista de tareas se usa el comando atq y para borrar se usa atrm y el número o números de las tareas a eliminar. Dichos números aparecen en atq.

Ejemplos de tiempo:
at 1pm may 05            ejecutar el 5 de Mayo a las 13h
at tomorrow                ejecutar mañana a esta hora
at 8:00 tomorrow      ejecutar mañana a las 8h
at now + 1 day            ejecutar mañana a esta misma hora
at 45:12 Ene 10          ejecutar el 10 de Enero a las 12h y 45 min
at 37:04 12 11             ejecutar el 11 de Diciembre  a las 4h y 37 min
at now + 1 week         ejecutar dentro de una semana a esta misma hora

--------------------------------------

Sintaxis del comando que queremos ejecutar con el comando at:

== Para ejecutar un programa gráfico hay que poner DISPLAY=:0 un espacio y el ejecutable, por ejemplo:
usuario@mint ~ $ at now + 2 min
warning: commands will be executed using /bin/sh
at> DISPLAY=:0 sylpheed
at> <EOT>
job 54 at Fri Dec 10 09:42:00 2010
usuario@mint ~ $

== Para ejecutar un comando hay que poner la dirección completa , por ejemplo:
usuario@mint ~ $ at now + 2 min
warning: commands will be executed using /bin/sh
at> cp /home/usuario/fsck /home/usuario/Escritorio
at> <EOT>
job 54 at Fri Dec 10 09:42:00 2010
usuario@mint ~ $

== Para ejecutar un script con el que se ejecute un programa gráfico, hay que poner DISPLAY=:0 , un espacio, y la ruta completa donde este el script:
usuario@mint ~ $ at now + 2 min
warning: commands will be executed using /bin/sh
at> DISPLAY=:0 /home/usuario/changebutton
at> <EOT>
job 54 at Fri Dec 10 09:42:00 2010
usuario@mint ~ $

----------------------------------------------------------------------------