Esta pregunta ya tiene una respuesta aquí:
Tengo una carpeta en la que las nuevas subcarpetas y archivos se crearán automáticamente, mediante un script.
Quiero mantener los permisos de usuario y grupo de forma recursiva para todas las carpetas y archivos nuevos colocados en el directorio principal. Sé que esto implica establecer un bit fijo, pero parece que no puedo encontrar un comando que muestre exactamente lo que necesito.
Esto es lo que he hecho hasta ahora:
sudo mkdir -p /path/to/parent
sudo chmod -R 660 myself:somegroup /path/to/parent
A partir de entonces, quiero que los permisos 660 se establezcan de forma recursiva en cualquier carpeta y archivo colocado /path/to/parent
.
Sin embargo, todo lo que he intentado hasta ahora ha fallado. ¿Puede alguien ayudar, por favor?
En realidad, la bandera octal 660 probablemente ni siquiera es correcta. Los permisos que quiero son:
- Los directorios colocados debajo
/path/to/parent
son ejecutables por usuarios con permisos - los archivos son leídos / grabables por el usuario y los miembros de algún grupo
- Los archivos y las carpetas
/path/to/parent
NO son legibles en todo el mundo
Estoy corriendo en Ubuntu 10.0.4 LTS.
¿Puede alguien ayudar, por favor?
fuente
o+w
una buena opción aquí? ¿No deberían limitarse los cambios au
yg
? De lo contrario, ¿qué sentido tiene tratar de mantener la seguridad en el directorio y los subdirectorios?Los bits de permiso que está buscando son 0770 y 0660.
rw-
permisos →110
binario →6
octalLa propiedad del grupo puede ser heredada por los nuevos archivos y carpetas creados en su carpeta / ruta / a / parent configurando el bit setgid de
chmod g+s
esta manera:Ahora, todos los archivos y carpetas nuevos creados en / path / to / parent tendrán asignado el mismo grupo que el establecido en / path / to / parent.
Los permisos de archivo POSIX no se heredan; son dados por el proceso de creación y combinados con su valor actual de umask.
Sin embargo, puede usar las ACL POSIX para lograr esto. Establezca la ACL predeterminada en un directorio:
Esto se aplicará
setfacl
al directorio / ruta / a / padre,-m
odificando las ACL-d
predeterminadas , aquellas que se aplicarán a los elementos recién creados. (MayúsculasX
significa que solo los directorios recibirán el+x
bit).(Si es necesario, puede agregar un
u:someuser:rwX
og:someuser:rwX
, preferiblemente un grupo, a las ACL).Nota: En los sistemas más antiguos que usan ext3 / ext4, solía necesitar montar el sistema de archivos con la
acl
opción; de lo contrario, ignoraría todas las ACL y no permitiría configurar las nuevas.Para configurar esto permanentemente, use
tune2fs -o acl <device>
o edite/etc/fstab
.fuente
unzip
?Creo que has terminado de complicar el problema. Si el directorio de nivel superior no es accesible para otros, entonces otros no podrán crear archivos dentro del árbol. No se requiere acceso de escritura grupal si solo Apache está escribiendo.
Estos pasos deben hacer lo que desee (reemplace el directorio en los comandos con el directorio que desea usar):
umask 027
al script predeterminado de apache/etc/default/apache
. Esto evitará que otros accedan a cualquier archivo o directorio que apache cree.chown www-data:www-data directory
en el directorio que desea que apache pueda escribir.chmod 750 directory
en el directorio que desea que apache pueda escribir.Permitir que Apache escriba en un directorio abre la capacidad de inyectar todo tipo de malware en el contenido que está sirviendo. Monitoree el contenido de este árbol de directorios adecuadamente.
fuente