En linux tenemos una carpeta compartida y cada vez que crean una carpeta dentro de esta los permisos se pierde y debes restablecerlos con chown o chmod. La solucion pasa por establecer un grupo por defecto para el usuario de forma que cada archivo o carpeta que cree el grupo por defecto sea el propietario.
Para ello hacemos uso de
usermod -g grupodeusuario nombredeusuario
Asi hacemos el grupodeusuario por defecto para ese usuario.
Otra alternativa son las acl
En GNU/Linux contamos básicamente con dos métodos para la protección de un archivo o directorio. Éstos son los permisos y las listas de control de acceso (ACL) (en distribuciones como RedHat y sus derivados -CentOS, Scientific Linux, Fedora- contamos con SELinux como una tercera opción de protección).
En particular, con las listas de control de acceso podemos otorgar los permisos que queramos tenga cierto usuario sobre archivos o directorios de otro usuario. Así, para implementar ACL en nuestro sistema, el primer paso consiste será indicar en /etc/fstab la opción acl para la partición correspondiente al archivo o directorio en el que lo vamos a requerir:
Los comandos que se usan para consultar o modificar son
- getfacl: que nos permite consultar las ACLs de un fichero dado.
- setfacl: que nos permite modificar las ACLs de un fichero dado.
Modificadores y opciones para setfacl
- -b borra la lista de ACL que pudiera existir
- -k borra la opcion de ACL por defecto
- -R recursivo
- -m añade o modifica la politica establecida
- -s – es una o s o m y es elimina para crear la nueva com m modifica o añade.
- -d hace un acl por defecto
Todas las ACEs tienen tres componentes separadas por ‘:’
En caso de borra el tercer es opcional
- primer componente : u o g dependiendo si es de usuario o grupo
- segundo componente: usuario o grupo , tambien puede usar uid o gid
- tercer componente : combinacion de permisos r,w,x y- o valor octar como usamos en chmod
Ejemplo de borrado
# setfacl -b prueba/
# getfacl prueba/
# file: prueba/
# owner: nobody
# group: nogroup
user::rwx
group::r-x
other::r-x
ACLs por defecto
Todo lo anterior está muy bien, pero tiene un problema: los ficheros y directorios nuevos que se creen no van a tener todas esas ACLs con los valores adecuados, y por tanto tendremos que estar cada dos por tres ajustando los valores de las ACLs con las órdenes anteriores. Evidentemente eso no es operativo en absoluto. En nuestra ayuda llegan las ACLs por defecto (en realidad habría que hablar de ACEs por defecto, pero la documentación habla de ACLs por defecto, así que mantendremos la misma terminología para no crear más confusión).
Las ACLs por defecto nos permiten indicar cuál es el juego de ACEs que queremos que se apliquen automáticamente a los nuevos ficheros y directorios que se creen dentro de un directorio dado. Se dice en estos casos que los permisos se heredan desde el directorio padre.
La sintaxis es idéntica a la de una ACE normal, con la diferencia de que debemos usar además la opción -d:
#setfacl -R -d -m g:grupo:wrx carpeta
# getfacl
Usage: getfacl [-dRLP] file …
Try `getfacl –help’ for more information.
root@KUBUN:/var/www# getfacl carpeta
# file: carpeta
# owner: nobody
# group: grupo
user::rwx
group::r-x
other::r-x
default:user::rwx
default:group::r-x
default:group:grupo:rwx
default:mask::rwx
default:other::r-x
Si ejecutamos el comando y nos muestra el mensaje de que Operacion no soportada es por que debemos habilitar las acl en nuestra particion.
# setfacl -d -R -m g:grupo:rw prueba/
setfacl: prueba/: Operación no soportada
SOLUCION
Vi: /etc/fstab:
Cambiamos
# /dev/sda1
UUID=6884bdde-1ad1-4aa2-8900-7f3fbbaf4ac6 / ext3 relatime,errors=remount-ro 0 1
por
# /dev/sda1
UUID=6884bdde-1ad1-4aa2-8900-7f3fbbaf4ac6 / ext3 acl,relatime,errors=remount-ro 0 1
Añadiendo acl,
Ahora no es necesario reiniciar el equipo si no remontar la unidad.
mount -o remount -o acl /dev/sda1 /