martes, 15 de diciembre de 2020

Servicios de directorios y carpetas compartidas

Posted by q3it on martes, diciembre 15, 2020 in ,

 

Estructura de Directorios en Ubuntu
Para visualizar todas las carpetas del sistema que cuelgan de la raíz “ / ”, podemos hacerlo desde Archivos, es el Administrador de Archivos de Ubuntu, la aplicación se llama Nautilus, la ventana del gestor de archivos es nuestra Carpeta personal Archivos icono.


Una vez que hemos pulsado sobre el icono de Archivos, nos aparece la Carpeta personal, que está situada dentro de la carpeta home. En la parte izquierda de la ventana de la carpeta personal encontramos Equipo, si pulsamos en Equipo vemos que nos dirigimos al directorio raíz “ / ”.

El directorio raíz se simboliza por una barra inclinada “ / ”. De este directorio, es desde donde sale todo el resto de directorios.

/ (raíz)

/ (raíz). Es el único directorio en el nivel superior del árbol jerárquico de archivos, el nivel más alto dentro de la jerarquía de directorios. Cualquier dirección de archivo o carpeta en Ubuntu, empieza por el directorio raíz “ / ”, seguido de todos los directorios y subdirectorios que lo contienen. 

Del directorio raíz “ / ” cuelga el resto de carpetas, particiones y otros dispositivos, cuando instalamos el sistema, seleccionamos la partición raíz y como punto de montaje seleccionamos /. 

/bin (binarios)


El directorio /bin es donde se almacenan todos los binarios necesarios para garantizar las funciones básicas a nivel de usuario. Aplicaciones binarias de comando, esenciales y disponibles para que cualquier usuario pueda ejecutarlos, así como los ejecutables de los programas propios del sistema operativo. Los binarios son los ejecutables de Linux, los preinstala el sistema. No deben de haber subdirectorios en /bin.

En el directorio /bin está situado el código binario o compilado de los programas y comandos que pueden utilizar todos los usuarios del sistema. 

En el directorio /bin se incluye también los binarios que permiten la ejecución de varias utilidades estándar de la terminal de Linux, algunos de comandos contenidos en /bin: 
cat, chown, cp, dd, echo, gzip, kill, ls, mkdir, mount, mv, ping, ps, rm, su, tar, umount, uname. 

Comandos contenidos en /bin.


Los binarios necesarios para tareas administrativas ejecutadas por root o superusuario se encuentran en otro directorio, en el directorio /sbin.

/boot (arranque)


En el directorio /boot nos encontramos los archivos necesarios para el inicio del sistema, desde los archivos de configuración del Grub, hasta el propio kernel del sistema. 

En el directorio /boot se encuentran los archivos utilizados por el gestor de arranque Grub, y son utilizados antes de que el kernel empiece a dar las órdenes de ejecución de los diferentes módulos del sistema. 

El directorio /boot puede estar en una partición o disco aparte del directorio /raíz, en ese caso es importante tener previsto el espacio que le vayamos a dar a la partición, porque debido a las futuras actualizaciones del Kernel nos podemos quedar sin espacio, en esa situación, tendremos que hacer limpieza de las versiones antiguas. 

Archivos contenidos en /boot.


/dev (dispositivos)


En el directorio /dev encontramos los archivos de información de todos los volúmenes y dispositivos físicos del sistema (hardware), como por ejemplo: Discos Duros, memorias, cdrom, dvd... 

En el directorio /dev se encuentran los archivos especiales del sistema, conocidos como controladores de dispositivo, se usan para acceder a los dispositivos de almacenamiento como por ejemplo: Discos duros externos, memoria USB, tarjetas sd... 

También encontramos en el directorio /dev las particiones de disco que hemos realizado durante la instalación del sistema operativo, por ejemplo: sda1, sda2, sda5, como podemos ver si escribimos los siguientes comandos en Terminal, para ver discos y particiones: 

sudo fdisk -l


Archivos contenidos en /dev.


Todo está considerado en Ubuntu como un archivo, tanto el Software como el Hardware. Un archivo de texto, de vídeo, de música, un controlador de dispositivo, el ratón, el teclado, el monitor, la impresora, el reproductor de CD o DVD, los Discos Duros, las particiones, los periféricos que podamos conectar en el equipo…

/etc (etcétera)


En el directorio /etc es donde encontramos los ficheros de configuración y arranque del sistema, así como ciertos scripts que se ejecutan en el inicio del sistema. 

En el directorio /etc es donde se encuentra la configuración global de las aplicaciones o programas instalados, este directorio debe de contener únicamente archivos de configuración, y no debería contener ningún archivo binario. 

En el directorio /etc aparecen otros subdirectorios: 
  • /etc/opt/ Subdirectorio de configuración para los programas alojados dentro del directorio /opt.
  • /etc/X11/ Subdirectorio de configuración para el X Window System. 
  • /etc/sgml/ Subdirectorio de configuración para SGML.
  • /etc/xml/ Subdirectorio de configuración para XML.

/home (casa)


El directorio /home contiene los directorios de trabajo de todos los usuarios, es la carpeta donde se guardan los archivos personales de todos los usuarios excepto el de root o superusuario, /home contiene los directorios personales (casas) de cada uno de los usuarios.

Cada usuario tiene su propio directorio dentro de /home, ese directorio es la Carpeta personal de usuario.

En la Carpeta personal de usuario tenemos otras carpetas, así como otros archivos y carpetas ocultas, que guardan la información de configuraciones de las aplicaciones del usuario: Descargas, Documentos, Escritorio, Imágenes, Música, Plantillas, Público, Vídeos, Ejemplos.

Para ver las carpetas y archivos ocultos dentro del directorio individual de cada usuario, podemos hacerlo pulsando las teclas Ctrl + h del teclado.

Los archivos y carpetas ocultas empiezan por un punto “.”, seguido del nombre de la carpeta.


El directorio /home puede ser muy grande, ya que es usado para almacenar descargas, documentos, fotos y una buena colección de archivos de imagen o sonido.

A menudo /home es instalado en un disco o partición separada, partición que hemos realizado durante la instalación del sistema operativo, normalmente es la partición mas grande debido al gran tamaño que puede llegar a ocupar.

/home es instalado en un disco o partición separada para que en el caso de que reinstalemos o instalemos una nueva versión del sistema, tengamos a buen recaudo nuestros documentos y demás archivos personales.

El administrador del sistema tiene su propio directorio home, que es /root.

/lib (bibliotecas)


El directorio /lib contiene los módulos del kernel y todas las bibliotecas (mal conocidas como librerías) esenciales compartidas, necesarios para arrancar el sistema y ejecutar los comandos en el sistema de archivos raíz.

En el directorio /lib están contenidas las bibliotecas que son necesarias para que se puedan ejecutar todos los binarios que se encuentran en los directorios /bin y /sbin.

Puede haber una o más variantes del directorio /lib, en sistemas que admiten más de un formato binario y que requiere bibliotecas separadas. En los sistemas operativos de 64 bits, además de /lib existe otro directorio denominado /lib64, contiene bibliotecas para aplicaciones de 64 bits. 

Los módulos del kernel (controladores) están en el subdirectorio /lib/modules/”versión-Kernel”, donde ”versión-Kernel” puede ser por ejemplo 4.8.0.36-generic o 4.8.0.36-generic.

/media (media, medios de comunicación)


El directorio /media es donde se montan las unidades extraíbles de almacenamiento como los dispositivos USB, disqueteras, unidades de CD/DVD.

El directorio /media es el punto de montaje de todos los volúmenes lógicos que se montan temporalmente, ya sean unidades externas USB, Discos externos e incluso sirve para montar otras particiones del mismo Disco Duro, como por ejemplo, alguna partición que sea utilizada por otro sistema operativo.

Este directorio contiene subdirectorios que se utilizan como puntos de montaje para Medios removibles como disquetes, CD o DVD, USB.

En el directorio /media, cada vez que se monta una unidad externa, partición, CD o DVD esta se monta dentro del directorio /media y a su vez dentro de un directorio del usuario, si en un sistema hay varios usuarios, supongamos usuario1 y usuario2, los puntos de montaje de los volúmenes que montan cada uno de ellos se mostraran en directorios separados tal como así:
  • /media/usuario1 
  • /media/usuario2 
Nota: usuario es el nombre del usuario del equipo en ese momento, “usuario” puede ser Juan, Pepe, María, Jacín, Juana... 

/mnt (montajes)


El directorio /mnt se suele usar para montajes temporales de unidades, sirve para montar discos duros y particiones de forma temporal en el sistema.

El directorio /mnt es un directorio vacío que se utiliza como punto de montaje genérico, en el que se montan los sistemas de archivos o dispositivos, el montaje es el proceso por el cual hacemos que un sistema de archivos sea disponible para el sistema, después de montar estos archivos serán accesibles bajo el punto de montaje.

/opt (opcionales)


El directorio /opt está reservado para todos los paquetes de software y complementos que no forman parte de la instalación predeterminada, está destinado para guardar paquetes adicionales de aplicaciones, todas las aplicaciones de terceros deben estar instaladas en este directorio.

Las aplicaciones crean un subdirectorio dentro de /opt que son designadas con el mismo nombre del programa. El directorio /opt contiene paquetes de programas opcionales de aplicaciones, que pueden ser compartidas entre los usuarios, estas aplicaciones no guardan sus configuraciones en este directorio, así, cada usuario puede tener una configuración diferente de una misma aplicación, se comparte la aplicación pero no las configuraciones de los usuarios, las cuales se guardan en su respectivo directorio en /home de cada usuario.

/proc (procesos)


El directorio /proc contiene información de los procesos y aplicaciones que se están ejecutando en un momento determinado en el sistema, es un sistema de archivos virtual, no contiene archivos reales, solo información del sistema en tiempo de ejecución.

Lo más llamativo de los archivos del directorio /proc es que todos ellos tienen un tamaño de archivo de 0, no son ni binarios ni textos, sin embargo podemos desplegar su contenido y examinarlos. El directorio /proc contiene todos los detalles del sistema Linux, incluyendo el kernel, procesos y parámetros de configuración.

/root (raíz)


El directorio /root es el directorio de uso exclusivo del administrador, directorio raíz del usuario root, es el directorio /home (casa) del administrador del sistema, digamos que el superusuario tiene su propio directorio personal, el directorio /root.

Al directorio /root, el acceso es restringido para un usuario sin privilegios administrativos, ya que es un directorio exclusivo para la administración del sistema. Si intentamos entrar en el directorio /root como usuario sin los privilegios administrativos, nos sale un cartel diciendo que no tenemos los permisos suficientes para ver su contenido.

Root es el nombre de usuario o cuenta que por defecto tiene acceso a todos los comandos y archivos en un sistema operativo Linux, se le conoce como el usuario root o superusuario. El usuario root puede hacer muchas cosas que un usuario común no puede, tales como cambiar el dueño o permisos de archivos.

No se recomienda utilizar el superusuario para una sesión de uso habitual, ya que se pone en riesgo el sistema, al darle privilegios administrativos a cada aplicación que esté en ejecución. Es preferible usar una cuenta de usuario normal y utilizar los comandos sudo su para acceder a los privilegios de root en caso de ser necesario 

/sbin (binarios de sistema)


El directorio /sbin es donde se almacenan todos los binarios necesarios para las tareas administrativas ejecutadas por root o superusuario. El directorio /sbin debe contener sólo binarios esenciales para arrancar, restaurar, recuperar o reparar el sistema además de los binarios incluidos en /bin.

Los ejecutables de administración, tales como mount, umount, shutdown… Solo pueden ser ejecutados por el usuario root y vienen preinstalados en el sistema. Un usuario con los privilegios administrativos puede ejecutar alguna de estas aplicaciones de comandos, estando en modo superusuario.

/srv (servicios)


El directorio /srv contiene información del sistema sobre ciertos servicios que ofrece (FTP, HTTP…), archivos relativos a servidores web,ftp. En este directorio residen las carpetas accesibles por el programa cliente de un determinado servicio ofrecido por algunos servidores configurados en el sistema.

El directorio /srv sirve para almacenar archivos y directorios relativos a servidores que podamos tener instalados dentro del sistema, en este directorio se alojan los subdirectorios que usan los distintos servidores que tengamos instalados, como el servidor web en /srv/www o el servidor FTP en /srv/ftp. 

Ningún programa debe basarse en un subdirectorio de /srv existente o en los datos que necesariamente se almacenen en el, sin embargo, el directorio /srv siempre debe existir en sistemas Linux y debe ser utilizado como un lugar predeterminado para dichos datos. 

Si no tenemos ningún servidor instalado tendremos el directorio /srv vacío 

/sys (sistema)


El directorio /sys contiene información de los dispositivos conectados al sistema, información sobre los dispositivos tal y como los ve el kernel. El directorio /sys al igual que el directorio /proc contiene archivos virtuales que proveen información del kernel relativa a eventos del sistema operativo, son archivos virtuales con información del sistema. 

En el directorio /sys se monta el sistema de ficheros virtual /sys/fs, este es un sistema de ficheros virtual basado inicialmente en ramfs (fichero de almacenamiento en la memoria RAM) y que está implementado en el kernel. 

El directorio /sys permite obtener información sobre el sistema y sus componentes (en su mayoría conectado e instalado, hardware) de una manera estructurada, con soporte para los dispositivos de conexión en caliente. 

/tmp (temporales)


El directorio /tmp es un directorio donde se almacenan archivos temporales, cada vez que se inicia el sistema este directorio se limpia. Muchos programas utilizan el directorio /tmp para crear archivos y para el almacenamiento temporal de datos, estos archivos son importantes para los programas que se están ejecutando actualmente y su eliminación puede provocar un bloqueo del sistema.

No debemos de borrar el contenido del directorio /tmp de forma manual, puesto que puede contener archivos necesarios para ciertos programas o procesos que estén ejecutándose, tampoco asumiremos que los archivos se conserven entre invocaciones de programas.

/usr (Recursos del sistema del usuario)


El directorio /usr es uno de los directorios más importantes del sistema, ya que contiene todos los binarios, programas y librerías de uso común para todos los usuarios, su documentación, bibliotecas, archivos de cabecera, juegos, casi la totalidad de los comandos de usuario. 

El directorio /usr contiene los archivos compartidos, pero son de sólo lectura, este directorio puede compartirse con otros equipos que estén en la misma red local. En el directorio /usr se encuentran programas y datos utilizables por el usuario, por ello, algunas personas pueden referirse a este directorio como recursos del sistema del usuario.

Como hemos dicho anteriormente el directorio /usr es uno de los directorios más importantes del sistema, es el directorio padre de otros subdirectorios de importancia, que son los siguientes: 
  • /usr/bin: Contiene la gran mayoría de los binarios del sistema, comandos binarios no-administrativos para todos los usuarios, son de solo lectura, pero pueden tener su propia configuración para cada usuario en /home. Los ejecutables en este directorio varían ampliamente, ejecutables de la mayoría de aplicaciones de escritorio.
  • /usr/include: Contiene “archivos de cabecera” (ficheros cabeceras para C y C++) necesarios para compilar el código fuente del espacio de usuario, estos archivos son necesarios cuando se compila programas, bien sea, para un paquete de software que necesita compilar manualmente o sus propios programas.
  • /usr/lib: Contiene bibliotecas de programas. Las bibliotecas son colecciones de rutinas de programas de uso frecuente, algunos ejecutables comparten las mismas bibliotecas que comparten las demás aplicaciones.
  • /usr/local: Debe ser utilizado por el administrador del sistema al instalar el software localmente, así mismo, debe estar a salvo de ser sobrescrita cuando se actualiza el software del sistema, puede utilizarse para programas y datos que pueden compartirse entre un grupo de equipos que estén en la misma red local. 
El software instalado localmente debe colocarse dentro de /usr/local, este subdirectorio tiene una estructura similar a la del directorio /usr, gran parte del software local se instala en subdirectorios de /usr/local. 

  • /usr/sbin: Contiene comandos administrativos para el sistema, destinados a ser ejecutados por el usuario root o superusuario, al igual que en /sbin, no forma parte del entorno de un usuario, algunos ejemplos de binarios incluidos: adduser, chroot, useradd, pppconfig... Comandos y utilidades para la administración que no son vitales del sistema, que se utilizan después de arrancar (iniciar el sistema) por parte del administrador.
  • /usr/share: Contiene archivos compartidos que no dependen de la arquitectura del sistema, como ficheros de configuración, imágenes, sonidos, iconos, fuentes, temas, etc., disponibles para el sistema y sus aplicaciones, también contiene páginas de manual, documentos de información GNU, y archivos de documentación de los programas instalados. 
  • /usr/src (source o, fuente en castellano)): Tiene en su interior el código fuente para el kernel Linux, cualquier código fuente no-local debe localizarse en este directorio. El único código fuente que siempre debe localizarse en un lugar específico es el código del kernel.
El subdirectorio /usr/src/linux (Ejemplo: linux-headers-4.8.0-36) contiene las fuentes, archivos de encabezado y documentación del kernel de Linux.

/var (variable)


El directorio /var contiene archivos con información variable, esto incluye archivos y directorios en fila de ejecución, información de bitácora administrativa y archivos temporales transitorios. 

El directorio /var contiene varios archivos con información del sistema, como archivos de logs, e-mails temporales de los usuarios del sistema, bases de datos, información almacenada en la caché, ficheros almacenados en fila a la espera de ejecutarse, como por ejemplo colas de impresión. 

El directorio /var se puede decir que actúa como un registro del sistema, ayuda a encontrar los orígenes de un problema, todos los log del sistema y los generados por los servicios instalados, se ubican dentro de la estructura jerárquica de /var, esto quiere decir que el tamaño global de este directorio va ha crecer constantemente. 

El directorio /var es el directorio padre de otros subdirectorios de importancia, que son los siguientes: 
  • /var/backups: Directorio que contiene copias de seguridad de varios archivos de sistema clave como /etc/shadow, /etc/group, /etc/inetd.conf y dpkg.status. 
  • /var/cache: Está destinado a los datos almacenados en caché de las aplicaciones, estos datos se generan localmente, permanecen válidos entre las invocaciones de la aplicación y el reinicio del sistema. La existencia de un directorio independiente para los datos almacenados en caché permite a los administradores del sistema establecer diferentes políticas de disco y de copia de seguridad de otros directorios en /var.
  • /var/crash: Eventualmente mantendrá descargas de bloqueo del sistema. Actualmente, los volcados de bloqueo del sistema no son compatibles con Linux, sin embargo, el desarrollo ya está completo y está a la espera de la unificación en el kernel de Linux. 
  • /var/lib: Contiene información de estado perteneciente a una aplicación o al sistema, la información de estado es información que los programas modifican mientras se ejecutan, estado actual de las aplicaciones, modificable por las propias aplicaciones. 
  • /var/local: Contiene datos variables para programas locales (es decir, programas que han sido instalados por el administrador del sistema) tenemos que tener en cuenta que incluso los programas instalados localmente deberían usar los otros directorios /var si son apropiados, por ejemplo, en /var/lock.
  • /var/lock: Contiene ficheros que se encargan de que un recurso sólo sea usado por una aplicación determinada que ha pedido su exclusividad, hasta que ésta lo libere, muchos programas crean un archivo de bloqueo en /var/lock para indicar que están utilizando un dispositivo o archivo en particular. 
  • /var/log: Es uno de los subdirectorios más importantes, ya que aquí se guarda un registro de los logins y logouts de usuarios normales y procesos del sistema. 
  • /var/mail: Contiene archivos de los correos de los usuarios, tenemos que tener en cuenta que /var/mail puede ser un enlace simbólico a otro directorio.
  • /Var/opt: Contiene archivos de datos variables de los paquetes de programa almacenados en /opt. 
  • /var/run: Contiene los archivos de identificación de proceso (PID) de los servicios del sistema y otra información sobre el sistema que es válida hasta que el sistema se reinicie, por ejemplo, /var/run/utmp contiene información sobre los usuarios que están actualmente conectados.
  • /var/spool: Contiene datos a la espera de ser procesados, por ejemplo, colas de impresión y correo no leído. 
  • /var/tmp: Contiene archivos temporales que son grandes o que necesitan existir durante un tiempo más largo de lo que se permite para /tmp.
Conectar Ubuntu a una red para compartir carpetas
El uso compartido de archivos es una de las acciones más interesantes que podemos realizar en nuestro equipo, de esta forma podremos copiar y pegar archivos desde distintos equipos, ya sea mediante una conexión LAN a través de switch, router o mediante Wi-Fi.

Conectar dos equipos es muy sencillo, Mediante la aplicación Samba, seremos capaces de conectar distintos sistemas de forma gráfica y solamente dando unos cuantos pasos. 

Instalar Samba en Ubuntu 18.04
Aunque estemos utilizando esta versión de Ubuntu, el procedimiento será aplicable a prácticamente cualquier versión del sistema que tengamos entre nuestras manos.

Procederemos a abrir un terminal de comandos, ahora colocaremos el siguiente comando para instalar el paquete desde los repositorios:

sudo apt-get install samba

Ahora también sería buena práctica la de verificar que ambos equipos se ven a través de la red. Para ello, tendremos al menos que conocer la dirección IP de uno de ellos.

Escribimos el típico comando:

ping xx.xx.xx.xx

Una vez hecho esto, ya estaremos en disposición de proceder a compartir una carpeta desde Ubuntu.

Compartir carpeta en Ubuntu y acceder a ella
El procedimiento es bastante simple, vamos a crear una carpeta en Documentos para que sea ésta la que compartamos.

Seguidamente pulsamos con botón derecho sobre ella, y elegimos la opción “recurso compartido en red local”. Nos aparecerá una ventana en la que podremos configurar las distintas opciones para establecer el uso compartido.

Para este caso, activaremos la opción de “Compartir esta carpeta” y seguidamente también activaremos las dos opciones situadas en la zona inferior para asignar permisos de lectura y escritura para cualquier usuario.


Confirmaremos que deseamos establecer esta configuración en la ventana emergente que nos aparece tras confirmar que deseamos hacerlo. De esta forma ya tendremos la carpeta lista para colocar archivos y verlos desde otros clientes.


Acceder a carpeta compartida en Ubuntu desde Windows
Inmediatamente nos vamos a nuestro equipo Windows y abrimos una ventana del explorador de archivos. Colocaremos en la barra de navegación la dirección IP de Ubuntu precedida dos barras invertidas:

\\<ip de Ubuntu>

Veremos que inmediatamente aparecerá la carpeta que compartimos anteriormente. Además, tendremos total acceso a ella en cuanto a lectura y escritura, tal y como elegimos en la ventana de configuración de uso compartido de Ubuntu.

Acceder a carpeta compartida desde Ubuntu
Pues bien, vamos a ver cómo acceder desde Ubuntu a esta carpeta. Si probáramos a hacerlo de igual forma que en Windows, veríamos que no obtenemos lo que deseamos, ya que hay un pequeño truco.

Vamos a abrir el explorador de archivos de Ubuntu y vamos a acceder al directorio de “Otras ubicaciones”. Nos situamos en el cuadro de introducción de texto que hay en la zona Inferior con título “Conectar al servidor”.

Aquí colocaremos la ruta de acceso de la siguiente forma:

smb://<ip del equipo Ubuntu o Windows>