Objetivo:

1.-Saber que permisos tiene y que deben tener los ficheros y directorios de los servidores con los que trabajamos.e

2.- Conseguir a traves de grupos usuarios y ACL's configurar los permisos de los usuarios queramos que puedan editar los ficheros y los directorios del servidor.

Debemos entender antes que:

Que nosotros definimos dos tipos de servidores:

  1. Servidore Produccion: Aquellos que está publicos en la red.
  2. Servidores Desarrollo: Aquellos que está en local.

En nuestros SERVIDORES PRODUCCIÓN los permisos habituales para ficheros y directorios son de 644 y 755 , es decir permiso de lectura y escritura para propietario , y permiso de lectura para el grupo y otros.

Para ficheros y directorios: 644 ( -rw-r--r-- ) y 755 ( drwxr-xr-x )

En nuestros SERVIDORES DESARROLLOS (SERVIDORES LOCALES) los permisos cambian , ya que trabajamos con ACLś , y los permisos ideales son :

Para ficheros y directorios: 664 ( -rw-rw--r-- ) y 775 ( drwxr-rwxr-x )

Nuestros servidores de producción no solemos revisar los permisos, ya que por defecto determinamos que solo se puedan subir ficheros con esos permisos al subirlos.

Los problemas nos surgen en el servidor de DESARROLO, el servidor local de nuestros programadores, los permisos suelen dar mucha más problemas por ello debemos conocer a fondo como ver, cambiar  los permisos de los ficheros y directorios.

Instrucciones para conocer los permisos desde terminal linux

Si realmente necesitas conocer la gestion de permisos de usuario y grupos usuarios de linux te recomiendo que veas esté link.

Alguna de estás instrucciones nos la facilito "Guillermo- Técnico de sistemas" que nos facilito en su momento nos son muy utiles para ver los permisos de los ficheros y directorios.

¡ Muchísimas Gracias ! -- Desde aquí... :-)

1.- MOSTRAR PERMISOS EN FORMATO NUMERO DE FICHEROS

Si quiere conocer los permiso en formato octal de un solo fichero:

stat -c%a nombrefichero

Pero si lo queremos es que muestre todos los ficheros pero en formato octal:

find /ruta -type f -exec stat -c "%a %n" {} ';'

Al poner -type f , nos muestra los ficheros solamente y no directorios. Muestra todos los ficheros incluidos en el interior de directorios hijos.

2.- MOSTRAR PERMISOS EN FORMATO NUMERO DE DIRECTORIOS

find /ruta -exec stat -c "%a %n" {} ';'

 Al poner  -type d , nos muestra los permisos en numero de los directorios que hay dentro de la ruta indicada.

3.-CAMBIAR PERMISOS DE FICHEROS Y DIRECTORIOS DENTRO DE UNA RUTA

find /ruta -type f -exec chmod 644 {} ';'

find /ruta -type d -exec chmod 755 {} ';'

Cambia los permisos de todos los ficheros y directorios poniendo los permisos 644 y 755 , recordar que para servidores locales ( nuestros) debemos poner 664 y 775 .

4.- COMPROBAR AQUELLOS FICHEROS Y DIRECTORIOS QUE NO TIENE ESOS PERMISOS.

Al trabajar con proyectos grandes, como puede ser una Web en Joomla, esto tiene muchísimos directorios y ficheros, por lo que controlar con las instrucciones anteriores si tiene los permisos correctos, es bastante complejo.

Por ello nosotros utilizamos las siguientes instrucciones en las que nos filtra los ficheros y directorios que NO tengan los permisos bien.

find /ruta -type d ! -perm 775 -exec stat -c "%a %n" {} ';'
find /ruta -type f ! -perm 664 -exec stat -c "%a %n" {} ';'

COSAS QUE QUEDAN POR RESOLVER

El objetivo de está entrada es tener todas la instrucciones necesarias para ver los permisos, de ficheros , que nosotros habitualmente necesitamos en nuestros servidores locales ( PRODUCCION ) por ello aquí anotamos los problemas que vamos encontrando.

PROBLEMA CON EL DIRECTORIO OCULTO GIT

Al realizar el cambio de permisos de todos los ficheros y directorios de un proyecto, si este está tenemos creado un repositorio de git, con las instrucciones anteriores intentan cambiar los permisos del directorio oculto de git ( .git), algo que no debería.

PROBLEMA DE PERMISOS DE FICHEROS SUBIDOS DESDE CMS EN LOCAL

Aunque nuestro técnico configuro el servidor con ACLś, cuando cargamos un fichero desde el CMS este le da los permisos 755 o 644, por lo que el usuario del sistema no tiene permisos a modifica o eliminar ese fichero. ¡ PROBLEMA ! EN SERVIDOR LOCAL CON CONTROLADOR DE VERSIONES (GIT) , QUE INTENTA CAMBIAR ESOS PERMISOS A EL DIRECTORIO OCULTO .GIT SI PONEMOS LA RUTA DE LA RAIZ DEL PROYECTO.