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.

Entradas relacionadas: