El propietario y el grupo de 'www/website1' es root:www-data y puedo modificar su contenido o configuración como usuario root o sudo.
Pero ahora, quiero crear otro sitio web llamado sitio web2 (en el directorio 'www'), cuyo acceso debe ser otorgado a un amigo mío (para que pueda configurar fácilmente este sitio web como quiera). Pero no debería poder modificar ni ver ningún otro directorio en mi sistema operativo, ni siquiera con Sudo.
Para este propósito, puedo crear un nuevo usuario en mi sistema operativo Ubuntu y crear una identificación/contraseña de inicio de sesión ftp para él. Pero vi/descubrí que, junto con el acceso 777 a este sitio web2, él también, automáticamente, obtiene acceso de lectura a la carpeta raíz completa y a todas sus subcarpetas.
¿Existe una forma breve de controlar esto, de modo que solo pueda ver 1 (o 2 carpetas) requeridas, pero no más de las especificadas? Además, no quiero modificar las propiedades de todas las demás carpetas de mi sistema operativo completo, una por una. Gracias.
Respuesta1
www-data
Aquí está la clave: ese es el grupo. Puede agregar usuarios a un grupo para que tengan acceso a archivos y directorios según los permisos del grupo.
El comando sería:
usermod -a -G www-data {user2}
{user2} podrá entonces cambiar los archivos que están conectados a este grupo (además de los archivos que puede cambiar y que son de su propiedad).
Si es necesario, incluso podría crear un nuevo grupo, conectarlo a los 2 usuarios y restringir al usuario2 específicamente a aquellos archivos conectados a ese grupo. Apache usa www-data como usuario, pero ese usuario también puede tener más que un grupo www-data.
Vi/descubrí que, junto con el acceso 777 a este sitio web2, él también, automáticamente, obtiene acceso de lectura a la carpeta raíz completa y todas sus subcarpetas.
chmod 777 nunca es la respuesta a menos que también incluyas el bit adhesivo.
Respuesta2
utilice el siguiente comando:
setfacl -R -m user:{user2}:rwX www/website2
Eso debería darle al usuario {usuario2} acceso completo a www/sitioweb2 y a todo lo que se encuentre dentro de ese directorio.
Editar:Me acabo de dar cuenta de que su problema es que {usuario2} tiene acceso de lectura a otros directorios además de www/website2. Estos directores suelen tener, de forma predeterminada, acceso de lectura habilitado para "otros", es decir. para cualquier usuario, es por eso que {user2} puede leerlos. Sin eliminar este acceso, no puedes evitar que {user2} los vea. El único método es, como dije en el comentario debajo de su pregunta, bloquear a {usuario2} en la cárcel chroot FTP, de modo que www/website2 sea el directorio raíz para ese usuario. Compruebe si su servidor FTP lo admite.