MokhtarEbrahim
Usuario
En este tutorial, aprenderemos cómo desarrollar interfaces gráficas de usuario escribiendo algunos ejemplos de GUI de Python usando el paquete Tkinter. El paquete Tkinter se envía con Python como un paquete estándar, por lo que no es necesario que instale nada para usarlo. El paquete Tkinter es un paquete muy poderoso. Si ya ha instalado Python, puede usar IDLE, que es el IDE integrado que se envía con Python, este IDE se escribe utilizando Tkinter. ¡¡Suena bien!! Usaremos Python 3.6, por lo que si está utilizando Python 2.x, se recomienda encarecidamente que cambie a Python 3.x a menos que sepa que el idioma cambia para que pueda ajustar el código para que se ejecute sin errores. Supongo que tienes un poco de información básica sobre Python para ayudarte a entender lo que estamos haciendo. Comenzaremos por crear una ventana, luego aprenderemos cómo agregar widgets, como botones, cuadros combinados, etc., luego jugaremos con sus propiedades, así que comencemos. 1 Crea tu primera aplicación GUI 2 Crea un widget de etiqueta 2.1 Establecer tamaño de fuente de etiqueta 2.2 Tamaño de la ventana de configuración 3 Agregar un widget de botón 3.1 Colores de fondo y primer plano del botón de cambio 3.2 Evento de clic del botón Manejar 4 Obtener entrada usando la clase de entrada (cuadro de texto Tkinter) 4.1 Establecer el foco para el widget de entrada 4.2 Deshabilitar widget de entrada 5 Agregue un widget de cuadro combinado 6 Agregue un widget de botón de verificación (casilla de verificación Tkinter) 6.1 Establecer el estado de verificación de un botón de verificación 7 Agregar widgets de botones de radio 7.1 Obtener el valor del botón de opción (botón de opción seleccionado) 8 Agregue un widget ScrolledText (Tkinter textarea) 8.1 Establecer contenido de texto desplazado 8.2 Borrar / Borrar contenido de texto desplazado 9 Crea un MessageBox 9.1 Mostrar mensajes de advertencia y error 9.2 Mostrar diálogos pidquestion 10 Agregue un SpinBox (widget de números) 10.1 Establecer el valor predeterminado para Spinbox 11 Agregue un widget Barra de progreso 11.1 Cambiar el color de Progressbar 12 Agregar un archivo de diálogo (selector de archivos y directorios) 12.1 Especificar tipos de archivo (filtrar extensiones de archivo) 13 Agregar una barra de Menú 14 Agregue un widget para Notebook (control de pestañas) 14.1 Agregue widgets a Notebooks 15 Añadir espacio para widgets (relleno) https://likegeeks.com/python-gui-examples-tkinter-tutorial/
Usamos la línea de comandos de Linux todos los días, y debido a la poca práctica, podemos olvidar algunos de los trucos de línea de comandos de Linux. En esta publicación, les mostraré algunos de estos consejos y trucos de línea de comandos de Linux que quizás olviden o que sean nuevos para ustedes, así que comencemos. 1 Muestra la salida como una tabla 2 Corre hasta el éxito 3 Ordenar procesos por uso (memoria - CPU) 4 Verifica tu arquitectura 5 Controle varios archivos de registro al mismo tiempo 6 Regrese a su directorio anterior 7 Hacer no interactivo como sesión interactiva de shell 8 Ver Salida de Comando 9 Ejecute su programa después de la sesión de asesinato 10 Answer bot Usando Yes & No Commands 11 Crea un archivo con un tamaño específico 12 Ejecutar el último comando como raíz 13 Graba tu sesión de línea de comando 14 Sustitución de espacios con pestañas 15 Convertir carácteres 16 Potente comando xargs https://likegeeks.com/linux-command-line-tricks/
Una de las formas de combatir el correo no deseado es escanear los buzones mediante alguna herramienta, buscando ciertos patrones asociados con el correo no deseado. Una de las mejores soluciones es SpamAssassin, que es de código abierto. Puedes instalarlo así: $ dnf -y install spamassassin Luego, inicie el servicio y habilítelo al inicio: $ systemctl start spamassassin $ systemctl enable spamassassin Una vez que lo haya instalado, puede verificar la configuración en:/etc/mail/spamassassin/local.cf SpamAssassin determina si un correo electrónico es correo no deseado o no se basa en el resultado de los diferentes puntajes de scripts. Si el mensaje tiene una puntuación más alta, eso significa una mayor posibilidad de que el correo sea correo no deseado. En el archivo de configuración, el parámetro required_hits 5 indica que SpamAssassin marcará un correo electrónico como correo no deseado si su puntuación es cinco o superior. La opción report_safe toma los valores 0, 1 o 2. Si se establece en 0 significa que el correo electrónico marcado como spam se envía tal como está, solo modificando los encabezados para mostrar que es correo no deseado. Si toma el valor 1 o 2, SpamAssassin genera un nuevo mensaje de informe y lo envía al destinatario. Si el valor es 1, eso significa que el mensaje de spam se codifica como contenido / rfc822, mientras que si el valor es 2, significa que el mensaje se codifica como texto / contenido simple. El texto / plano es más seguro ya que algunos clientes de correo ejecutan el mensaje / rfc822 y podrían infectar la computadora del cliente. Tendremos que crear un archivo, llamado /etc/procmailrc, y agregar el siguiente contenido: :0 hbfw | /usr/bin/spamc Luego editamos el archivo de configuración de Postfix /etc/postfix/main.cf y cambiamos el mailbox_command así: mailbox_command = /usr/bin/procmail Finalmente, reinicie los servicios Postfix y SpamAssassin: $ systemctl restart postfix $ systemctl restart spamassassin Sin embargo, SpamAssassin a veces no reconoce los mensajes de correo no deseado, lo que llevó a los buzones llenos de mensajes de correo no deseado. Afortunadamente, puede filtrar los mensajes antes de que ingresen al servidor de Postfix usando Realtime Blackhole Lists (RBL). Eso disminuirá la carga en su servidor de correo y mantendrá su servidor de correo limpio. Abra el archivo de configuración del servidor de postfix /etc/postfix/main.cf y cambie la opción smtpd_recipient_restrictions y agregue las siguientes opciones como esta: strict_rfc821_envelopes = yes relay_domains_reject_code = 554 unknown_address_reject_code = 554 unknown_client_reject_code = 554 unknown_hostname_reject_code = 554 unknown_local_recipient_reject_code = 554 unknown_relay_recipient_reject_code = 554 unverified_recipient_reject_code = 554 smtpd_recipient_restrictions = reject_invalid_hostname, reject_unknown_recipient_domain, reject_unauth_pipelining, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_rbl_client dsn.rfc-ignorant.org, reject_rbl_client dul.dnsbl.sorbs.net, reject_rbl_client list.dsbl.org, reject_rbl_client sbl-xbl.spamhaus.org, reject_rbl_client bl.spamcop.net, reject_rbl_client dnsbl.sorbs.net, permit Luego reinicia tu servidor de postfix: $ systemctl restart postfix Los RBL anteriores son los más comunes, puede encontrar más listas en la web y probarlas. Artículo completo:https://likegeeks.com/linux-mail-server/
Puede usar la autenticación de dos factores para SSH como el autenticador de Google. $ yum install google-authenticator Luego ejecútelo para verificar la instalación. $ google-authenticator Debe tener la aplicación de autenticación de Google instalada en su teléfono móvil. Editar /etc/pam.d/sshd file y agrega esto: auth required pam_google_authenticator.so Y lo último que debe hacer es decirle a SSH acerca de esto agregando la siguiente línea a sshd_config ChallengeResponseAuthentication yes Ahora reinicia tu SSH. $ systemctl restart sshd Y cuando inicie sesión usando SSH, le preguntará sobre el código de verificación, por lo que su SSH está asegurado y ahora es más sólido. Enlace de origen:https://likegeeks.com/linux-security-tricks/
El atacante envía paquetes SYN solo sin completar el protocolo de enlace TCP y, como resultado, el servidor receptor tendría muchas conexiones abiertas y su servidor se volvería demasiado ocupado para responder a otros clientes. Podemos usar el módulo de límite del firewall de iptables para protegernos de la inundación SYN. $ iptables -A INPUT -i eth1 -p tcp --syn -m limit --limit 10/second -j ACCEPT Aquí especificamos 10 paquetes SYN por segundo solamente. Puede ajustar este valor de acuerdo a las necesidades de su red. Si esto acelerará su red, puede usar cookies SYN. SYN Cookies En el archivo /etc/sysctl.conf y agregue esta línea: net.ipv4.tcp_syncookies = 1 Luego guarda y recarga. $ sysctl -p Enlace fuente:
SUID (Establecer ID de usuario) es un tipo especial de permisos de archivo dados a un archivo. Cuando desee utilizar una herramienta como el comando passwd que escribe en archivos que pertenecen a la raíz, como / etc / passwd y / etc / shadow, el comando passwd debe tener este permiso SUID para permitir que los usuarios normales usen ese comando. Puede echar un vistazo a todos los programas que tienen este permiso y considerar eliminar ese permiso de programas innecesarios que cree que los usuarios normales no necesitarán. $ find / -type f -user root -perm -4000 -print Todos estos programas tienen un bit SUID y los usuarios normales pueden ejecutarlos como raíz. Para eliminar ese permiso, puede usar este comando: $ chmod a-s /bin/mount Tenga en cuenta que algunos programas necesitan ese permiso para trabajar, así que tenga cuidado al hacerlo. Fuente:https://likegeeks.com/secure-linux-server-hardening-best-practices/
El comando traceroute es uno de los comandos de red de Linux más útiles. Se usa para mostrar el camino hacia tu objetivo y de dónde viene el retraso. Este comando ayuda básicamente en: Proporcionar los nombres y la identidad de cada dispositivo en la ruta. Informar la latencia de la red e identificar de qué dispositivo proviene la latencia. $ traceroute google.com La salida proporcionará el host especificado, el tamaño del paquete que se utilizará, la dirección IP y el número máximo de saltos requeridos. Puede ver el nombre de host, la dirección IP, el número de salto y los tiempos de viaje del paquete. Para evitar la búsqueda DNS inversa, use la opción -n. $ traceroute -n google.com Al usar el comando traceroute, puede identificar cuellos de botella en la red. Los asteriscos que se muestran aquí significa que hay un problema potencial en el enrutamiento para ese host, ya que los asteriscos indican la pérdida de paquetes o la pérdida de paquetes. El comando traceroute envía un paquete UDP, traceroute puede enviar UDP, TCP e ICMP. Si necesita enviar un paquete ICMP, puede enviarlo así: $ sudo traceroute -I google.com Para usar una variación TCP, se puede usar así: $ sudo traceroute -T google.com Esto se debe a que algunos servidores bloquean las solicitudes UDP, por lo que puede usar este método. En este caso, puede enviar UDP, ICMP o TCP para omitir estos problemas. Fuente:https://likegeeks.com/linux-network-commands/
Veamos un script bash que cuenta los archivos ejecutables en una carpeta desde la variable de entorno PATH. $ echo $PATH Para obtener una lista de directorios, debe reemplazar cada dos puntos con espacio. $ echo $PATH | sed 's/:/ /g' Ahora iteremos a través de cada directorio usando el ciclo for como este: mypath=$(echo $PATH | sed 's/:/ /g') for directory in $mypath do done Puede obtener los archivos en cada directorio usando el comando ls y guardarlo en una variable. #!/bin/bash path_dir=$(echo $PATH | sed 's/:/ /g') total=0 for folder in $path_dir do files=$(ls $folder) for file in $files do total=$[ $total + 1 ] done echo "$folder - $total" total=0 done Puede notar que algunos directorios no existen, no hay problema con esto, está bien. Este es el poder de Regex. Estas pocas líneas de código cuentan todos los archivos en todos los directorios. Por supuesto, hay un comando de Linux para hacer eso muy fácil, pero aquí discutimos cómo emplear expresiones regulares en algo que puede usar. Puedes encontrar algunas ideas más útiles. Esta puede no ser la forma más fácil de contar archivos, pero tratamos de trabajar con expresiones regulares. Fuente: Linux regex
Captura de errores de configuración Cuando escribe sus archivos de zona, tal vez olvida un punto o espacio o cualquier otro error. Puede diagnosticar los errores del servidor DNS de Linux desde el registro. El servicio BIND a través de errores en / var / log / messages, puede usar el tail command para ver el registro de errores en tiempo real usando la opción -f. $tail -f /var/log/messages Por lo tanto, cuando escribe un archivo de zona o modifica /etc/named.config y reinicia su servicio y muestra un error, puede identificar fácilmente el error en el registro. Host Comando Después de haber agregado o modificado sus registros con éxito, puede usar el comando de host para ver si su host se resolvió correctamente. Si le da un nombre de host, responderá con las direcciones IP correspondientes. $ host example.com Además, puede realizar búsquedas inversas. $ host 192.168.1.5 Whois Comando El comando whois se usa para obtener los detalles del propietario del dominio. Además, las direcciones de correo electrónico del propietario y los números de teléfono de contacto. $ whois example.com rndc Comando La herramienta rndc se puede usar para administrar el servidor de nombres de forma segura. Puede verificar el estado del servidor DNS de Linux de esta manera: $ rndc status Además, si realiza un cambio en cualquiera de los archivos de zona, puede volver a cargar el servicio sin reiniciar el servicio nombrado. $ rndc reload example.com Aquí recargamos el archivo de zona example.com. Puedes volver a cargar todas las zonas así: $ rndc reload O tal vez agregue nuevas zonas o cambie la configuración del servicio, puede volver a cargar la configuración de esta manera: $ rndc reconfig Fuente:Linux DNS Server
El sistema de archivos proc es un sistema de archivos virtual que está montado en el directorio / proc. No existe un sistema de archivos real en / proc, es una capa virtual que se usa para manejar las funcionalidades del kernel. Por ejemplo, para obtener las especificaciones del procesador, escriba el siguiente comando: $ cat /proc/cpuinfo Esta es una manera muy poderosa y fácil de consultar kernel de Linux. Tenga en cuenta que si comprueba el tamaño del archivo en el directorio / proc, encontrará que todos los tamaños de archivo son 0, porque como dijimos, no existen en el disco. Cuando escribe el comando cat / proc/cpuinfo, se crea dinámicamente un archivo para mostrarle la información de la CPU. El único archivo que tiene un tamaño en el directorio / proc es / proc/kcore, que muestra el contenido de la RAM. En realidad, este archivo no ocupa ningún espacio en el disco. Escribir en archivos de proceso Como hemos visto, podemos leer el contenido de los archivos de proceso, pero algunos de ellos son modificables, por lo que podemos escribirles para cambiar alguna funcionalidad. Por ejemplo, este archivo / proc/sys /net/ ipv4/ip_forward controla el reenvío de IP en caso de que tenga varias tarjetas de red. Puede cambiar el valor de este archivo de esta manera: $ echo "1" > /proc/sys/net/ipv4/ip_forward Tenga en cuenta que cuando cambia cualquier archivo o valor en el directorio / proc no existe una validación de lo que está haciendo, puede bloquear su sistema si escribe una configuración incorrecta. Fuente:linux virtual file system