Raspberry Pi® a fondo para desarrolladores. Derek Molloy
Чтение книги онлайн.

Читать онлайн книгу Raspberry Pi® a fondo para desarrolladores - Derek Molloy страница 36

Название: Raspberry Pi® a fondo para desarrolladores

Автор: Derek Molloy

Издательство: Bookwire

Жанр: Математика

Серия:

isbn: 9788426727800

isbn:

СКАЧАТЬ una S mayúscula, en lugar de una s minúscula.chmod 6750 myexechmod u=rwxs,g=rxs,o= myexeEstablece el valor del bit setuid de forma absoluta. Ambos otorgarán a myexe los permisos rwsr-s---, con ambos bits, setuid y setgid, configurados (observe el espacio antes de myexe).Por razones de seguridad no se puede aplicar el bit setuid a un script del intérprete de comandos.stat /tmp/test.txtOfrece información útil sobre el estado del sistema de archivos para un archivo o directorio, por ejemplo el dispositivo físico en que se encuentra, información de su inodo, el último acceso o las últimas modificaciones o cambios.

      Veamos un ejemplo de la última entrada de la tabla 3-3, el comando stat:

      molloyd@erpi:/tmp$ stat test.txt

      File: 'test.txt'

      Size: 0 Blocks: 0 IO Block: 4096 regular empty file

      Device: b302h/45826d Inode: 6723 Links: 1

      Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)

      Access: 2015-06-19 00:06:28.551326384 +0000

      Modify: 2015-06-19 00:06:28.551326384 +0000

      Change: 2015-06-19 0:07:13.151016841 +0000

       Birth: -

      Observe que cada archivo de Linux conserva las marcas de tiempo de acceso, modificación y cambio. Podemos cambiar las marcas temporales de acceso y modificación artificialmente usando touch -a text.txt y touch -m test.txt, respectivamente (el tiempo de cambio se ve afectado en ambos casos). El tiempo de cambio se ve afectado también por las operaciones del sistema como chmod; el tiempo de modificación se ve afectado por una operación de escritura en el archivo, y el tiempo de acceso, en teoría, se ve afectado por una operación de lectura. Sin embargo, este comportamiento operacional significa que la lectura de un archivo ocasiona una escritura. Esta característica de Linux ocasiona un desgaste significativo en la tarjeta SD del RPi y un rendimiento deficiente en las operaciones de E/S. Por tanto, la funcionalidad de marca de tiempo de acceso a los archivos suele estar deshabilitada por defecto en la SD de arranque del RPi, mediante la opción de montaje (mount option) noatime en el archivo de configuración /etc/fstab que veremos en la sección siguiente. Observe que hay una opción similar, nodiratime, específica para directorios. No obstante, la opción noatime impide la actualización de la marca de tiempo para los accesos tanto a archivos como a directorios.

      Para finalizar el análisis de la figura 3-3, decir que el ejemplo de la figura tiene 22 enlaces duros al archivo. Para un directorio, esto representa el número de subdirectorios, su directorio padre (..) y a sí mismo (.). El propietario de la entrada es el root y está en el grupo del root. La entrada siguiente, 4096, es el tamaño exigido para guardar los metadatos sobre los archivos contenidos en ese directorio (el tamaño mínimo es un sector, generalmente 4.096 bytes).

      Para finalizar: si pedimos un listado de directorios ls -ld en el directorio root, veremos un bit t en los permisos del directorio /tmp. Dicho bit se conoce como sticky bit (literalmente, bit pegajoso), e indica que solo el permiso de escritura no basta para borrar archivos. Así pues, en el directorio /tmp cualquier usuario puede crear archivos, pero nadie puede borrar los archivos de otro usuario.

      molloyd@erpi:/tmp$ cd /

      molloyd@erpi:/$ ls -dhl tmp

      drwxrwxrwt 7 root root 4.0K Jun 19 00:18 tmp

      El comando ls -dhl lista los nombres de directorio, el parámetro d, y no su contenido, en formato legible para las personas (al menos para algunas), el parámetro h (de human readable) y en su versión larga, parámetro d.

      Explorar el sistema de archivos de Linux resulta aterrador para los principiantes. Si vamos al nivel superior con el comando cd / en el RPi y escribimos ls, veremos un listado del nivel más alto de la estructura de directorios del siguiente modo:

      molloyd@erpi:/$ ls

      bin boot.bak etc lib media opt root sbin sys usr

      boot dev home lost+found mnt proc run srv tmp var

      ¿Qué significa todo esto? Cada uno de estos directorios tiene su papel y, si los entendemos bien, nos permitirán saber por dónde empezar a buscar archivos de configuración o los archivos binarios que necesitemos. En la tabla 3-4 tenemos una descripción breve de cada subdirectorio de nivel más alto de Linux.

      Tabla 3-4: Estructura de directorios de nivel superior en Linux.

DirectorioDescripción
binContiene los binarios ejecutables utilizados por todos los usuarios y está en la variable de entorno PATH de forma predeterminada. Otro directorio, /usr/bin, contiene ejecutables que no resultan básicos para el arranque o reparación del sistema.
bootContiene los archivos para arrancar el RPi.
boot.bakContiene una copia de /boot generada tras una actualización del sistema.
devContiene los nodos de dispositivo, enlazados a sus controladores.
etcArchivos de configuración para el sistema local.
home Contiene los directorios raíz (home) de las cuentas de usuario (/home/pi es el directorio raíz de la cuenta de usuario pi).
lib Contiene las librerías estándar del sistema.
lost+foundAquí figuran los archivos sin vínculos que aparezcan tras ejecutar fsck (file system check and repair, comprobación y reparación del sistema de archivos). El comando mklost+found vuelve a crear el directorio lost+found si se ha eliminado.
mediaUtilizado para montar dispositivos removibles, como tarjetas micro-SD.
mntSu uso típico es para montar sistemas de archivos temporales.
optUn buen lugar para instalar software opcional de terceros.
procUn archivo virtual que representa los procesos en ejecución en el RPi. Por ejemplo, si pasamos al directorio cd /proc y escribimos cat iomem, veremos algunos mapeos de asignaciones de memoria.
rootEl directorio raíz de la cuenta root (superusuario) en las distribuciones Raspbian y Debian Linux. En muchas otras distribuciones, es el directorio /home/root.
runProporciona información acerca de la ejecución del sistema desde la última vez que arrancó.
sbinContiene ejecutables para la gestión del root.
srvAlmacena datos relacionados con ftp, servidores web, rsync, etc.
sysContiene un sistema de archivos virtual que describe el sistema.
tmpContiene archivos temporales.
usrContiene programas para todos los usuarios, junto con muchos subdirectorios como: /usr/include (archivos de cabecera C/C++), /usr/lib (librerías C/C++), /usr/src (código fuente del núcleo de Linux), /usr/bin (ejecutables del usuario), /usr/local (similar a /usr, pero para usuarios locales) y /usr/share (archivos compartidos entre los usuarios).
varContiene archivos variables como los log del sistema.

      Además de los comandos para trabajar con archivos y directorios en los sistemas de archivos, existen comandos para trabajar con el propio sistema de archivos. Los primeros comandos que deberíamos examinar son: df (disk free) y mount. El comando df ofrece un resumen de los sistemas de archivos en el RPi. El parámetro -T lista los tipos de sistemas de archivos:

      pi@erpi / $ df -T

      Filesystem Type 1K-blocks Used Available Use% Mounted on

      /dev/root ext4 15186900 3353712 11165852 24% /

      devtmpfs devtmpfs 470400 0 470400 0% /dev

      tmpfs СКАЧАТЬ