Comandos de Linux: Gestión de Usuarios, Copias de Seguridad y Docker
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 9,36 KB
Comandos de Linux
1. Copia de Seguridad con Tar
Comando para realizar una copia de seguridad de la carpeta "/exámenes" en un archivo comprimido llamado "copia.tar.bz2" usando el comando "tar":
tar -cvjf copia.tar.bz2 examenes
2. Extraer Archivos con Tar
Comando para extraer y descomprimir solamente los exámenes de la carpeta "isol" dentro de "exámenes" del archivo "copia.tar.bz2":
tar -xvjf copia.tar.bz2 examenes/isol
3. Listar Contenido con Tar
Comando para listar el contenido sin desempaquetar ni descomprimir de las carpetas "/examenes/som" y "/examenes/aso" del archivo "copia.tar.bz2":
tar -tf copia.tar.bz2 examenes/som examenes/aso
4. Copia de Seguridad con Cpio
Comando para realizar una copia de seguridad de la carpeta "/examenes" (con todo su contenido) en un archivo llamado "copia.cpio" usando el comando "cpio":
find examenes | cpio -ov > copia.cpio
5. Diferencias entre Tar y Cpio
¿Hay alguna diferencia en el resultado al desempaquetar "/root/copia.tar.gz" y "/root/copia.cpio"?
Sí, la diferencia radica en que tar permite descomprimir el archivo cuantas veces se desee, mientras que cpio, en la segunda ocasión, avisará de que existe una versión con fecha igual o posterior del archivo.
6. Comprobar la Integridad de una Copia de Seguridad
Comando para comprobar la integridad de la copia de seguridad "copia.tar.bz2":
bzip2 -t copia.tar.bz2
7. Mostrar Información de Usuario
Comando que proporciona la siguiente salida: [uid=0(root) gid=0(root) grupos=0(root)]
id root
8. Listar Grupos de un Usuario
Comando para ver solamente la lista de grupos a la que pertenece un usuario:
groups nombre_usuario
9. Crear un Usuario
Comando para crear un usuario con las siguientes características:
- Nombre: luke
- Grupo primario: users
- Grupos secundarios: games
- Directorio personal: /home/luke (debe ser creado)
- Shell: /bin/bash
sudo useradd luke -g users -G games -d /home/luke -s /bin/bash
10. Establecer Fecha de Expiración
Comando para establecer la fecha de expiración del usuario "luke" al 2020-01-01:
sudo usermod -e 2020-01-01 luke
11. Significado del Campo en /etc/shadow
¿Qué significa el número "18262" en el octavo campo de /etc/shadow para el usuario luke?
El número 18262 representa el número de días transcurridos desde el 01/01/1970 (nacimiento de UNIX) hasta el día en que se deshabilitó la cuenta.
12. Borrar un Usuario
Comando para borrar el usuario "luke" y su carpeta personal:
sudo userdel -rf luke
13. Modificar Opciones de Contraseña
Comandos para modificar las siguientes opciones del usuario "luke" mediante "chage":
- Días mínimos de validez de la contraseña: 3
- Días máximos de validez de la contraseña: 30
- Días de aviso antes de que la contraseña caduque: 5
sudo chage -m 3 -M 30 -W 5 luke
14. Bloquear y Desbloquear una Cuenta
Comandos para bloquear y desbloquear la cuenta "luke":
- Bloquear:
sudo usermod -L luke
- Desbloquear:
sudo usermod -U luke
- Desbloquear y establecer contraseña (si no tiene):
sudo usermod -p "contraseña" luke
15. Mostrar Información de Contraseña
Comando que muestra la siguiente información de usuario: [luke P 05/30/2017 3 30 5 -1]
sudo passwd -S luke
16. Ubicación de la Línea [games:x:60:luke]
¿A qué fichero pertenece la línea [games:x:60:luke]?
Pertenece al fichero /etc/group.
17. Contraseña de Grupo
¿Se puede establecer la contraseña a un grupo? En caso positivo, indica el comando para cambiar la contraseña al grupo "users" y para qué sirve.
Sí, se puede establecer una contraseña a un grupo. El comando para cambiar la contraseña al grupo "users" es:
sudo gpasswd users
La contraseña de grupo sirve para controlar el acceso al grupo, permitiendo que solo los usuarios que la conozcan puedan unirse al mismo. Esto proporciona un nivel adicional de seguridad.
18. Campos del Fichero /etc/gshadow
Indica los campos pertenecientes al fichero "/etc/gshadow":
- Nombre del grupo
- Contraseña
- Administradores
- Lista de usuarios
19. Añadirse a un Grupo Temporalmente
Comando para auto añadirse a un grupo temporalmente:
sudo newgrp nombre_del_grupo
20. Establecer Lista de Usuarios para un Grupo
Comando para establecer la lista de usuarios (luke, german) para el grupo "users":
sudo gpasswd -M luke,german users
21. Lanzar un Contenedor Docker
Comando para lanzar un contenedor Docker a partir de una imagen Ubuntu, ejecutar un shell dentro del contenedor y nombrarlo "ubuntu":
docker run -it --name ubuntu ubuntu /bin/bash
22. Borrar un Contenedor Docker
Comando para borrar el contenedor "ubuntu":
docker rm -f ubuntu
23. Ver Todos los Contenedores Docker
Comando para ver todos los contenedores Docker activos y no activos:
docker ps -a
24. Ver Todas las Imágenes Docker
Comando para ver todas las imágenes Docker disponibles:
docker images
25. Borrar una Imagen Docker
Comando para borrar la imagen de Ubuntu:
docker rmi ubuntu
26. Script para Comparar Números
Script que compara dos números pasados como parámetros e indica si el primero es mayor, menor o igual que el segundo:
#!/bin/bash
if [ $1 -eq $2 ]; then
echo "El primer parámetro es igual que el segundo."
elif [ $1 -gt $2 ]; then
echo "El primer parámetro es mayor que el segundo."
else
echo "El primer parámetro es menor que el segundo."
fi
27. Salida del Script ej02.sh
¿Qué imprimirá por pantalla el siguiente script al ejecutarlo con ./ej02.sh root?
#!/bin/bash
salida=`grep $1 /etc/passwd`
if [ $? -eq 0 ]; then
echo "$salida"
fi
El script imprimirá la línea del usuario root en el archivo /etc/passwd.
28. Salida del Script
¿Qué muestra por pantalla el siguiente script?
#!/bin/bash
more /etc/gshadow | while read line; do
v1=`echo $line | cut -d':' -f2`
if [ "$v1" = "!" ]; then
echo $(echo $line | cut -f1 -d':')
fi
done
El script muestra los nombres de los grupos del archivo /etc/gshadow que tienen una contraseña bloqueada (representada por "!" en el segundo campo).
29. Script para Mostrar el ID de un Usuario
Script que muestra el ID de un usuario pasado como parámetro:
#!/bin/bash
read -p "Dime un usuario: " usuario
id -u $usuario
30. Corrección del Script de Directorio
El siguiente script intenta determinar si un directorio existe. Indica dónde está el fallo y corrígelo:
#!/bin/bash
read -p "Dime un directorio: " directorio
if [ ! -z $directorio ] || [ -d $directorio ]; then
echo "El directorio $directorio existe"
else
echo "El directorio $directorio no existe"
fi
El fallo está en el operador lógico || (OR). Debería ser && (AND) para que ambas condiciones se cumplan.
Script corregido:
#!/bin/bash
read -p "Dime un directorio: " directorio
if [ ! -z "$directorio" ] && [ -d "$directorio" ]; then
echo "El directorio $directorio existe"
else
echo "El directorio $directorio no existe"
fi
31. Script de Menú
Script con un menú de opciones:
#!/bin/bash
# Menu de opciones
# Funciones
function menu () {
echo -e "\n-----Menu-----"
echo "1] directorio o fichero"
echo -e "2] salir\n"
read -p "introduzca opcion: " opc
echo -e "\n"
}
function directorio_o_fichero () {
read -p "Introduzca el nombre del directorio o fichero: " objeto
if [ -d "$objeto" ]; then
ls "$objeto"
elif [ -f "$objeto" ]; then
more "$objeto"
else
echo "No es un directorio ni un fichero"
fi
}
while true; do
menu
case $opc in
1) directorio_o_fichero ;;
2) echo "Fin de ejecucuion"
break ;;
esac
done
exit 0
Este script presenta un menú con dos opciones: listar el contenido de un directorio o fichero, o salir. La función directorio_o_fichero verifica si el objeto introducido es un directorio o un fichero y muestra su contenido en consecuencia.