b2t4 - Linux Flashcards
Qué es la licencia GPL (General Public License)
a) La licencia GPL permite vender copias del programa.
b) El desarrollador conserva los derechos de autor, pero permite su libre distribución, modificación y uso con la condición de que, en caso de que el solware se modifique, el nuevo solware desarrollado como resultado quede obligatoriamente con la misma licencia.
c) No existe limitación sobre el número de computadoras o de las caracterísfcas de éstas para poder ejecutar un programa con licencia GPL.
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
se usa así: dpkg -i, para instalar
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
Opciones de apt
Actualiza la lista de paquetes disponibles en los repositorios
Actualiza los paquetes instalados a las versiones más recientes disponibles. También puede actualizar el sistema operativo si hay nuevas versiones disponibles.
Instala uno o varios paquetes en el sistema.
Desinstala uno o varios paquetes del sistema.
Elimina automáticamente los paquetes que fueron instalados como dependencias y que ya no son necesarios por ningún otro paquete.
Busca paquetes disponibles en los repositorios basándose en una palabra clave.
Busca paquetes disponibles en los repositorios locales basándose en una palabra clave.
Muestra información detallada sobre un paquete instalado o disponible.
Lista todos los paquetes instalados en el sistema.
Realiza una actualización completa del sistema operativo, incluyendo la instalación y eliminación de paquetes si es necesario.
apt update: Actualiza la lista de paquetes disponibles en los repositorios. Se recomienda ejecutar este comando antes de instalar nuevos paquetes.
apt upgrade: Actualiza los paquetes instalados a las versiones más recientes disponibles. También puede actualizar el sistema operativo si hay nuevas versiones disponibles.
apt install: Instala uno o varios paquetes en el sistema. Por ejemplo, apt install nombre_paquete instalará el paquete especificado.
apt remove: Desinstala uno o varios paquetes del sistema. Por ejemplo, apt remove nombre_paquete desinstalará el paquete especificado.
apt autoremove: Elimina automáticamente los paquetes que fueron instalados como dependencias y que ya no son necesarios por ningún otro paquete.
apt search: Busca paquetes disponibles en los repositorios basándose en una palabra clave. Por ejemplo, apt search nombre_paquete buscará paquetes que coincidan con el término especificado.
apt-cache search: Busca paquetes disponibles en los repositorios locales basándose en una palabra clave, sin conectarse a los servidores
apt show: Muestra información detallada sobre un paquete instalado o disponible. Por ejemplo, apt show nombre_paquete mostrará información sobre el paquete especificado.
apt list: Lista todos los paquetes instalados en el sistema. También puedes usar opciones adicionales, como apt list –installed para listar solo los paquetes instalados.
apt full-upgrade: Esta opción realiza una actualización completa del sistema operativo, incluyendo la instalación y eliminación de paquetes si es necesario. A diferencia de apt upgrade, que solo actualiza los paquetes instalados, apt full-upgrade también puede instalar o eliminar dependencias adicionales si es necesario para resolver conflictos o actualizaciones más complejas.
Opciones del comando tar y para qué sirven
tar -cvf
c es crear un paquete, v de vervose y f se pone siempre para indicar que el parámetro es un fichero
tar -czvf
z, Z, j, J son las opciones para comprimir, en formato gzip
tar cvf
también se puede hacer sin guión
tar -x
es extraer
tar -t
t es listar
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
Cómo se calculan los permisos que aplicará Linux a los nuevos ficheros y directorios a partir del umask?
El cálculo del umask es inverso al de los permisos reales del archivo. Cada bit en el umask representa un permiso que debe desactivarse en los permisos predeterminados. Por ejemplo, si el umask se establece en 022, se desactivan los permisos de escritura y ejecución para el grupo y los otros usuarios.
Es decir, resta el umask a 777 (complemento) y te salen los permisos
Por ejemplo
El valor umask se invierte para obtener el complemento. En este caso, el complemento de 022 es 755.
Los permisos predeterminados del sistema se aplican a un nuevo archivo o directorio. Supongamos que los permisos predeterminados del sistema son 666.
Se aplica el complemento del umask a los permisos predeterminados del sistema. En este caso, el complemento de 022 (755) se aplica a los permisos predeterminados del sistema (666).
Para el propietario del archivo, se mantienen todos los permisos, ya que no se desactiva ningún bit en la posición del propietario. Por lo tanto, el propietario tendrá permisos de lectura, escritura y ejecución (rwx).
Para el grupo y los otros usuarios, se desactivan los permisos de escritura (2) y ejecución (1) porque se desactivan los bits correspondientes en el umask. Por lo tanto, tanto el grupo como los otros usuarios tendrán permisos de lectura solamente (r–).
En resumen, con un umask de 022, los nuevos archivos y directorios tendrán permisos de lectura y escritura para el propietario, y solo permisos de lectura para el grupo y los otros usuarios.
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.