El script que no arranca
Escribes un pequeño script, tecleas su nombre y la máquina responde: permiso denegado. Lo has escrito tú y es tuyo. Aun así la máquina se niega, porque en Linux cada archivo dice quién puede leerlo, quién puede cambiarlo y quién puede ejecutarlo.
Al terminar esta lección
Nota
Puedo cambiar quién puede ejecutar un archivo y borrar archivos con cuidado.
Palabras clave
- Permiso: quién puede leer, cambiar o ejecutar un archivo.
- Propietario: el usuario al que pertenece un archivo.
- Grupo: una lista con nombre de usuarios que comparten algunos archivos.
- Script: un archivo de comandos que la máquina ejecuta por ti.
Para empezar: lo que ya sabes
Nota
Responde mentalmente. 1. ¿Qué comando muestra la carpeta en la que estás? 2. ¿Qué signo mete palabras en un archivo y sustituye lo que había? 3. ¿Qué diferencia hay entre un archivo y una carpeta?
Antes de empezar
Nota
Pulsa Iniciar el laboratorio en la barra superior de esta lección. Este laboratorio es una máquina Ubuntu entera para ti, así que tarda un poco más en arrancar que un contenedor. Cada botón Ejecutar escribe su comando en el terminal de la máquina, uno detrás de otro, en la misma sesión. Si alguno dice que la máquina aún está arrancando, espera unos segundos y púlsalo otra vez. Donde la lección dice Escribe esto, el comando no termina solo o te pregunta algo: pulsa Abrir el terminal en la barra y escríbelo tú.
Un archivo nuevo todavía no puede ejecutarse
La primera columna de ls -l son los permisos. Tras el primer carácter vienen tres grupos de rwx: lo que el propietario, el grupo y todos los demás pueden leer (r), escribir (w) y ejecutar (x). Un archivo nuevo no tiene x, así que el primer ./hello.sh se rechaza. chmod +x añade el permiso de ejecutarlo, y el segundo intento muestra it works.
cdSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
echo 'echo it works' > hello.shSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
ls -l hello.shSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
./hello.shSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
chmod +x hello.shSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
ls -l hello.shSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
./hello.shSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Comprueba
Consejo
En -rw-r--r--, ¿quién puede escribir en el archivo? Respuesta: solo el propietario. El grupo y todos los demás solo pueden leerlo.
Quitar lo que no necesitas
rm borra un archivo. rm -rf borra una carpeta con todo lo que hay dentro, y no pregunta. La carpeta scratch se hizo para que borres cosas de ella, y el último comando no muestra nada porque ahora está vacía.
rm scratch/old.logSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
rm -rf scratch/cacheSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
ls scratchSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Un error frecuente
Advertencia
Mucha gente cree que un archivo borrado va a una papelera y se puede recuperar, como en un móvil o en un escritorio. En un servidor rm es definitivo: el archivo desaparece. Antes de rm -rf, ejecuta pwd y ls y lee la ruta dos veces. Un rm -rf con la ruta equivocada, o con un espacio en el sitio equivocado, ha borrado servidores enteros.
¿Quién soy y quién más está aquí?
whoami muestra tu nombre de usuario. id dev muestra otra cuenta de esta máquina, que usarán lecciones posteriores. Cada cuenta tiene sus propios archivos, y los permisos deciden qué puede tocar cada una.
whoamiSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
id devSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Comprobación final
Consejo
Responde sin mirar atrás. 1. ¿Qué comando permite ejecutar un archivo? 2. ¿Qué significa rwx? 3. ¿Por qué comprobar con pwd antes de rm -rf? Respuestas: chmod +x; leer, escribir y ejecutar; no hay papelera, así que una ruta equivocada no se puede deshacer.
Para el profesorado
Consejo
Esta lección se practica en un laboratorio de máquina virtual: cada alumno tiene su propia máquina Ubuntu, y Ejecutar escribe en su terminal y muestra lo que salió. Ideas clave: 1. Los permisos dicen quién puede leer, escribir y ejecutar un archivo, y chmod +x permite ejecutarlo. 2. rm es definitivo, así que se comprueba la ruta antes. Error frecuente: creer que rm tiene papelera. Material: el laboratorio y un navegador. Consejo: haga que el alumnado lea la ruta en voz alta antes de pulsar Intro en un rm -rf. El laboratorio no tiene comprobación y no califica nada; si quiere una entrega, ponga una usted.