Skip to content

Latest commit

 

History

History
162 lines (133 loc) · 6.04 KB

2019-11-06.md

File metadata and controls

162 lines (133 loc) · 6.04 KB

Información del sistema

  • Estructura de directorios.
  • Búsqueda de información del sistema. Órdenes. Herramientas gráficas.
  • Sistema de archivos virtual.
  • Software instalado. Órdenes. Herramientas gráficas.
  • Gestión de la información del sistema. Rendimiento. Estadísticas.

Información del sistema

Windows


Repaso permisos PowerShell

Añadir permiso NTFS a una carpeta

https://www.jesusninoc.com/08/19/anadir-permiso-ntfs-a-una-carpeta

Atributos Valor Descripción
ContainerInherit 1 Los objetos contenedores secundarios se heredan de la ACE.
None 0 Los objetos secundarios no se heredan de la ACE.
ObjectInherit 2 Los objetos hoja secundarios se heredan de la ACE.

In short, access control entries (ACEs) flagged only with "Object Inheritance" apply that ACE to files in a folder, but not subfolders within that folder. ACEs flagged only with "Container Inheritance" apply that ACE to subfolders of the folder but not files.

Ejercicios

Asignar un permiso a una carpeta

# "'pepito', 'FullControl', 'ContainerInherit, ObjectInherit', 'None', 'Allow'" | Out-File permisos.txt

$permisos = Get-Acl -Path directorio
gc  .\permisos.txt | %{
$_
    $regla = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList ($_.replace(", '","@").split("@").replace("'",""))
    $permisos.SetAccessRule($regla)
    $permisos | Set-Acl -Path directorio
}

Asignar varios permisos a distintas carpetas

# "'carpeta1ggasdfasdf', 'pepito', 'FullControl', 'ContainerInherit, ObjectInherit', 'None', 'Allow'" > permisosconcarpetas.txt
# "carpeta2adsfasdfsd', 'gi1', 'FullControl', 'ContainerInherit, ObjectInherit', 'None', 'Allow'" >> permisosconcarpetas.txt

gc  ..\permisosconcarpetas.txt | %{
    $permisos = Get-Acl -Path directorio
    $_
    $var=$_.replace(", '","@").split("@").replace("'","")
    mkdir $var[0] -force
    $regla = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList ($var[1..$var.Length])
    $permisos.SetAccessRule($regla)
    $regla = $null
    $permisos | Set-Acl -Path $var[0]
}

Listar información sobre usuarios y grupos en PowerShell (con repaso sobre comandos)

Sacar el nombre los cinco grupos que más caracteres tienen en Linux desde PowerShell

Ayuda

Importar CSV

Select con propiedades personalizadas

Crear objetos

Solución 1

$grupos = wsl cat /etc/group 

$todos = foreach($grupito in $grupos)
{
    $grupito.split(":")[0]
}

$todos | Sort-Object -Property Length -Descending | select -First 5

Solución 2 (Manu)

$grupos = wsl cat /etc/group

$todos=foreach($nombre in $grupos)
{
    "El grupo "+$nombre.Split(":")[0]+" tiene "+$nombre.Split(":")[0].Length+" caracteres en su nombre."
}

$todosordenados=$todos | Sort-Object -Property Length -Descending | select -First 5

$todosordenados

Solución 2 (CSV)

$grupos = wsl cat /etc/group 
"usuarios,x,numero" | out-file usuarioslinux.csv
$grupos.replace(":",",") | out-file usuarioslinux.csv -Append
$usuarios = Import-Csv usuarioslinux.csv
$usuarios.usuarios | Sort-Object -Property length | select -Last 5

Copias de seguridad

Ayuda para copia de seguridad

Trabajar con fechas

https://www.jesusninoc.com/07/02/2-programacion-en-powershell/#Fechas

User and pass mysqldump

mysqldump -u [user name] -p[password] [database name] > [dump file]

MySQL dump ignorando tablas

https://github.com/jesusninoc/Scripts/blob/master/MySQL%20dump%20ignorando%20tablas.sh

MySQL dump completo

https://github.com/jesusninoc/Scripts/blob/master/MySQL%20dump%20completo.sh

Comprimir y descomprimir

Compress-Archive -LiteralPath C:\powershell\example.txt –CompressionLevel Optimal -DestinationPath C:\powershell\comprimido.zip
Expand-Archive -LiteralPath C:\powershell\comprimido.zip -DestinationPath C:\powershell\descomprimir
Compress-Archive -LiteralPath C:\powershell\example2.txt -Update -DestinationPath C:\powershell\comprimido.zip

Cifrar

Ejercicios sobre copias de seguridad

  • Copia de seguridad para cada día de la semana y ser capaz de recuperar
  • Comprimir las copias de seguridad que se han realizado
  • Enviar un mail cuando se haya realizado la copia de seguridad
mkdir (Get-Date).ToString("yyyyMMdd")
cd (Get-Date).ToString("yyyyMMdd")
Get-ChildItem ../ *.txt | Copy-Item

Get-ChildItem | select LastWriteTime
Get-ChildItem ../  | where LastWriteTime -gt (Get-Date).AddDays(-1) | Copy-Item

# Restaurar
mkdir tuscosasperdidas
cd .\tuscosasperdidas
Get-ChildItem ../ | Copy-Item

# Restaurar en función de lo que pide el usuario
$datosusar = Read-Host "Dime el nombre del arhcivo que tengo que recuperar"
ls $datosusar* | Copy-Item

# Comprimir el directorio con la fecha
$fecha = (Get-Date).ToString("yyyyMMdd") + ".zip"
Compress-Archive -LiteralPath .\20181119 –CompressionLevel Optimal -DestinationPath $fecha

Compress-Archive -LiteralPath virus.exe -Update -DestinationPath $fecha