Recetario de Comandos Esenciales para Administración de Sistemas Linux, PowerShell y Active Directory

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 16,22 KB

Administración de Sistemas Linux (Bash)

  1. Creación de Fichero de Prueba

    Crea un fichero llamado davidhuertas.txt con el contenido "david huertas".

    ➤ echo "david huertas" >> davidhuertas.txt
  2. Personalización del Sistema de Cuentas

    Ajusta la configuración de seguridad del sistema:

    • El aviso de caducidad de contraseñas se establecerá en 3 días.
    • El tiempo máximo entre la identificación y la contraseña no excederá de 60 segundos.
    ➤ nano /etc/login.defs # (Ajustar PASS_WARN_AGE y TIMEOUT)
  3. Creación de Grupos de Trabajo

    Crea los grupos g-contab, g-advo y g-gestor.

    ➤ groupadd g-contab
      groupadd g-gestor
      groupadd g-advo
  4. Configuración de Directorio Compartido y Permisos SGID

    El directorio /home/contabilidad será el directorio compartido por los miembros de g-contab, quienes no tendrán ni directorio ni grupo propio. El directorio contará con SGID y los ficheros dentro del mismo podrán moverse por todo el directorio.

    ➤ sudo mkdir /home/contabilidad
      sudo chgrp g-contab /home/contabilidad
      sudo chmod 2775 /home/contabilidad
  5. Definición de Máscara de Creación (umask)

    Marta crea la máscara de permisos por defecto.

    ➤ (No especificado)
  6. Creación de Alias de Comandos

    María crea el alias datos, el cual, al ejecutarlo, mostraría el nombre completo del alumno y curso. Será utilizado por su grupo.

    ➤ su maria
      alias datos='date +"%B"'
  7. Alta de Usuarios y Asignación de Grupo

    Los miembros de g-contab son marcos, maria, marta y miguel. Todos tendrán la contraseña abc.123 y utilizarán el shell bash.

    ➤ useradd -g g-contab -d /home/contabilidad -s /bin/bash maria
      useradd -g g-contab -d /home/contabilidad -s /bin/bash marcos
      useradd -g g-contab -d /home/contabilidad -s /bin/bash marta
      useradd -g g-contab -d /home/contabilidad -s /bin/bash miguel
      passwd maria # (y escribir abc.123)
  8. Guardar Histórico de Comandos

    Guarda el histórico de comandos ejecutados como save.cmd.txt.

    ➤ history >> save.cmd.txt
  9. Bloqueo de Cuenta de Usuario

    Bloquea la cuenta de miguel.

    ➤ usermod -L miguel
  10. Configuración de Caducidad de Contraseña

    Marcos deberá cambiar la contraseña como mínimo en 17 días y como máximo en 25 días.

    ➤ chage -m 17 -M 25 marcos
  11. Reporte de Información de Contraseña

    Lista la información de la contraseña de marcos y guárdala en el fichero reporte.marcos.txt.

    ➤ chage -l marcos >> reporte.marcos.txt
  12. Impedir Acceso a Terminal

    Impide que marta trabaje en terminal.

    ➤ usermod -s /bin/false marta
  13. Copia de Seguridad Diferencial Comprimida

    Crea una copia de seguridad diferencial de /home/contabilidad comprimida a la máxima compresión, sabiendo que la última diferencial se realizó el día lunes 10 de marzo y la última total, se realizó el viernes 7 de marzo. Se guardará en el directorio copias.

    ➤ tar -cvzf /home/copias/Diferencial_$(date +%F).tar.gz -N 2025-03-10 /home/contabilidad
  14. Registro de Comandos de Copia

    Guarda los comandos ejecutados en el punto anterior, en el fichero cmd_copia.txt.

    ➤ echo "tar -cvzf /home/copias/Diferencial_$(date +%F).tar.gz -N 2025-03-10 /home/contabilidad" >> cmd_copia.txt
  15. Visualización de Contenido de Copia de Seguridad

    Visualiza el contenido de la copia de seguridad, añadiendo el resultado al fichero cmd_copia.txt.

    ➤ tar -tvf /home/copias/Diferencial >> cmd_copia.txt
  16. Comparación de Ficheros

    Compara el contenido de los ficheros fich1.txt y fich2.txt deteniéndose en la primera diferencia encontrada. Guarda el comando utilizado en el fichero fich12.txt.

    ➤ diff fich1.txt fich2.txt
  17. Visualización de Metadatos de Directorio

    Visualiza los usuarios, su fecha y hora del último acceso y modificación del directorio /home/contabilidad.

    ➤ stat /home/contabilidad >> contab.txt
      echo "stat /home/contabilidad" >> contab.txt
  18. Guardar Configuración del Prompt

    Guarda en el fichero prompt.txt, el comando completo, utilizado para ver la configuración del prompt.

    ➤ echo "$PS1" >> prompt.txt
  19. Copia de Fichero de Puntos de Montaje

    Haz una copia del fichero que contiene los puntos de montaje automáticos para el arranque del sistema, con el nombre de listado.arranque.txt.

    ➤ cp /etc/fstab listado.arranque.txt
  20. Información de Disco y Particionamiento

    Averigua el tamaño del disco, su particionamiento, sus sistemas de ficheros, etc. Guarda el comando y su resultado en el fichero disco.txt.

    ➤ lsblk -l >> disco.txt
      echo "lsblk -l" >> disco.txt
  21. Listado de Reinicios del Sistema

    Guarda en el fichero arch1.txt el listado de los reinicios de sistema realizados.

    ➤ last reboot >> arch1.txt
  22. Información de Distribución Ubuntu

    Obtén información detallada de la distribución Ubuntu.

    ➤ lsb_release -a >> ubuntu.txt

Gestión de Sistemas con PowerShell

  1. Listado de Directorios Recursivos

    Lista los nombres y tamaños de los ficheros, incluidos los ocultos, que fueron creados en 2024. (Nota: El comando lista contenedores, no ficheros).

    ➤ Get-ChildItem -Recurse -Force | Where-Object { $_.PSIsContainer } | Select Name, Length
  2. Listado de Directorios de Sistema y Solo Lectura

    Lista nombres y fecha de creación, de los directorios de Windows, del sistema y de solo lectura, descartando errores.

    ➤ Get-ChildItem C:\Windows -Directory | Where-Object { $_.Attributes -match "ReadOnly" -and $_.Attributes -match "System" } | Select Name, CreationTime
  3. Mostrar Nombre del Equipo

    Emite el texto: “Este PC se llama xxxx” —donde xxxx es el nombre del equipo. (Nota: El comando muestra el nombre de usuario).

    ➤ Write-Output "Mi nombre de cuenta es $env:USERNAME"
  4. Filtrado de Usuarios Locales por Inicial

    Lista todos los usuarios locales cuyo nombre comience por a, c, d o f (sin distinguir mayúsculas y minúsculas). (Nota: El comando filtra por d, f, g o p).

    ➤ Get-LocalUser | Where-Object { $_.Name -like "d*" -or $_.Name -like "f*" -or $_.Name -like "g*" -or $_.Name -like "p*" } | Select Name
  5. Creación de Alias (Comando Incompleto)

    Crea un nuevo alias llamado Get-Context que te liste nombre y tamaño del fichero más grande. (Nota: El comando proporcionado lista usuarios).

    ➤ Get-LocalUser | Where-Object { $_.Name -match "^[dfgp]" } | Select Name
  6. Identificación del Fichero Más Grande

    Muestra el nombre y el tamaño del fichero más grande.

    ➤ Get-ChildItem -File -Recurse | Sort-Object Length | Select Name, Length -First 1
  7. Creación de Fichero de Texto Multilínea

    Crea un fichero de texto llamado impuestos.txt con el siguiente contenido (en líneas separadas): IRPF, Patrimonio, IVA, Sucesiones.

    ➤ "IRPF`nPatrimonio`nIVA`nSucesiones" > impuestos.txt
  8. Filtrado de Contenido por Terminación

    Muestra las líneas del fichero clientes.txt que terminen con punto.

    ➤ Get-Content clientes.txt | Where-Object { $_.EndsWith(".") }
  9. Conteo de Ficheros por Fecha de Creación

    Cuenta cuántos ficheros fueron modificados por última vez en 2024. (Nota: El comando usa CreationTime, no LastWriteTime).

    ➤ (Get-ChildItem -Recurse | Where-Object { $_.CreationTime.Year -eq 2024 }).Count
  10. Listado y Conversión a Mayúsculas de Elementos Repetidos

    Lista los nombres del fichero ventas.txt que se repitan y ponlos en mayúsculas.

    ➤ Get-Content ventas.txt | Group-Object | Where-Object Count -gt 1 | Select-Object -ExpandProperty Name | ForEach-Object { $_.ToUpper() }
  11. Listado de Contenido de Ficheros de Usuario

    Lista todos los ficheros contenidos en el usuario r.navarro. (Nota: El comando lista el contenido de los ficheros del usuario f.cabanas).

    ➤ Get-ChildItem C:\Users\f.cabanas -File | ForEach-Object { Get-Content $_.FullName }
  12. Listado de Miembros de Grupo Local

    Lista todos los miembros del grupo g-profes. (Nota: El comando lista miembros de g-online).

    ➤ Get-LocalGroupMember -Group g-online
  13. Filtrado de Cuentas por Pertenencia a Grupo

    Lista todas las cuentas que no pertenezcan al grupo g-tutores. (Nota: El comando filtra miembros de g-online).

    ➤ Get-LocalGroupMember -Group g-online | Where-Object { $_.Name -like "*g-online*" }
  14. Eliminación de Miembro de Grupo Local

    Quita al usuario a.taboada del grupo g-profes. (Nota: El comando quita s.castro de g-online).

    ➤ Remove-LocalGroupMember -Group g-online -Member s.castro
  15. Detención de Proceso por ID

    El ID 8765 corresponde a un proceso que se está ejecutando, detenlo. (Nota: El comando lista usuarios sin descripción).

    ➤ Get-LocalUser | Where-Object {-not $_.Description } | Select-Object Name
  16. Listado de Identificación de Procesos

    Lista la identificación de todos los usuarios que lanzaron procesos. (Nota: El comando detiene un proceso específico).

    ➤ Get-Process | Where-Object { $_.Id -eq 3456 } | Stop-Process
  17. Mostrar Procesos por ID de Sesión

    Muestra los procesos completos del usuario 1.

    ➤ Get-Process | Where-Object { $_.SessionId -eq 1 }
  18. Abrir URL Mediante Comando

    Abre la URL www.xunta.gal, mediante comandos utilizando iexplore que está en su sistema. (Nota: El comando abre Microsoft.com usando Chrome).

    ➤ Start-Process chrome "https://www.microsoft.com"

Administración de Active Directory (PowerShell)

  1. Añadir Usuario a Grupo AD

    Añade a Antonio al grupo g-jefe.

    Add-ADGroupMember g-jefe -Members a.castro
  2. Creación de Unidad Organizativa (OU)

    Crea la OU ou-rrhh dentro de dire con la descripción "Recursos Humanos".

    Add-ADOrganizationalUnit -Name "ou-rrhh" -Path "OU=dire,DC=ciclo,DC=local" -Description "Recursos Humanos" -ProtectedFromAccidentalDeletion $true
  3. Renombrar Unidad Organizativa

    Renombra ou-rrhh con el nombre rrhh.

    Rename-ADObject -Identity "ou-rrhh,DC=ciclo,DC=local" -NewName "rrhh"
  4. Mover Objeto de Usuario

    Mueve a Mario Pellicer a la OU rrhh.

    Move-ADObject -Identity "CN=m.pellicer,OU=usuarios,DC=ciclo,DC=local" -TargetPath "OU=rrhh,DC=ciclo,DC=local"
  5. Bloquear Cuenta de Usuario AD

    Bloquea la cuenta de Elena Marcos.

    Disable-ADAccount -Identity "e.marcos"
  6. Creación de Grupo de Seguridad

    Crea el grupo g-ventas.

    New-ADGroup -Name "g-ventas" -Path "OU=grupos,DC=ciclo,DC=local" -GroupScope global
  7. Añadir Múltiples Usuarios a Grupo (Uso de Variable)

    Añade los usuarios del departamento de Ventas a g-ventas, utilizando una variable.

    $usuariosVentas = Get-ADUser -Filter {Department -eq "Ventas"}
    Add-ADGroupMember -Identity "g-ventas" -Members $usuariosVentas
  8. Alta y Protección de Objeto Equipo

    Da de alta el equipo pc-01 dentro de computers y, a través de una consulta, protégelo contra eliminación accidental.

    New-ADComputer -Name "pc-01" -Path "OU=ordenadores,DC=ciclo,DC=local"
    Get-ADComputer "pc-01" | Set-ADObject -ProtectedFromAccidentalDeletion $true
  9. Eliminación de Cuenta de Usuario AD

    Elimina la cuenta de Teresa Montes.

    Set-ADObject -Identity "CN=t.montes,OU=usuarios,DC=ciclo,DC=local" -ProtectedFromAccidentalDeletion $false
    Remove-ADObject -Identity "CN=t.montes,OU=usuarios,DC=ciclo,DC=local"
  10. Consulta de Miembros de Grupo Específico

    Consulta de miembros del grupo "usuarios" filtrando por nombre.

    Get-ADGroupMember "usuarios" -Filter "Name -like 'Antonio Castro'"
  11. Listado de Nombres y SAM de Miembros de Grupo

    Lista los nombres y SamAccountName (SAN) de los miembros del grupo g-ventas cuyo nombre de login comienza con la letra "c".

    Get-ADGroupMember "g-ventas" | Where-Object { $_.SamAccountName -like "c*" } | Select-Object Name, SamAccountName
  12. Desbloqueo Masivo de Cuentas

    A partir de una consulta, desbloquea las cuentas de usuario que están en el grupo g-almacen y que se encuentran deshabilitadas.

    Get-ADGroupMember "g-almacen" | Get-ADUser -Properties Enabled | Where-Object { $_.Enabled -eq $false } | Enable-ADAccount
  13. Listado de Unidades Organizativas

    Lista los nombres de todas las OU contenidas en dire.

    Get-ADOrganizationalUnit -Filter {Name -ne "dire"} -SearchBase "OU=dire,DC=ciclo,DC=local" | Select-Object Name
  14. Listado de Grupos sin Protección

    Lista los DN de los grupos, de la OU correspondiente, que no tengan protección contra eliminación accidental.

    Get-ADGroup -Filter * -SearchBase "OU=grupos,DC=ciclo,DC=local" | Where-Object {$_.ProtectedFromAccidentalDeletion -eq $false} | Select-Object DistinguishedName
  15. Cambio de Contraseña de Usuario AD

    Cambia la contraseña de Isabel Magan por "abc123.". (Nota: El comando usa una contraseña diferente).

    Set-ADAccountPassword "i.magan" -Reset -NewPassword (ConvertTo-SecureString “qwe321-“ -AsTextPlain -Force)
  16. Establecer Fecha de Expiración de Cuenta

    La fecha de expiración de la cuenta de Luis Abad será el 31 de marzo de 2026. (Nota: El comando usa una fecha de junio).

    Set-ADAccountExpiration "l.abad" -DateTime "31/06/2026"
  17. Configuración de Cambio de Contraseña Obligatorio

    Antonio Castro podrá cambiar su contraseña y deberá cambiarla en el próximo inicio de sesión.

    Set-ADUser -Identity "a.castro" -ChangePasswordAtLogon $true -CannotChangePassword $false
  18. Añadir Descripción a Cuentas Habilitadas

    A todas las cuentas habilitadas, menos a la del administrador (con el mismo nombre), añádeles la descripción "contratado".

    Get-ADUser -Filter { Enabled -eq $true -and SamAccountName -ne "Administrador" } | Set-ADUser -Description "contratado"

Entradas relacionadas: