Pregunta ¿Cómo puedo otorgar acceso de escritura a una carpeta a todos los usuarios en Linux?


Instalé apache2 en Ubuntu ahora y noté que la carpeta / var / www está protegida. Puedo simplemente sudo todo pero prefiero solo darle acceso de escritura.

¿Cómo puedo hacer esto?

Lo intenté sudo chmod 7777 /var/www pero no funcionó.


162


origen


¿Es este un servidor de acceso público o no tiene conexión directa a Internet? Si lo primero es importante que considere las decisiones de seguridad, los servidores en Internet están constantemente bajo ataque (eche un vistazo a su / var / log / messages o su equivalente). - kwutchak
esto es solo mi computadora portátil, no es accesible desde internet. - Carson Myers


Respuestas:


Para compartir mejor con múltiples usuarios que deberían poder escribir /var/www, se le debe asignar un grupo común. Por ejemplo, el grupo predeterminado para contenido web en Ubuntu y Debian es www-data. Asegúrese de que todos los usuarios que necesitan acceso de escritura a /var/www están en este grupo.

sudo usermod -a -G www-data <some_user>

A continuación, establezca los permisos correctos en / var / www.

sudo chgrp -R www-data /var/www
sudo chmod -R g+w /var/www

Además, debe hacer que el directorio y todos los directorios debajo de "establecer GID", para que todos nuevo archivos y directorios creados bajo /var/www son propiedad de www-data grupo.

sudo find /var/www -type d -exec chmod 2775 {} \;    

Encuentra todos los archivos en /var/www y agregue permisos de lectura y escritura para el propietario y el grupo:

sudo find /var/www -type f -exec chmod ug+rw {} \;

Es posible que deba desconectarse y volver a iniciar sesión para poder realizar cambios si está editando permisos para su propia cuenta.


285



eso es bastante tedioso ... No puedo simplemente darles acceso a los usuarios, como si fuera cualquier otra carpeta? - Carson Myers
Ese es cómo le da acceso a ella. Es más rápido copiar y pegar los comandos que tratar de navegar a través de los diálogos del administrador de archivos de la GUI para hacer lo mismo. A largo plazo, le ayudará si lee las páginas del manual para chmod y chgrp, al menos ("man chmod"). - jtimberman
tal vez no entendí los comandos la primera vez que lo leí, y su edición lo deja mucho más claro. - Carson Myers
+1 para GUID para forzar permisos de apache. funciona bien con umask de 027. Si algo necesita acceso de escritura, es tan fácil como chmod g + w dir / - LiraNuna
¿Por qué tu comando de permiso grupal? sudo chmod -R g+w y no g+rw o g+rwX? - detly


Hay una manera más simple de hacerlo, intente hacer este comando.

sudo chmod -R 757 /var/www

Esencialmente, el chmod comando altera los permisos y la -R el interruptor afecta a todos los usuarios. Entonces simplemente está dando los permisos correctos para usar.


25



¿Podría darnos una idea de lo que hace el comando para el OP? - n0pe
-1 por falta de explicación. Además, chmod $permissions -R $file no es válido ... - Blacklight Shining
es opciones y permisos no al revés - Moataz Elmasry
sudo chmod -R 757 /var/www - Bwyss
por favor, alguien experimentado sugiera una edición con una breve explicación sobre esto. - Adi Prasetyo


Leer + Escribir:

sudo chmod -R a+rw /var/www

Leer + Escribir + Ejecutar:

sudo chmod -R a+rwx /var/www

23





También puedes replicar lo que jtimberman sugirió usar listas de control de acceso. los setfacl el comando acepta -s para reemplazar una ACL o -m existente para modificarlo; -R para hacer que las ACL de directorio sean recursivas; y -d para hacer que la configuración especificada sea la predeterminada, lo cual es útil si anticipa cuentas de usuario futuras.

Estos solo configuran los permisos como lo haría para el usuario, grupo, otro y máscara usando chmod:

setfacl -m u::rwx, g::r-x, o::---, m:rwx DIRECTORY

Y esta podría ser la forma en que lo haría para un usuario específico o su grupo:

setfacl -m u:USERNAME:rwx, g:USERNAME:r-x DIRECTORY

Y, por supuesto, la fortaleza es que puede designar a cualquier usuario específico, usuarios múltiples, etc., todo sin tener que modificar la configuración de su grupo. Y a diferencia de chmod, si quieres que algunas groupies tengan acceso a un directorio y otras groupies para tener acceso solo a otro, en realidad es posible con setfacl. Finalmente, para ver las ACL de un directorio, ejecuta getfacl:

getfacl DIRECTORY

Y puede especificar -R para ver las ACL de los subdirectorios o -d para ver los valores predeterminados.


5



¡Esta es la mejor respuesta! Ojalá pudiera votarlo más de una vez. - Tim Duncklee


La respuesta rápida y fácil -

a. Añadir (-un) tu usuario (user_name) al grupo (-GRAMO) www-data.

sudo usermod -a -G www-data user_name

segundo. Give the Group (gramo) lo mismo (=) permisos como usuario propietario (tu) de / var / www Recursivamente (-R)

sudo chmod -R g=u /var/www

Explicación: Apache 2 en Debian / Ubuntu establece el usuario y el grupo www-data como el dueño de / var / www. Los permisos predeterminados para el usuario son "Ver y modificar contenido", sin embargo, el grupo solo puede "Ver contenido". Por lo tanto, agregarse al grupo www-data y otorgarle los mismos permisos que el usuario de wwww-data, es una manera rápida y fácil de desarrollarse. Lo hago para todos mis entornos de desarrollo web de localhost (PC / Laptop).


2





Normalmente utilizo

chmod g+w /folder/ -R

Es casi autoexplicativo.

Agrega a todos en el ggrupo de /folder/ tener wacceso al rito (+w), -R es para recursividad para subcarpetas.


1





¿Puedes intentarlo? chmod 0777 /var/www ?

Una palabra de advertencia: si permites que todos accedan a esta carpeta, eso significa que los hackers pueden acceder a esta carpeta si obtienen acceso a tu sistema. Es por eso que es mejor crear un grupo de usuarios permitidos y darle acceso de escritura a ese grupo.


-3



Entonces, ¿por qué ofrecer esto como una solución e inmediatamente desacreditarlo? -1 voto - Tisch