b2t4 - Linux COPY Flashcards
Qué capacidades o funcionalidades tiene el kernel space de Linux?
- Entrada / salida
- Gestión memoria
- Gestión procesos
- Virtual file system
Cómo se puede ampliar en tiempo de ejecución la funcionalidad del kernel de Linux?
Activando MODULES (LKM - módulos cargables de linux)
Qué es un LKM de Linux?
Un módulo cargable de linux. Llamados modules, que permiten ampliar la funcionalidad del kernel en tiempo de ejecución activándolos
Qué tiene el user space de la arquitectura Linux?
- Aplicaciones de usuario
- System libraries (libc)
Cómo se comunican las system libraries del user space de Linux con el kernel space?
Llamando a un servicio del System Call Interface (SCI) del kernell, utilizando primero la instrucción int80h, para interrumpir el proceso que se esté ejecutando del kernel
En qué directorio de sistema está el kernel
en /boot
Para qué se usa la interrupción int80h?
La usan las system libraries para interrumpir el proceso que se esté ejecutando en la CPU para llamar a un servicio del SCI (System Call Interface)
Qué elemento del kernel permite a las aplicaciones de usuario utilizar funciones del kernel como manejar dispositivos de entrada salida, abrir ficheros, memoria, o cualquier recurso a bajo nivel?
El System Call Interface (SCI)
En qué dos partes, que funcionan sobre el hardware, tiene el sistema operativo Linux?
- User Space
- Kernel Space
Qué comparten todas las distribuciones de Linux?
El mismo kernel
Nombra las principales familias de productos Unix
SCO (Santa Cruz)
HP-UX
IBM-AIX
BSD → FreeBSD → MacOSX
Linux
Solaris (Sun Microsistems)
Cuales son las principales familias y distribuciones de distribuciones Linux?
RedHat -> Fedora / CentOS (ahora rocky linux)
Mandriva -> Mageia
Debian -> Ubuntu -> Mint
Suse
Slackware
Gentoo
PuppyLinux
ArchLinux
Kali
Cual es el tipo de paquete que maneja RedHat?
.rpm
Cual es el tipo de paquete que maneja Debian?
.deb
Cual es el tipo de paquete que maneja Slackware?
.tgz
Cual es el tipo de paquete que maneja Gentoo?
ebuilds
Cual es el tipo de paquete que maneja PuppyLinux?
.PET
Cual es el gestor de paquetes que maneja ArchLinux?
pacman
De qué familia Unix surge MAC-OSX? Que tipo de paquetes maneja?
De BSD
.dmg
Para qué sirve el comando apt update?
Para actualizar el catálogo de paquetes debian
En qué ruta y fichero está en Debian el catálogo de paquetes y programas debian?
/etc/apt/source.list
Para qué sirve la herramienta apt de debian? Cuál es el equivalente en RedHat?
Para gestionar paquetes (apt update, apt install, apt search, …) y sus dependencias
En RedHat es yum, que está siendo sustituido por DNF
Otros: FlatPack y SNAP
Qué herramienta tiene RedHat se usa para instalar paquetes de forma online? Similar a apt en debian
yum
dnf
En qué ruta y fichero está en RedHat el catálogo de paquetes y programas .rpm?
/etc/yum.repos.d
Qué gestor de paquetes instala paquetes .rpm de RedHat, a parte de yum ?
dnf o Dandified Yum
Para qué sirve el comando debian dpkg?
Para instalar.deb de forma offline
Para qué sirve el comando Redkhat rpm -Uvh?
Para instalar paquetería Redhat (.rpm) de forma offline
Qué tiene una distribución Linux?
Distribución = Kernel de Linux + Programa de instalación + Aplicaciones
Qué hacen en debian los comandos como aptitude, dselect o synaptic?
Son front-ends gráficos para gestionar paquetería debian, por debajo usan apt-get
Nombra 3 GUIs (Interfaces gráficas) de Linux
Genome
KDE
Deepin
Cómo se crea una variable de shell en linux? Y para convertirla en una variable de entorno “global”?
variable = valor, sin más comandos que eso
export variable = valor o export variable si ya está creada como variable de esa shell
En qué ficheros están las variables de shell y de entorno?
Y las de cada usuario?
Global al sistema
/etc/.profile
/etc/bash.bashrc
Cada usuario
~/.profile
~/..bashrc
Para qué sirve el comando de bash time?
Saca el tiempo de ejecución del comando que le pongas a continuación
Para qué sirven los siguientes comandos?
- whoami
- ~/
- sudo su
- apt-get
- apt-get install
- apt-get —pruge remove [aplicacion]
- apt-get search
- pwd
- ls
- ls -a
- ls -l
- ls -li
- ls -l -h
- clear / CTRL+L
- cd
- cd -
- cd /
- cd home
- cd
- cd ./
- TAB
- ← →
- mkdir
- touch
- touch -a / -m / -c
- cp
- cp - rsync
- rm
- mv
- man [comando]
- env
- >
- >>
- exec [comando]
- history
- tar
Para qué sirven los siguientes comandos?
- whoami → devuelve nombre usuario
- ~/ → directorio home
- sudo su → darse permisos de superusuario
- apt-get → instala y desinstala programas. Necesita permisos administrador
- apt-get install → instalar aplicaciones.
- apt-get —pruge remove [aplicacion] → desinstala
- apt-search → buscar un paquete
- pwd → devuelve ruta donde se está posicionado
- ls → ver el contenido del directorio actual
- ls -a → incluido archivos ocultos
- ls -l → detalle
- ls -li → detalle + nº de inodo
- ls -l -h → tamaño archivos en formato leíble por humano
- clear / CTRL+L → borrar consola
- cd → cambiar de directorio
- cd - → para volver al directorio anterior
- cd / → ruta absoluta
- cd home o cd sin nada→ home (para ir a home directamente)
- cd ./ → ruta relativa
- TAB → para autocompletar el nombre del directorio
- “← →” → para mostrar comandos recientes
- mkdir → crear directorio
- touch → crear archivo de texto vacío
- touch -a / -m / -c → modifica la fecha de último acceso / modifica la fecha de modificación / no crea el fichero si no existe
- cp → copiar archivo
- rsync → copia sin sobreescribir
- rm → borrar archivo
- mv → mover archivo (o renombrar)
- man [comando] → ayuda para usar el comando
- env → muestra variables de entorno del usuario actual
- > → redireccionar la salida de un comando a otro sitio, sobreescribiendo
- >> → redireccionar la salida de un comando a otro sitio, añadiendo, no sobreescribiendo
- exec [comando] → ejecuta un comando y te saca del shell como si hicieses exit
- history → lista los últimos comandos tecleados
- tar → empaquetar / desempaquetar
Para qué sirven los siguientes comandos bash para manejar usuarios y permisos?
groups
groups [usuario]
groupadd
groupdel
groupmod
chown
chgrp
addusr
addusr -ingroup [grupo]
psswd
su [usuario]
groups: para ver los grupos
groups [usuario]: indica el grupo del usuario
groupadd: añadir grupo
groupdel: borrar grupo
groupmod: modificar grupo
chown : modificar owner y grupo de un fichero o directorio (sintaxis chown user:group)
chgrp: modifica grupo de un fichero o directorio
addusr: añadir usuario a un grupo
addusr -ingroup [grupo]: crea usuario y lo asigna a un grupo
psswd: cambiar la contraseña de un usuario
su [usuario]: para cambiar de usuario
Qué permisos se dan por defecto al crear un fichero un fichero? y un directorio?
La variable de entorno por defecto suele estar a 022, esto se resta a 666 o 777
- fichero = permiso base(666) and not umask → 644
- directorio = permiso base(777) and not umask → 755
Qué hacen las siguientes opciones de touch?
touch -a
touch -m
touch -c
touch -a → sólo modifica la fecha de acceso
touch -m → sólo modifica la fecha de modificación
touch -c → no crea el fichero si este no existe
Para qué sirve el comando dd?
Para hacer copias entre dispositivos, a bajo nivel
dd if = /dev/zero of = empty.img bs=1024 count=720
En los permisos de un fichero, qué tres tríos de permisos se expresan¿?
3 usuario
3 grupo
3 otros
Qué hacen los siguientes comandos de cambio de permisos?
- chmod g=r filename
- chmod a-x filename
- chmod -R o-w dirname
- chmod og-rwx filename
- chmod og= filename
- chmod u=rwx,g=r,o= filename
- chmod g+u filename
- chmod o+t dirname
- chmod u+s filename
- chmod g-s filename
- chmod g=r filename (establece permisos de lectura a un grupo sobre un fichero)
- chmod a-x filename (quita permiso ejecución a todos sobre un fichero)
- chmod -R o-w dirname (quita RECURSIVAMENTE permisos de escritura al resto de usuarios sobre un directorio)
- chmod og-rwx filename (quita rwx a otros y a grupos, es decir a todos salvo el file owner))
- chmod og= filename (vacía de permisos, es decir, quita todos los permisos, a todos salvo el file owner)
- chmod u=rwx,g=r,o= filename (permisos para el owner, lectura para grupo del miembro, nada para el resto)
- chmod g+u filename (añade los permisos del owner al grupo del miembro, acumulando los que ya tuviese)
- chmod o+t dirname (añade sticky bit al directorio)
- chmod u+s filename (quita setGID)
En el modo numérico de permisos, qué se controla en el primer número, en el segundo y en el tercero?
Qué valores puede tener cada número?
permiso lectura / escritura /ejecución
Pueden tener 4, 2 y 1 respectivamente a parte del 0
Todo suma un número, pero la expresión numérica para los permisos tiene 3 números, cada uno es para gestionar los permisos de distintos usuarios → permisos al propietarios // permisos al grupo // permiso al resto
Qué son las ACL a nivel de permisos en linux?
Son reglas de permisos, donde se pueden definir permisos para usuarios concretos
Cuando con ACL se definen los permisos de un fichero o directorio, cómo se puede apreciar?
Al visualizar los permisos del fichero o directorio, termina con un símbolo +
Con qué comandos se establecen y consultan ACLs?
getfacl filename
setfacl -m u:dani:rw
-x → borrar acl
En el modo simbólico para modificar permisos de un directorio, qué dos formas hay para cambiar en un solo comando el permiso al propietario, grupo y al resto?
chmod ugo+r
chmod a+r
Qué hacen los siguientes modificadores del comando find?
- type
- name cadena
- perm
- user
- atime
- size
- exec
Busca por:
- type d: tipo de fichero, en este caso directorios
- name cadena
- perm 0777: con ciertos permisos
- user uid → donde el owner sea uno concreto
- atime +- nº: tiempo de acceso
- size +50mb: tamaño
- exec comando: no es para buscar sino para ejecutar para los encontrados
Qué tipos de enlaces existen?
simbólicos (ln -s) → Son enlaces que se pueden romper si borras donde apuntan. Se pueden recuperar si vuelve a existir donde apuntan
duros (ln): Son dos nombres que representan el mismo i-node y mismo fichero. Si se borra el origen no se rompe
Qué es un enlace, qué tipos hay y con qué comando se crean?
Son como accesos directos
comando ln (sin nada, hardlink, con -s softlink, con -d a directorio)
(hardlink -> asigna otro nombre de fichero al mismo fichero y mismo i-node)
(softlink acceso directo a un fichero)
(directorio: acceso directo a un directorio)
Qué es un i-node?
Por cada fichero se guarda una estructura de datos llamada i-node que guarda metadatos del fichero
Qué guardan los campos que guarda el i-node?
nº de inodo
size
owner UID
group UID
[amc] time
tipo fichero
permisos
nº hard links
punteros a los bloques de datos del fichero ya del disco duro (o punteros a su vez a otros índices con punteros de bloques de datos)
nº de inodo → id de nodo
size → tamaño del fichero
owner UID
group UID
[amc] time → fechas de acceso, modificación y cambio
tipo fichero
permisos
nº hard links
punteros a los bloques de datos del fichero
Qué diferencia hay entre la fecha de modificación y la de cambio de un fichero?
Modificación = modificación del contenido
Cambio = modificación de un campo de i-node (metadato)
Dónde se coloca el set UID en los permisos?
en el espacio del permiso de ejecución del usuario:
- rwSr–r–
- rwsr–r–
Cuándo la s del setUID se ve en mayúscula y cuándo en minúscula?
En mayúscula cuando no está tapando visualmente el permiso de ejecución del usuario
En minúscula cuando sí está tapando visualmente el permiso de ejecución del usuario
Para qué sirve el permiso setUID y setGID
Para impersonar: Para que al ejecutar ese programa por cualquier usuario, el programa se ejecute con los permisos del owner aunque no lo sea. El usuario, además, también debe tener permisos de ejecución sobre el programa.
Cuál es la diferencia entre setUID y setGID
Uno impersona al usuario owner para la ejecución de un fichero y el otro impersona al grupo owner de un fichero.
Cómo se asigna el setUID o setGID?
chmod u+s fichero
chmod g+s fichero
Qué significan los siguientes valores para el tipo de permiso?
-
d
l
p
s
b
c
- : ordinario
d: directorio
l: link simbólico
p: named pipe
s: socket
b: bloque dev
c: caracter dev