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

191

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

¿Cómo puedo hacer esto?

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

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

Respuestas:

321

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 /var/wwwestén en este grupo.

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

Luego configure 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 él "establezcan GID", de modo que todos los archivos y directorios nuevos creados bajo /var/wwwsean propiedad del www-datagrupo.

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

Encuentre todos los archivos /var/wwwy 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 cerrar sesión y volver a iniciarla para poder realizar cambios si está editando el permiso para su propia cuenta.

jtimberman
fuente
2
eso es bastante tedioso ... ¿No puedo simplemente darles acceso a los usuarios, como si fuera cualquier otra carpeta?
Carson Myers, el
99
Así es como le das acceso. Es más rápido copiar y pegar los comandos que intentar navegar a través de los diálogos de un administrador de archivos GUI para hacer lo mismo. A largo plazo, le ayuda si lee las páginas del manual para chmod y chgrp, al menos ("man chmod").
jtimberman
quizás no entendí los comandos la primera vez que lo leí, y su edición lo hace mucho más claro.
Carson Myers, el
1
+1 para guid para forzar los 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
1
¿Por qué es su comando de permiso de grupo sudo chmod -R g+wy no g+rwo g+rwX?
detly
31

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

sudo chmod -R 757 /var/www

Esencialmente, el chmodcomando altera los permisos y el -Rcambio afecta a todos los usuarios. Entonces simplemente está dando los permisos correctos para usar.

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

Leer + Escribir:

sudo chmod -R a+rw /var/www

Leer + Escribir + Ejecutar:

sudo chmod -R a+rwx /var/www
paivaric
fuente
7

También puede replicar lo que sugirió jtimberman usando listas de control de acceso . El comando setfacl acepta -s para reemplazar una ACL existente o -m para modificarla; -R para hacer que las ACL del directorio sean recursivas; y -d para hacer que la configuración especificada sea la predeterminada, lo cual es útil si está anticipando las próximas cuentas de usuario.

Estos solo establecen 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 esto podría ser cómo 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, múltiples usuarios, etc., todo sin tener que modificar la configuración de su grupo. Y a diferencia de chmod, si desea que algunas groupies tengan acceso a un directorio y otras groupies tengan acceso solo a otro, en realidad es posible con setfacl. Finalmente, para ver las ACL de un directorio, ejecute getfacl :

getfacl DIRECTORY

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

Nikhil Chelliah
fuente
2

La respuesta rápida y fácil :

a. Agregue ( -a ) su usuario ( nombre_usuario ) al grupo ( -G ) www-data .

sudo usermod -a -G www-data user_name

si. Otorgue al Grupo ( g ) los mismos ( = ) permisos que el Usuario propietario ( u ) de / var / www Recursively ( -R ).

sudo chmod -R g=u /var/www

Explicación: Apache 2 en Debian / Ubuntu establece los datos de usuario y grupo www como Propietario 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 wwww-data es una forma rápida y fácil de desarrollar. Hago esto para todos mis entornos de desarrollo web localhost (PC / Laptop).

usuario1138
fuente
1

Tipicamente uso

chmod g+w /folder/ -R

Es casi autoexplicativo.

Agrega a todos en la gruta de /folder/tener wacceso de rito ( +w), -Res para la recursión de subcarpetas.

Arda
fuente
-3

¿Puedes intentarlo chmod 0777 /var/www?

Una advertencia: si dejas 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.

Stalepretzel
fuente
Entonces, ¿por qué ofrecer esto como una solución y luego desacreditarlo inmediatamente? -1 voto
Tisch
-3

Primero ingrese la ruta de la carpeta en particular, luego use este comando ...

chmod -R 777 foldername
chown username:username foldername 
marimuthu
fuente
77
Wow, eso es malo! No le das un 777 con un -R, especialmente si la persona que hace la pregunta es un novato y no comprende los riesgos.
recluze
Suficientemente cierto @recluze.
vgoff