Nuestra Biblia de LINUX

Bueno el objetivo de este tutorial es hacer un resumen de esos comandos en linux que a veces necesitamos cuando se nos da una situación atípica. Yo les daré los que he acumulado en mi poco tiempo usando linux.
Ahora lo que pretendo es que todos participemos en este tutorial. En los comentarios ustedes podrán darme los comandos que han tenido que usar para resolver una situación que se les haya presentado. Yo ire sumando sus comandos a los míos y así poco a poco ira creciendo nuestra BIBLIA de LINUX.
Para que esto no se convierta en un sin sentido y uno pueda buscar bien lo que desea, pondré una estructura organizada de cómo deben dar sus aportes.

  • Problema que se les presento
  • Metodología

Si su solución es más compleja entonces debe escribir un tutorial en forma de TIPS. Bueno entonces comenzaremos con nuestra BIBLIA.


Problema: Cuando creamos un CT en Proxmox y queremos acceder por SSH y no podemos.
Metodología: Debemos editar el fichero de configuración del SSH de nuestro CT.
nano /etc/ssh/sshd_config
Y dentro editamos lo siguiente:

Reiniciamos el CT o el servcio (service ssh restart) y ya estaremos listos para entrarle por SSH a ese CT.


Problema: Agregar llaves de un repo
Metodología: Pondré 2 formas de hacerlo y seguro Uds. me ayudaran con más. En dependencia del formato que tengamos de nuestra llave será el comando que usaremos.

En este ejemplo añado la llave de zimbra (formato gpg) a las llaves de confianza usando el comando gpg
apt-key add influxdb.key
Este otro es agregando la llave .key usando el comando apt-key


Problema: Instalar squidview
Metodología: Instalamos squidview
apt install squidview
Y para que nos funcione en las versiones de squid 3 debemos crear un enlace simbólico.
ln -s /var/log/squid3/ /var/log/squid


Problema: Usar proxy para el comando curl
Metodología: La forma general es
export http_proxy=http://proxy_server:proxy_port/
export https_proxy=https://proxy_server:proxy_port/
También puede definirlo directo en el comando


Problema: Usar proxy para perl
Metodología: Invocamos el shell CPAN
perl -MCPAN -e shell
Entraremos al shell y veremos un prompt como este:
cpan[2]>
y escribimos el siguiente comando:
cpan[2]> o conf init /proxy/
Ahora nos pedirá que configuremos el proxy:

Donde a.b.c.d es la ip del proxy y si tenemos un proxy con autenticación debemos proporcionarle usuario.


Problema: Ejecutar ficheros de 32 bits en una plataforma de 64 bits
Metodología: Solamente debemos argegar la arquitectura i386 e instalar las siguientes librerias libc6:i386,libncurses5:i386,libstdc++6:i386.


Problema: Montar un HDD por ID (Al montarlo de esa manera no nos importara que letra le asigno LINUX)
Metodología: Extraemos el UUID del HDD que queremos montar usando el comando blkid

En este ejemplo vemos como el HDD llamado BACKUP que es NTFS al cual linux asigno sdb1 tiene un UUID=»943C3E093C3DE740″ y es nuestro HDD externo que queremos montar.

Montarlo manualmente:

mount.ntfs-3g UUID=943C3E093C3DE740 /media/externo

Montarlo por el FSTAB:


Problema: Usar proxy para python
Metodología: Definimos en el comando, el proxy

pip3 install –proxy=http(s)://user@mydomain:port somepackage


Problema: Rotar los logs del sistema
Metodología: Editamos el rsyslog

nano /etc/logrotate.d/rsyslog


Problema: Saber la version de linux.
Metodología: Podemos encuestar nuestra distro usando cualquiera de estos comandos.
uname -a
cat /etc/*release
cat /etc/*version
cat /etc/issue
cat /etc/issue.net
cat /proc/version
cat /etc/debian_version
lsb_release -a

En el caso de lsb_release debemos instalar esa opcion.


Problema: Usar proxy con WGET
Metodología: Tenemos que editar el fichero «/etc/wgetrc«. Debemos des comentar las siguientes líneas y ponerle nuestros datos.


Problema: Crear Lista de usuarios en ZIMBRA
Metodología: Usaremos el comando zmaccts. Primero debemos usar

su zimbra


Problema: Declarar una variable que contenga el nombre de la interface de red que esta UP, para usarla en iptable sin importar que nombre tenga esa interface.

Metodología:

INET=$(ip -o link show | awk ‘{print $2,$9}’ | grep UP | cut -d’ ‘ -f1 | sed ‘s/.$//g’)

iptables -A INPUT -i $INET -s 10.0.1.0/24 -p icmp -m state –state NEW -j ACCEPT


Problema: Codificar y decodificar ficheros – Base64

Metodología:

Para codificar la imágen

base64 /path/file.png > /path/file.b64

Para decodificar la imágen

base64 -d /path/file.b64 > /path/file.png


Problema: Cambiar permisos

Metodología:El comando chown permite cambiar el propietario de un archivo o directorio en sistemas tipo UNIX. Puede especificarse tanto el nombre de un usuario, así como el identificador de usuario (UID) y el identificador de grupo (GID). Opcionalmente, utilizando un signo de dos puntos (:), o bien un punto (.), sin espacios entre ellos, entonces se cambia el usuario y grupo al que pertenece cada archivo. Cada archivo de Unix tiene un propietario y un grupo, que se corresponden con el usuario y el grupo de quien lo creó.

El usuario root puede cambiar el propietario de cualquier archivo o directorio. En algunos sistemas está restringido el cambio de propietarios por medio de chown para usuarios normales por motivos de seguridad. En los sistemas que está permitido, además de cambiarse el propietario, pueden alterarse otros indicadores del archivo, como el sticky bit.

Sintaxis:
Shell> chown -hR user folder
Shell> chown -hR user file.ext
Shell> chown -hR user:group folder
Shell> chown -hR user:group file.ext


Problema: Encontrar una cadena de texto dentro de un fichero

Metodología: Para ello usaremos el comando grep. Grep toma una expresión regular de la línea de comandos, lee la entrada estándar o una lista de archivos, e imprime las líneas que contengan coincidencias para la expresión regular.

Shell> grep text file.txt

Sintaxis:

$ grep [opciones] [expresión regular] [archivo]


Problema: Crear isos

Metodología: Usaremos el comando dd (Dataset Definition) es una herramienta muy sencilla que nos permite hacer copias de discos, particiones, archivos, o dispositivos, incluso se puede utilizar de formas alternativas como por ejemplo limpiar la información que contiene el disco.

Es generalmente usado para realizar operaciones avanzadas sobre dispositivos o archivos, como pueden ser:
*Transferencias de datos específicos.
*Copias de seguridad de la información «en crudo» (raw data).
*Conversión de algunas codificaciones soportadas y/o caracteres predefinidos.

Shell> dd if=/dev/dvd of=dvd.iso
Shell> dd if=/dev/cdrom of=cd.iso
Shell> cat /dev/cdrom > cd.iso
Shell> mkisofs -o /destino/cd.iso /carpeta_para_imagen


Problema: Como unir 2 pdf en uno solo desde la terminal

Metodología: Usaremos el comando gs
Shell> apt-get install gs
Shell> gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=ab.pdf -f a.pdf b.pdf


Problema: Necesito reducir un pdf por que mee ocupa demasiado espacio, y necesito subirlo a una web.

Metodología: No necesitas ningún programa de pago, puedes reducirlo con un simple comando en linux. Comprobamos que tenemos instalado Ghotscript y Gsfonts. Podemos instalarlos desde Debian, Ubuntu o derivados, con el siguiente comando:

$ sudo apt-get install ghostscript gsfonts

Una vez hecho esto, reducimos el pdf con el siguiente comando:

$ gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=PDFREDUCIDO.pdf PDFORIGINAL.pdf

Donde «PDFREDUCIDO.pdf» será sustituido por el nombre que quieras darle al fichero resultante, y «PDFORIGINAL.pdf» será el nombre del archivo de origen.


Problema: Enlazar un fichero o carpeta

Metodología: Usaremos el comando ln , es un comando que crea un enlace, un tipo de archivo especial, que apunta a otro archivo existente.Los enlaces pueden ser de dos tipos: duros o simbólicos. Un enlace duro es otro nombre para un mismo archivo; mientras que un enlace simbólico contiene el nombre del fichero al que enlaza.

Añadiendo la opción -s crea el enlace simbólico. En los enlaces simbólicos, si se borra el archivo apuntado el enlace queda inservible, mientras que en los enlaces duros no hay diferencia entre el archivo apuntado y sus enlaces, por lo que eliminar uno no afecta a los otros.

Sintaxis:

La sintaxis básica de este comando es la siguiente:

ln [-s]

Shell> ln file link

Shell> ln -s directory_were_the_info_will_be directory_were_the_info_will_be_linked


Problema: Instalar un antivirus en linux

Metodología: Usaremos ClamAV es un software antivirus open source (de licencia GPL) para las plataformas Windows, GNU/Linux, BSD, Solaris, Mac OS X y otros sistemas operativos semejantes a Unix.

La base de datos de actualizacion se coloca en
/var/lib/clamav

En el caso que compiles el clamav las bases de datos se deben poner en:

/usr/local/share/clamav

para eliminar los virus
clamscan -rv –remove=yes /folder/to/scan

para crear una copia del archivo con virus a una carpeta
clamscan -rv –copy=/path/to/folder /folder/to/scan

para mover el archivo con virus a una carpeta
clamscan -rv –move=/path/to/folder /folder/to/scan


Problema: Script de Actualización de Nod32

Metodología:Muchas veces nos encontramos que la actualización del Nod32 o ESET no nos funciona o lleva varias dependiendo a la versión. Hoy quiero compartir un sitio cubano donde podemos cojer la actualizacion diariamente mediante este scripts. Dicho sitio cubano no es mas que una replica del sitio internacional http://www.befhome.com/bef/nod32

Paquetes necesariosa a instalar
apt-get install zip lftp

echo «Actualizando NOD32″
#NODMIRROR
UPDATE=»/srv/www/antivirus/» # Ruta del destino de la Actualización
SERVER=»http://antivirus.caisa.co.cu/nod32/» # Servidor de Actualización
OPCIONES=»-c 10 –exclude=»zip» –exclude=»nod32v2″ –log=/tmp/esetmirror.log»

# Empezar la Actualizacion
lftp -c mirror $SERVER $UPDATE $OPCIONES

# Borrando actualizacion anterior
rm -f $UPDATE/nod32/*.zip

# Compactar nueva actualizacion
cd $UPDATE/nod32/
zip -r -9 -q «nod-$(date +’%d%m%Y’).zip» *

exit 0


Problema: Como se filtran las conexiones actuales

Metodología:Usaremos el comando netstat. Para ver una lista legible en ubunut linux lanzamos este comando:

la salida será algo parecido a lo siguiente:

puertos-servicios

Es un servidor local y tiene pocas conexiones pero en un servidor en producción (internet) la lista puede ser muy larga, por eso podemos usar “grep” para que se nos muestren solo las que nos interesan y filtrar por un estado o por una ip concreta unos ejemplos:

y si queremos filtrar por IP:


Problema: Quiero bloquear el montaje por defecto de las memorias USB en nuestro sistema Linux

Metodología:Existen varias formas de hacerlo a nivel de kernel, grub, etc. Una de las formas más sencillas de bloquear toda conexión de memorias USB a un equipo ejecutando Linux se basa en el bloqueo del directorio de montaje por defecto cambiando los permisos del mismo. En Ubuntu, por ejemplo, cuando conectamos una memoria USB esta se monta automáticamente en el directorio /media/ (en otras distribuciones como Arch sería /run/media/). Este directorio puede variar en función de la distribución que utilicemos.

Cambiando los permisos de lectura y escritura de la carpeta donde se montan dichas unidades conseguiremos que al conectar una memoria a nuestro PC esta no se monte correctamente y no podamos utilizarla, quedando el uso de los puertos USB totalmente bloqueado.

Para ello abriremos un terminal y tecleamos:
sudo chmod 700 /media/

De esta manera asignamos a la carpeta donde se montan las memorias USB (en este caso /media/) únicamente permisos para root, es decir, que únicamente el superusuario podría montar unidades y tener acceso a ellas, quedando todos los demás sin poder acceder a las memorias USB que conecten.


Problema: Convertir archivos de video

Metodología:Es muy sencillo, tan solo necesitamso instalar 2 paquetes (disponibles en los repositorios oficiales) mediante Synaptic o la consola: ffmpeg y mencoder.

ffmpeg -i video_original.fmt video_nuevo.fmt

Pero claro:

-Hay que cambiar video_original y video_nuevo por el nombre del video original, y el del nuevo respectivamente.

-Hay que cambiar fmt por los respectivos formatos de video.

Un ejemplo:

ffmpeg -i cena.ogg cena2.avi


Problema: Ver TV Gratis en Linux

Metodología: Usaremos un script: TVenLinux.sh. Primero tenmos que instalar los paquetes necesarios para que la aplicación funcione sin problemas.

Se trata de los paquetes mplayer, rtmpdump y curl, que podremos instalar en Debian, Ubuntu y derivadas con el comando
sudo apt-get install mplayer rtmpdump curl

Y que también podremos instalar en Mandriva, Mageia y similares con un

sudo urpmi mplayer rtmpdump curl

Siendo el proceso análogo para otras distribuciones con distintos gestores de paquetes. Como explica el autor, el paquete curl no es obligatorio, pero nos permitirá mostrar la información del canal si ésta existe.

Una vez instalados los paquetes tendremos que descargar el script TVenLinux.sh, y darle permisos de ejecución para luego ejecutarlo. En una terminal sería
wget -c https://www.sysadminsdecuba.com/wp-content/uploads/2015/05/TVenLinux.sh_.tar-1.gz
chmod u+x TVenLinux.sh
./TVenLinux.sh

Eso hará que se lance una pequeña ventana con la lista de canales, de los cuales tendremos que seleccionar cualquiera de ellos. A los pocos segundos aparecerá una ventana de Mplayer con el canal en emisión que hemos elegido, y con muy poco retraso con respecto a la emisión real en TDT (en mis pruebas, 12 segundos de retraso).


Problema: Mejorando el nano para programadores

Metodología:  Editaremos el archivo /etc/nanorc
wget -c https://www.sysadminsdecuba.com/wp-content/uploads/dlm_uploads/2018/01/nanorc.txt
sudo cp nanorc.txt /etc/nanorc


Problema: Cambiar o editar la fecha y hora desde la consola

Metodología:

date --set "2015-06-04 19:25"

Ahora realizaremos el mismo cambio para actualizar la fecha en la BIOS.

hwclock --set --date="2015-06-04 19:25"

Para comprobarlo tecleamos:
hwclock

y devolverá algo como..
Thu Jun 04 19:25:00 CET 2015

Con esto estamos seteando en el sistema el día 04 de Junio de 2015 y la hora a las 19:25 horas.

Pero, como te habrás dado cuenta, habrán pasado unos segundos de desactualización, esto lo podemos solucionar, escribiendo la sentencia de abajo, en vez de la instrucción más arriba indicada:

hwclock --set --date="date '+%D %H:%M:%S'"

Si en algún momento reinicias el PC se creará el fichero /etc/adjtime, y como no vendrá especificada zona horaria, pondrá la local.

Para sincronizar la hora, si la pila está agotada, etc, para que coja la «hora real» en cada reinicio editar el fichero /etc/rc.d/rc.local y colocar al final:

ntpdate -u ntp.ubuntu.com

(Esto además te permite que se cambie la hora automáticamente según tu zona horaria)

( Puedes utilizar cualquier otro servidor ntp que conozcas, y esto es independiente de tu distribución, sea RedHat, Debian, Fedora, Ubuntu…)

Si además quieres sincronizar la fecha y la hora del sistema con la de la BIOS tras la línea anterior puedes escribir:

hwclock --set --date="date '+%D %H:%M:%S'"

Y tendrás sincronizadas, sistema operativo y reloj del sistema.


Problema: Cambiarme la MAC (MAC Address Spoofing)

Metodología: Usaremos Macchanger es una herramienta que puede ser instalada en cualquier Linux y puede cambiar la dirección MAC a cualquier dirección deseada hasta el siguiente reinicio.Primero tenemos que acabar con el adaptador de red con el fin de cambiar la dirección MAC. Esto se puede hacer mediante el siguiente comando:

ifconfig wlan1 down

Reemplace wlan1 por su propio adaptador de red.

Ahora utilice el siguiente comando para cambiar su dirección MAC a una nueva dirección MAC al azar:

macchanger -r wlan1

Macchanger le mostrará la dirección MAC permanente, actualizada y modificada. La permanente Dirección MAC será restaurado a su adaptador de red al iniciar el sistema o se puede restablecer su adaptador de red dirección MAC manualmente. Utilice el siguiente comando para restaurar la dirección MAC permanente a su adaptador de red de forma manual:

macchanger -permanente wlan1

También puede suplantar una dirección MAC en particular mediante el siguiente comando:

macchanger -m [Dirección MAC Spoofing] wlan1

macchanger -m XX: XX: XX: XX: XX: XX wlan1

Si recibe el siguiente error que necesita para derrotar a la interfaz de red antes de cambiar la dirección MAC (comando: ifconfig wlan1 abajo):

ERROR: No se puede cambiar MAC: interface hacia arriba o no autorización: No se puede asignar la dirección solicitada

Utilice el siguiente comando para abrir el adaptador de red con la nueva dirección MAC:

ifconfig wlan1 up

Utilice el siguiente comando para mostrar la dirección MAC actual:

macchanger -show wlan1


Problema: Eliminar llave obsoleta de ssh de know_hosts

Metodología:Cuando nos conectamos mediante ssh a un sever y nos sale algo como esto.

Necesitamos para eliminar una clave o fingerprint del known_hosts, para hacerlo por línea de comandos:

– Metodo 1 usando sed

– Metodo 2 con ssh-keygen


Problema: Bloquear la actualizacion de un paquete

Metodología: Con el gestor de paquetes de Debian dpkg podemos bloquear/retener la actualización de paquetes que nos interesa mantener en una versión concreta. Para ello haremos uso del comando dpkg junto con los parámetros get-selections y set-selections.

Ver el estado de todos los paquetes:

Ver el estado de uno específico:

Evitando que un paquete se actualice:

Devolviendolo a su estado anterior y permitiendo su instalacion:


Problema: Para distribuciones RHEL una herramienta muy usada es:

sudo chkconfig

que se puede usar para configurar los servicios para que se inicien en el arranque, etc. Por ejemplo, evitar que Apache se inicie en el arranque:

sudo chkconfig httpd off

Debian / Ubuntu no tiene esto. En su lugar puedes instalar y usar sysv-rc-conf.

Metodología: Instalar y usar sysv-rc-conf.

sudo apt-get install sysv-rc-conf

Para usar, simplemente llame:

sudo sysv-rc-conf

que le dará algo como a continuación (donde puede seleccionar servicios, etc. para el arranque):

Problema: No tengo WIFI y poseo una Realtek RTL8821CE

Metodología: Compilar módulo de kernel para chip WiFi RTL8821CE

Reiniciar y listo!

Problema: Tengo que establecer mi proxy pero la contraseña usa caracteres especiales

Metodología: Como ya vimos anteriormente y en un post de este sitio establecemos el proxy usando variables de entorno. Pero que pasa si la contraseña usada para acceder al proxy usa caracteres especiales. Pues bueno no nos funcionara. Ejemplo si la clave que usáramos es  God@!99$ entonces nuestra variable quedaría así:

export http_proxy=»http://user:God@!99$@ip_del_proxy:3128/»

Pero esto no lo entendería, por lo que la solución seria convertir esos caracteres especiales  a Unicode Hexadecimal (HEX). Para esto pueden apoyarse con unum o gnome-character-map para la conversión. Ejemplo usando unum:

Por lo que solamente quedaría reemplazar los caracteres especiales  por los unicode hexadecimales quedando así:

export http_proxy=»http://user:God%40%2199%24@ip_del_proxy:3128/»

Se sustituye @ por %40, ! por %21 y $ por %24

Ahora nuestro linux sera capaz de entender la contraseña.


Problema: Uso programa X (Sawmill por ejemplo) para procesado de logs en linux y cuando cambia el año Diciembre>Enero el sistema empieza a añadir los logs de Enero a Enero del año pasado!

Metodología: Por defecto los sistemas de logs no guardan el año en el log por ejemplo en Ubuntu 18.04 con rsyslog una línea de log típica es como sigue:

O sea no hay año, si usas rsyslog cambiar eso es simple, ve al fichero /etc/rsyslog.conf y localiza el segmento que dice:

—%<—–
#
# Use traditional timestamp format.
# To enable high precision timestamps, comment out the following line.
#
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
—%<—–

Y simplemente comenta la última línea, reinicia el rsyslog con el comando que prefieras:

systemctl restart rsyslog
service rsyslog restart

Y listo tu server empezará a generar logs en el formato siguiente:

Donde podemos ver que hay una mejor exactitud con el tiempo.


Problema: Zimbra me muestra Error:HTTP ERROR 502

Metodología: Esto suele suceder porque el puerto 80 se pone a escuchar local. Lo comprobamos de esta forma:

Lo reparamos de la siguiente manera:

NOTA: Posicionarse  en la carpeta opt/zimbra nos garantiza que el servicio cbpolicyd levante sin problemas. Como extra les dare los siguientes comandos, con los cuales seran capaz de arreglar muchos errores de zimbra


 

NOTA: A partir de este punto iré incrementando con más comandos útiles y los que me hagan llegar ustedes mismos por los comentarios usando el formato que les pido.

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 4.9 / 5. Recuento de votos: 14

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Sobre Alexander Rivas Alpizar 61 artículos
Administrador de Redes EMPRESTUR Cienfuegos

19 comentarios

  1. Firefox 60.0 Firefox 60.0 GNU/Linux x64 GNU/Linux x64
    Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0

    script final ya probado en la práctica con arreglos:

    #!/bin/bash
    #
    # ad_csv.sh by Joe1962
    #
    # Bulk add users to samba4 ADDC
    # from comma-delimited csv file.
    #
    # HOWTO:
    # csv file must have UNIX line ending.
    # Variables in «USER VARS» section must be filled in by user.
    # Lines starting with «###» are tips for different use cases.
    # chmod + x ad_csv.sh
    # Execute script as: ./ad_csv.sh
    #
    # CSV FIELDS:
    # F1 = username
    # F2 = name
    # F3 = surname
    # F4 = email
    # F5 = second level OU
    #
    # USER VARS:
    # FN = csv filename
    # OU = first level OU
    # PW = default password
    #
    # INTERNAL VARS:
    # UU = full OU string
    #

    ### comment following 2 lines if you want to
    ### pipe the csv file to the script, like so:
    ### ./ad_csv.sh < PATH_TO_CSV_FILE
    FN=NAME_OF_CSV.csv
    exec < $FN

    # read first line (field names):
    ### comment next line if no fieldnames line on csv.
    IFS="," read -r F1 F2 F3 F4 F5
    #echo $F1 $F2 $F3 $F4 $F5

    # read all records in a loop:
    ### Set OU to empty string if F5 is first-level OU.
    OU="NAME_OF_OU"
    PW="Test.321"
    while IFS="," read -r F1 F2 F3 F4 F5
    do
    #echo $F1 $F2 $F3 $F4 $F5
    if [ -z ${OU} ] ; then
    UU="OU=$F5"
    else
    UU="OU=$F5,OU=$OU"
    fi
    samba-tool user create "${F1}" "${PW}" \
    –given-name="${F2}" \
    –surname="${F3}" \
    –mail-address="${F4}" \
    –userou="${UU}" \
    –must-change-at-next-login
    done

  2. Firefox 60.0 Firefox 60.0 GNU/Linux x64 GNU/Linux x64
    Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0

    se me fué un errorcito, cambiar la línea:
    if [ -z $OU ] ; then
    por esta:
    if [ -z ${$OU} ] ; then

  3. Firefox 60.0 Firefox 60.0 GNU/Linux x64 GNU/Linux x64
    Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0

    Se me olvidó decir que las direcciones o lo que sean los OU esos, tienen que existir. Tendré que hacer otro script para crear los OU por lotes, jejeje El script está diseñado para 2 niveles de OU, por ejemplo: OU=CENPALAB,OU=DIR_INFORMATICA, pero en los commentarios del script explica qué hacer si hay un sólo nivel.

  4. Firefox 60.0 Firefox 60.0 GNU/Linux x64 GNU/Linux x64
    Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0

    Un script para crear por lote usuarios en un samba4 ADDC a partir de un fichero csv:

    #!/bin/bash
    #
    # by Joe1962
    #
    # Bulk add users to samba4 ADDC
    # from comma-delimited csv file.
    #
    # HOWTO:
    # csv file must have UNIX line ending.
    # Variables in «USER VARS» section must be filled in by user.
    # Lines starting with «###» are tips for different use cases.
    # chmod + x ad_csv.sh
    # Execute script as: ./ad_csv.sh
    #
    # CSV FIELDS:
    # F1 = username
    # F2 = name
    # F3 = surname
    # F4 = email
    # F5 = second level OU
    #
    # USER VARS:
    # FN = csv filename
    # OU = first level OU
    # PW = default password
    #
    # INTERNAL VARS:
    # UU = full OU string
    #

    ### comment following 2 lines if you want to
    ### pipe the csv file to the script, like so:
    ### ./ad_csv.sh < PATH_TO_CSV_FILE
    FN=ad_csv.csv
    exec < $FN

    # read first line (field names):
    ### comment next line if no fieldnames line on csv.
    IFS="," read -r F1 F2 F3 F4 F5
    #echo $F1 $F2 $F3 $F4 $F5

    # read all records in a loop:
    ### Set OU to empty string if F5 is first-level OU.
    OU="NAME_OF_FIRST_LEVEL_OU"
    while IFS="," read -r F1 F2 F3 F4 F5
    do
    #echo $F1 $F2 $F3 $F4 $F5

    if [ -z $OU ] ; then
    UU="OU=$F5"
    elif
    UU="OU=$F5,OU=$OU"
    fi

    samba-tool user create $F1 $PW \
    –given-name=$F2 \
    –surname=$F3 \
    –mail-address=$F4 \
    –userou=$UU \
    –must-change-at-next-login
    done

  5. Google Chrome 89.0.4389.114 Google Chrome 89.0.4389.114 GNU/Linux x64 GNU/Linux x64
    Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36

    gnome shell extensions mediante proxy

    gsettings set org.gnome.system.proxy mode ‘manual’
    gsettings set org.gnome.system.proxy.http host ‘yourproxy’
    gsettings set org.gnome.system.proxy.http port 8080
    gsettings set org.gnome.system.proxy.http authentication-user ‘user_id’
    gsettings set org.gnome.system.proxy.http authentication-password ‘password’
    gsettings set org.gnome.system.proxy.ftp host ‘yourproxy’
    gsettings set org.gnome.system.proxy.ftp port 8080
    gsettings set org.gnome.system.proxy.http authentication-user ‘user_id’
    gsettings set org.gnome.system.proxy.http authentication-password ‘password’
    gsettings set org.gnome.system.proxy.https host ‘yourproxy’
    gsettings set org.gnome.system.proxy.https port 8080
    gsettings set org.gnome.system.proxy.http authentication-user ‘user_id’
    gsettings set org.gnome.system.proxy.http authentication-password ‘password’
    gsettings set org.gnome.system.proxy ignore-hosts «[‘localhost’, ‘127.0.0.0/8’, ‘*.localdomain.com’ ]»

  6. SeaMonkey 2.53.6 SeaMonkey 2.53.6 GNU/Linux x64 GNU/Linux x64
    Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0 SeaMonkey/2.53.6

    Cómo eliminar correctamente systemd-resolved si uno quiere seguir usando el NetworkManager:

    1- systemctl stop systemd-resolved

    2- systemctl disable systemd-resolved

    3- rm /etc/resolv.conf
    NOTA: es un symlink a /run/systemd/resolve/stub-resolv.conf y NetworkManager genera luego un fichero correcto.

    4- editar /etc/NetworkManager/NetworkManager.conf y agregar en la seccion [main]:
    dns=default

    5- systemctl restart NetworkManager

    Listo…!!!


  7. Warning: Undefined array key 1 in /var/www/html/sysadminsdecuba/wp-content/plugins/wp-useragent/wp-useragent-detect-os.php on line 668
    Firefox 76.0 Firefox 76.0 Ubuntu x64 Ubuntu x64
    Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:76.0) Gecko/20100101 Firefox/76.0

    Problema: Uso programa X (Sawmill por ejemplo) para procesado de logs en linux y cuando cambia el año Diciembre>Enero el sistema empieza a añadir los logs de Enero a Enero del año pasado!

    Metodología: Por defecto los sistemas de logs no guardan el año en el log por ejemplo en Ubuntu 18.04 con rsyslog una línea de log típica es como sigue:

    Jun 5 06:59:05 logs postfix/pickup[4377]: 34C35A11BF: uid=0 from=

    O sea no hay año, si usas rsyslog cambiar eso es simple, ve al fichero /etc/rsyslog.conf y localiza el segmento que dice:

    —%<—–
    #
    # Use traditional timestamp format.
    # To enable high precision timestamps, comment out the following line.
    #
    $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
    —%<—–

    Y simplemente comenta la última línea, reinicia el rsyslog con el comando que prefieras:

    systemctl restart rsyslog
    service rsyslog restart

    Y listo tu server empezará a generar logs en el formato siguiente:

    2020-06-05T12:26:01.112744-04:00 logs postfix/pickup[4377]: 34C35A11BF: uid=0 from=

    Donde podemos ver que hay una mejor exactitud con el tiempo.

  8. Firefox 52.0 Firefox 52.0 Windows XP Windows XP
    Mozilla/5.0 (Windows NT 5.1; rv:52.0) Gecko/20100101 Firefox/52.0

    Para montar particiones ntfs en sistemas gnu-linux tambien se puede editar el archivo fstab que esta dentro de /etc/fstab…
    antes se debe crear el directorio donde se montarán las particiones ntfs
    es mas o menos asi

    /dev/sdx /particiones windows ntfs rwx 0 0
    espero que les sirva; al menos a mi me funciona de todas maneras se aceptan sugerencias

    Salu25

  9. Firefox 68.0 Firefox 68.0 Windows 8.1 x64 Edition Windows 8.1 x64 Edition
    Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0

    Problema #1 No es recomendable activar el «PermitRootLogin» para la autenticación porque estás permitiendo un posible ataque de fuerza bruta al usuario root (el único que el atacante conoce que existe). Lo correcto es loguearse con un usuario con privilegios básicos y una vez autenticado con ese usuario, entonces elevar privilegios con «sudo».


  10. Warning: Undefined array key 1 in /var/www/html/sysadminsdecuba/wp-content/plugins/wp-useragent/wp-useragent-detect-os.php on line 668
    Firefox 60.0 Firefox 60.0 Ubuntu x64 Ubuntu x64
    Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0

    También podemos hacer el motabaje sin importar la letra, usando el LABEL o etiqueta que tiene el disco en el caso que la tenga, es recomendado agregarle una a cada partición según el uso.
    mount.ntfs-3g LABEL=BACKUP /media/BACKUP

  11. Firefox 59.0 Firefox 59.0 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0

    Problema:Eliminar llave obsoleta de ssh de know_hosts

    Cuando nos conectamos mediante ssh a un sever y nos sale algo como esto

    bash
    λ ssh [email protected]
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
    Someone could be eavesdropping on you right now (man-in-the-middle attack)!
    It is also possible that a host key has just been changed.
    The fingerprint for the ECDSA key sent by the remote host is
    SHA256:e67glAf6lnTzIpKnBpeCeWVrqKnLKTfV7aEqGOqb2Ac.
    Please contact your system administrator.
    Add correct host key in /home/rlsalgueiro/.ssh/known_hosts to get rid of this message.
    Offending ECDSA key in /home/rlsalgueiro/.ssh/known_hosts:2
    ECDSA host key for 10.1.1.1 has changed and you have requested strict checking.
    Host key verification failed.

    Necesitamos para eliminar una clave o fingerprint del known_hosts, para hacerlo por línea de comandos:

    – Metodo 1 usando sed

    ssh
    sed -i "2d" /home/rlsalgueiro/.ssh/known_hosts

    – Metodo 2 con ssh-keygen

    ssh
    ssh-keygen -R IP


  12. Warning: Undefined array key 1 in /var/www/html/sysadminsdecuba/wp-content/plugins/wp-useragent/wp-useragent-detect-os.php on line 668
    Firefox 56.0 Firefox 56.0 Ubuntu x64 Ubuntu x64
    Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:56.0) Gecko/20100101 Firefox/56.0

    esta biblia se parece mucho a mi Hacks.Linux.md, que tambien tengo incluidos los tips que comparto en algunos articulos

    • Firefox 57.0 Firefox 57.0 Windows 10 x64 Edition Windows 10 x64 Edition
      Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0

      Entonces rlsalgueiro vas ayudarnos a poner tus hacks aqui y hacer crecer la biblia?? Cuando sea un tips muy corto puedes ponerlo aqui en forma de comentario y yo lo subo al cuerpo del tuto..si el tips e smuy largo entonces escribelo en forma de TIPS.

      • Firefox 56.0 Firefox 56.0 Windows 10 x64 Edition Windows 10 x64 Edition
        Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0

        claro que si, ya hay algunos en los articulos de tips de limpieza de los kernels y proxy para linux, pero tengo como 30 hacks, algunos que dan un articulo y otros que pueden ponerse aqui, luego los subo

  13. Firefox 56.0 Firefox 56.0 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0

    Hablo de un entorno de LAN de estaciones de trabajo donde solamente tienen una interface de red activa, en los servers omito esta variable y pongo las que tiene, es muy buena tu aclaración, pero bueno es una opción que encontre para resolver un problema que tenia, pues imaginate configurar 100 estaciones de trabajo cambiando esta interface para la que tengan, mientras q modifico un solo scrpit y todos le sirve y siempre ellos van a tener una que es la fisica, no la wlan, gracias por tu aclaración.

    • Firefox 57.0 Firefox 57.0 Windows 7 x64 Edition Windows 7 x64 Edition
      Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0

      Bueno, igual podrias simplificar un poco el comando con que conformas tu variable:

      INET=$(ip -o link show | grep UP | awk ‘{print $2}’ | sed ‘s/\://g’)

  14. Firefox 56.0 Firefox 56.0 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0

    Una solución para cuando queremos declarar una variable que ella contenga el nombre de la interface de red que esta UP, para usarla ejemplo en un iptable sin importar que nombre tenga esa interface puede ser eth0, eth1 u otra es de esta forma:
    Ejemplo:

    INET=$(ip -o link show | awk ‘{print $2,$9}’ | grep UP | cut -d’ ‘ -f1 | sed ‘s/.$//g’)

    iptables -A INPUT -i $INET -s 10.0.1.0/24 -p icmp -m state –state NEW -j ACCEPT

    Espero les sirva como a mi.

    • Firefox 57.0 Firefox 57.0 Windows 7 x64 Edition Windows 7 x64 Edition
      Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0

      Michel, el inconveniente es que desde el punto de vista de seguridad hay que tener mucho cuidado porque si el equipo tienes digamos 2 interfaces eth levantadas podrias terminar creando vulnerabilidades con ese acercamiento.

      De todas formas, cuando se necesita hacer una regla genérica, basta con omitir el parámetro de la interfaz por completo y coincidiría con cualquiera, o incluso usar la negación, por ejemplo:

      iptables -A INPUT ! -i lo -s 127.0.0.0/8 -j DROP

      O sea, descartar todo lo que no provenga desde la interfaz local pero tenga una ip de origen del bloque 127.x.x.x

Dejar una contestacion

Tu dirección de correo electrónico no será publicada.


*