Comandos BASH

Vamos a ver varios comandos BASH de linux sobre Ubuntu haciendo ejercicios.

Supondremos para que mi usuario es 'profe' y mi máquina 'ubun'. Cada uno tendrá un usuario distinto, claro.

(A) Crear un fichero:

  1. en un directorio que está en /midirectorio/misficheros/

  2. que se llame saludo.txt y ponga "que listo soy que lo he conseguido".

  3. tomar el fichero en propiedad de tu usuario

  4. hacer que todos tengan permiso de lectura, escritura y ejecución tanto en el directorio como en el fichero.

Solución

Podemos hacer muchas cosas del tirón, pero lo haremos por pasos. También hay diversas formas válidas de hacerlo:

  1. Vamos a la raíz:

  2. Creamos el primer directorio:

  3. Nos metemos dentro del directorio creado

  4. Creamos el segundo directorio desde ahí

  5. Tomo propiedad del directorio, ahora es propiedad de root

  6. Ya que estamos, le damos permisos de lectura, escritura y ejecución para todos (ya es mi directorio!, ya no necesito sudo)

  7. Nos metemos dentro del nuevo directorio

  8. Creamos el fichero solicitado

(B) Vamos a comprobar que ha funcionado

  1. Crear un usuario nuevo llamado observador

  2. Cambiar el entorno de ejecución a ese usuario

  3. Volver a tu directorio home (el que pone tu nombre) con ese usuario. Comprueba que no puedes crear nada siendo el usuario observador

  4. Desde allí, mirar que se puede leer lo escrito en el ejercicio (A) e incluso se puede escribir

  5. Vuelve de nuevo a tu usuario

  6. Verifícalo (mira las diferencias de dos comandos disponibles, whoami y id)

  7. Crea un grupo llamado editores y mete a tu usuario y al otro (observador)

  8. Verifica que está dentro

Solución

  1. Se puede hacer de dos formas en ubuntu, con useradd (la original) y con adduser, que es más interactiva e irá preguntando por los parámetros del nuevo usuario, le crea hasta el directorio home; lo que es claro es que es una tarea del administrador, así que hay que poner delante sudo

  2. Para pasar a trabajar con el nuevo usuario creado, se puede cerrar sesión y abrirla con el mismo o, directamente, crear una nueva shell con sus credenciales

  3. Si estabas en la home de tu usuario (en mi caso /home/profe), ahí seguirás. Si no, tendré que teclear cd /home/profe para ir

  4. Si intento crear un directorio (mkdir otrodir), no me deja al no tener permisos. Incluso haciendo trampa, y escribiendo sudo mkdir otrodir, tampoco podría ya que no le hemos hecho a este nuevo usuario administrador (o sea, del grupo sudo). Pero vamos, así lo crearía el usuario root, nunca él por no tener permisos de creación en ese directorio ajeno.

  5. Vemos posibles accesos.

  6. Para volver a mi usuario profe, tan solo tecleo exit y ya salgo de la shell del usuario observador para volver a la mía. Tecleando whoami se ve. Tecleando id da mayor información; hasta los grupos a los que pertenezco.

  7. Para crear un grupo se puede hacer de muchas maneras. Incluso pasa similar a la creación de un usuario; se puede hacer con groupadd (original) o con addgroup (más completo). Incluso se podría hacer escribiendo en /etc/groups el grupo. Yo lo haré así: addgroup editores. Para meterlos en el nuevo grupo, por ejemplo se puede hacer con sudo adduser observador editores, pero hay muchas más formas. Lo haríamos también con nuestro usuario, en mi caso, profe.

  8. Si tecleamos en la consola groups observador, veremos los grupos a los que pertenece. También podríamos hacerlo con id observadores, que saldría más info.

(C) Más cosas

  1. ¿Cómo verificarías que existe un usuario llamado observador registrado en tu máquina? Con una sola línea se puede.

  2. Actualiza tu sistema. Bájate un programa llamado tree, que vale para ver la estructura de directorios y ficheros de una forma más 'gráfica'

  3. Copia el fichero que hiciste en el ejercicio (A) en tu carpeta personal.

  4. Crea otro fichero al lado que sea el contenido de éste pero escrito al revés (llámalo inverso.txt)

  5. Y otro más llamado retocado.txt que cambie la palabra 'soy' por 'SOY'

  6. Mete en un fichero en tu home llamado procesos.txt todos los procesos que están siendo ejecutados por root

  7. ¿Cómo podrías ver los dispositivos de almacenamiento que tiene tu máquina?

Solución

  1. Yo lo haría mirando si está en el fichero donde se guardan todos los usuarios, que es /etc/passwd. Eso sí, para evitar buscarlo, 'canalizaría' la salida hacia el comando grep, con lo que me quedaría así: cat /etc/passwd | grep observador . Si me devuelve una línea, es que está.

  2. Siempre, antes de bajar cualquier cosa es una buena práctica actualizar los repositorios. Así que haría estos dos pasos (que se pueden poner en una sola línea separados por &&):

  3. Usamos la 'virgulilla' (~) para indicar que es a nuestro directorio de trabajo (lo que a veces definimos como nuestra home), pero podríamos especificar del todo el directorio (en mi caso, /home/profe/)

  4. Usamos el comando rev y dirigimos su salida al nuevo fichero. Suponiendo que estoy en mi home,

  5. Aquí vamos a usar el comando sed, que cambia la palabra en el stream. Luego lo redirigimos en vez de a la pantalla, al fichero solicitado

  6. Usamos el comando que muestra todos los procesos y redirigimos a fichero. Si por ejemplo queremos todos los procesos del sistema y en formato más largo,

  7. En linux todo son ficheros. Los dispositivos se guardan en /dev. De ellos, los que comienzan por sd son dispositivos de almacenamiento. Hay formas más completas

(D) Cosas potentes

  1. Mira la IP que tienes. Y la puerta de enlace?

  2. Cambia tu DNS a la de los amigos de CloudFlare (1.1.1.1)

  3. Monta en /mnt la carpeta compartida por toda la clase en SUPERSERVER (\\192.168.1.22\Public)

Solución

  1. Bueno, éste no es tan potente...

  2. Este es chunguillo, no por el proyecto en sí, sino por lo heterogéneo que puede resultar

Última actualización