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:
# Authentication:
LoginGraceTime 120
#PermitRootLogin without-password (comentar o borrar)
PermitRootLogin yes (Agregamos esta linea)
StrictModes yes
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.
gpg --keyring /opt/zimbra-archive-keyring.gpg --export | gpg --no-default-keyring --keyring trustedkeys.gpg --import
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
curl -x http://proxy_server:proxy_port --proxy-user username:password -L http://url
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:
Your ftp_proxy? [a.b.c.d] a.b.c.d:port
Your http_proxy? [a.b.c.d] a.b.c.d:port
Your no_proxy? [] a.b.c.d:port
If your proxy is an authenticating proxy, you can store your username
permanently. If you do not want that, just press RETURN. You will then
be asked for your username in every future session.
Your proxy user id? []
Please remember to call 'o conf commit' to make the config permanent!
cpan[3]> o conf commit
commit: wrote 'xxx/xxx/xxx/xxxxx/xxxx/Config.pm'
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.
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
./file-name32bits (ya podemos correr files en 32 bits)
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
root@proxmox2:~# blkid
/dev/loop0: UUID="c9b24890-a614-4e39-a783-d9ecdf56abbb" TYPE="ext4"
/dev/loop1: UUID="3ba31443-e6b7-4d99-83b5-194248c33d14" TYPE="ext4"
/dev/loop2: UUID="a70acf38-f71e-4f2e-a6b1-b6b7de92ee73" TYPE="ext4"
/dev/loop3: UUID="4aef1931-05c7-4fd1-8449-7124af716047" TYPE="ext4"
/dev/loop4: UUID="de277cdc-5a72-49d2-8cf9-156b64f23300" TYPE="ext4"
/dev/sda1: PARTUUID="6f983b57-53b0-4171-8b2d-2a0fa7ba5301"
/dev/sda2: UUID="374A-B679" TYPE="vfat" PARTUUID="a6ffd263-ca24-4d66-a762-bddf27834fec"
/dev/sda3: UUID="az0ktF-QhpT-bnM3-DRGa-dMa8-VH9Q-n5IGiC" TYPE="LVM2_member" PARTUUID="14026e04-f66a-4610-ad84-12c02f758117"
/dev/mapper/pve-root: UUID="580be8f5-18ba-4e6c-bd8d-519a3dc3a576" TYPE="ext4"
/dev/sdb1: LABEL="BACKUP" UUID="943C3E093C3DE740" TYPE="ntfs" PARTUUID="73eff990-01"
/dev/mapper/pve-swap: UUID="815794de-273c-4a55-bac0-c7ad9e4d955a" TYPE="swap"
/dev/mapper/pve-data: UUID="0e1e817a-6301-43f8-b08a-6f441e182c9c" TYPE="ext4"
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:
UUID={YOUR-UID} {/path/to/mount/point} {file-system-type} defaults,errors=remount-ro 0 1
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
/var/log/syslog
{
rotate 7
daily
missingok
notifempty
delaycompress
compress
postrotate
invoke-rc.d rsyslog rotate > /dev/null
endscript
}
/var/log/mail.info
/var/log/mail.warn
/var/log/mail.err
/var/log/mail.log
/var/log/daemon.log
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
/var/log/lpr.log
/var/log/cron.log
/var/log/debug
/var/log/messages
{
rotate 13 ----cambiar a 13 meses
monthly ----rotacion mensual missingok notifempty compress delaycompress sharedscripts postrotate invoke-rc.d rsyslog rotate > /dev/null
endscript
}
}
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.
# You can set the default proxies for Wget to use for http and ftp.
# They will override the value in the environment.
http_proxy = http://ip_servidor_proxy:8080/
https_proxy = http://ip_servidor_proxy:8080/
ftp_proxy = http://ip_servidor_proxy:8080/
# If you do not want to use proxy at all, set this to off.
use_proxy = on
Problema: Crear Lista de usuarios en ZIMBRA
Metodología: Usaremos el comando zmaccts. Primero debemos usar
su zimbra
zmaccts | grep "@" | awk '{print $1}'
zmaccts | grep "@" | awk '{print $1}' > accounts.txt (crea el fichero accounts.txt)
zmaccts | grep "@" | awk '{print $1}' > /mnt/accounts.txt (dar permisos a la carpeta donde lo copias)
zmaccts | mail -s "ZMACCTS Information" alexander@midominio.cu (manda un mail con todos los user)
zmaccts | grep "@" "ZMACCTS Information"
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:
sudo netstat -punta
la salida será algo parecido a lo siguiente:
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:
sudo sudo netstat -punta | grep "ESTABLISHED"
y si queremos filtrar por IP:
sudo netstat -punta | grep "192.168.0.132"
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.
bash
λ ssh root@10.1.1.1
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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
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:
dpkg --get-selections
Ver el estado de uno específico:
dpkg --get-selections firefox
firefox install
Evitando que un paquete se actualice:
echo "firefox hold" | sudo dpkg --set-selections
Devolviendolo a su estado anterior y permitiendo su instalacion:
echo "firefox install" | sudo dpkg --set-selections
Problema: Para distribuciones RHEL una herramienta muy usada es:
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:
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:
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
apt install bc module-assistant build-essential dkms
git clone https://github.com/tomaspinho/rtl8821ce
cd rtl8821ce
chmod +x dkms-install.sh
chmod +x dkms-remove.sh #por si queremos desintalarlo despues
sudo ./dkms-install.sh
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:
root@mail:~# ./unum.pl 'God@!99$'
Octal Decimal Hex HTML Character Unicode
0107 71 0x47 G "G" LATIN CAPITAL LETTER G
0157 111 0x6F o "o" LATIN SMALL LETTER O
0144 100 0x64 d "d" LATIN SMALL LETTER D
0100 64 0x40 @ "@" COMMERCIAL AT
041 33 0x21 ! "!" EXCLAMATION MARK
071 57 0x39 9 "9" DIGIT NINE
071 57 0x39 9 "9" DIGIT NINE
044 36 0x24 $ "$" DOLLAR SIGN
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: 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:
netstat -nlpt
Lo reparamos de la siguiente manera:
su - zimbra
cd /opt/zimbra/
zmtlsctl both
zmcontrol restart
netstat -nlpt
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
su - zimbra
cd /opt/zimbra/
zmcontrol restart
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.
View Comments
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
se me fué un errorcito, cambiar la línea:
if [ -z $OU ] ; then
por esta:
if [ -z ${$OU} ] ; then
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.
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
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' ]"
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...!!!
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.
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
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".
pra eso instalas fail2ban y te ahorras dolores de cabeza.
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