"Si tú no trabajas por tus sueños, alguien te contratará para que trabajes por los suyos”

Steve Jobs

Afiliado
Dominios3Euros

Nosotros trabajamos con dos servidores:

  • Servidores Produccion: Aquellos que son publicos, para nuestros proyectos y clientes webs.
  • Servidores Desarrollo: Cada programador tiene un servidor local donde trabaja en esos proyecto para mejorar.

Lo que pretendemos en este post :

1.- Indicar los permisos de ficheros y directorios de cada uno de los servidores.

2.- Utilizar Access Control Lists (ACL) para el servidor desarrollo,  consiguiendo que tenga varios propietarios los ficheros y directorios.

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

Para ficheros y directorios: 640 ( -rw-r--r-- ) y 750 ( drwxr-xr-x )

En nuestros SERVIDORES DESARROLLOS (SERVIDORES LOCALES) los permisos cambian , ya que trabajamos con ACLs , 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 solo se puedan subir ficheros con esos permisos.

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 (formato numerico) 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 y 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

Cambiar los permisos de un fichero

chmod 644 nombrefichero

Lo mismo para un directorio.

chmod 755 nombredirectorio

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 .

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

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

Problemas que aun no resolvimos.

PROBLEMA CON EL DIRECTORIO OCULTO GIT

Cuando nos descargamos ficheros de produccion en nuestro proyecto que ya tenemos versionado con git, pero los ficheros que nos bajamos tiene mal los permisos.Al realizar el cambio de permisos de todos los ficheros y directorios de un proyecto, con las instrucciones anteriores intentan cambiar los permisos del directorio oculto de git ( .git), algo que no debería y entonces nos indica que hubo error en el intento de cambio permisos del directorio git.