25 de julio de 2013

Proteger Carpetas y Ficheros en Linux y en Samba

En mundo de los permisos en Linux es enormemente potente, pero hay que dedicarle un rato para comprenderlo y sacar el máximo provecho.

Pongamos que queremos proteger unas carpetas personales de la mirada de otros usuarios, de modo que estas carpetas y los ficheros que contienen solo puedan ser vistas por el usuario.

Por defecto los permisos en Linux son:

Carpetas: 777 = rwx rwx rwx
Ficheros: 666 = rw- rw- rw-
Con la máscara 022

Lo que hace:
Carpetas: 777 - 022 = 755 = rwx r-x r-x
Ficheros: 666 - 022 = 644 = rw- r-- r--

De modo que por defecto Linux crea carpetas y ficheros que únicamente son modificables por el usuario pero que pueden ser vistos y copiados por todos los usuarios.
Esto es un problema cuando hay información sensible que se quiere proteger.

Para impedir que los directorios y ficehros sean visibles por otros usuarios tenemos que cambiar los permisos de las carpetas y los ficheros a:

Carpetas: 700 = rwx --- ---
Ficheros: 600 = rw- --- ---

Si ya tenemos una carpeta llamada "mycarpeta" y queremos cambiar los permisos de todo su contenido podemos hacerlo:

# chmod -R go-rwx mycarpeta

Para cambiar los permisos de las carpetas y ficheros que se crean por defecto en un usuario hay que modificar los ficheros .bashrc y .profile de su directorio personal y añadir:

umask 077

de este modo hemos cambiado la mascara que se aplica a los permisos por defecto que tiene linux para las las nuevas carpetas y ficheros que cree este usuario. Los permisos quedarian:

Carpetas: 777 - 077 = 700 = rwx --- ---
Ficheros: 666 - 077 = 600 = rw- --- ---

Los directorios y ficheros solo seran visibles y modificables por el usuario y el root.

Nota: para recargar el fichero .bashrc, hacer:
$ su usuario.

Si otro usuario intentara listar el directorio ...

$ ls mycarpeta
ls: no se puede abrir el directorio mycarpeta: Permiso denegado

En samba:
para poner una mascar en los archivo de los usuarios que accedan por samba, hay que modificar el fichero /etc/samba/smb.conf del siguiente modo:

[mycarpeta]
 create mask = 0700

Ref:
http://www.ite.educacion.es/formacion/materiales/85/cd/linux/m1/permisos_de_archivos_y_carpetas.html

http://www.lasticenelaula.es/portal/index.php/linux-mint/679-cambiando-los-permisos-a-archivos-y-carpetas-en-linux-mint-y-ubuntu

http://blog.manuelviera.es/2012/06/entendiendo-umask/

http://www.ite.educacion.es/formacion/materiales/85/cd/linux/m4/gestin_de_usuarios_grupos_y_permisos_de_samba.html

Resumen de los permisos:
Cód Binario   Permisos efectivos
0       0 0 0       - - -
1       0 0 1       - - x
2       0 1 0       - w -
3       0 1 1       - w x
4       1 0 0       r - -
5       1 0 1       r - x
6       1 1 0       r w -
7       1 1 1       r w x

No hay comentarios:

Publicar un comentario