He estado luchando con los permisos hasta ahora, y publiqué otra pregunta pero identifiqué cuál era el problema, sin ninguna forma de solucionarlo todavía.
Mi configuración:
- Escritorio Ubuntu con pila LAMP
- 5 "usuarios" Creé usuarios que creé en el servidor ubuntu usando
sudo useradd -r -s /bin/false USERNAME
y que se usan para acceder a las carpetas compartidas de la red local, es decir, para que las computadoras de mi red se conecten a la carpeta / var / www, compartida usando Samba. - EDITAR: El propósito es crear una especie de "host local maestro" donde todas las computadoras de mi red local puedan trabajar en el mismo sitio web, localmente (NO tengo una dirección IP estática, por lo que no se puede acceder al servidor desde otro lugar) .
Mi problema:
Actualmente, cuando creo una nueva carpeta en /var/www/html
(por ejemplo: Crear la carpeta / var / www / html / testsite1) usando cualquier computadora de la red, esta carpeta es propiedad automática de boris:www-data
("boris" es el usuario administrador principal en mi instalación de escritorio ubuntu , y muestra de hecho boris: www-data cuando se ejecuta ls -l
en la carpeta recién creada), lo que está causando problemas con mi configuración actual (usando principalmente Duplicator Plugin para wordpress por LifeInTheGrid). Sin embargo, tanto mi /var/www
como mi/var/www/html
son propiedad dewww-data:www-data
Por lo tanto, me gustaría saber cómo puedo:
Cambie la propiedad a www-data: www-data de todos los archivos Y directorios a continuación / var / www y / var / www / html
Asegúrese de que cualquier archivo o carpeta que cree con cualquiera de los usuarios de mi red pertenezca automáticamente a www-data: www-data (eso incluye archivos creados automáticamente por scripts php, ya que es lo que hace el plugin Duplicator si estoy No esta mal).
¿Hay una manera de hacer eso?
Nota: Soy un super novato con cosas relacionadas con Linux y líneas de comando, pero me pongo al día rápidamente.
Nota 2: umask ya está configurado como 0002
EDITAR:
Probé esto:
sudo chown -R www-data:www-data /var/www/
Y luego establezca los bits setuid y setgid haciendo esto:
sudo chmod u+s /var/www/html
sudo chmod g+s /var/www/html
Luego cerré la sesión, reinicié Apache e intenté crear una nueva carpeta usando una Mac conectada a mi servidor a través de la red IP (IP local, no estática).
Corrí
ls -l on /var/www/html
La salida sigue siendo:
drwxr-sr-x 2 boris www-data testsite1
Nota:
Ya revisé mi configuración de apache antes y envvars, ya está configurado en:
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
EDITAR: Lo intenté al revés, por ejemplo, configurando todo para que sea propiedad de boris: www-data y configuré mi configuración de apache de envvars en boris: www-data. ¡FUNCIONÓ!
Aquí esta lo que hice:
Cambió envvars a
export APACHE_RUN_USER=boris
export APACHE_RUN_GROUP=www-data
Corrió
sudo chown -R boris:www-data /var/www/
¡Reinicié Apachem, creé una nueva carpeta, agregué mis archivos, ejecuté el complemento, ahora dice que es bueno!
fuente
Respuestas:
Respuesta a la pregunta 1: recursiva
chown
Un recursivo
chown
le permitirá establecer la propiedad y el grupo para lo que desea/var/www/...
. Este es el comando que debes usar:Con eso, cada archivo y carpeta se configurará como tal dentro de esos permisos de propiedad.
Media respuesta a la pregunta # 2:
setgid
bitSi desea la propiedad predeterminada del grupo en los archivos, establezca el
setgid
bit en la/var/www/html
carpeta. Los nuevos archivos se deben crear con ese grupo como se indica en la carpeta.Sin embargo, deberá establecer permisos de escritura si algún usuario que NO sea el que
www-data
está escribiendo en los directorios, y hacerlo puede abrirlo a un agujero de seguridad o dos si no tiene cuidado.Terminas con permisos siendo
$USER:www-data
; para cambiar el propietario, utilice unchown
método indicado en el método n. ° 1 (dicho esto, en una configuración adecuada, debe confiar en los permisos de grupo, no en los permisos de propietario del usuario, para acceder a los archivos web).Problema del duplicador de Wordpress PHP
El problema con los permisos es el usuario / grupo que PHP ejecuta, ya que necesita escribir y leer y probablemente
+x
en el directorio para editar la estructura de directorios y tal.PHP se ejecuta como
www-data
predeterminado en las instalaciones de Ubuntu que usan las configuraciones predeterminadas. Idealmente, sus pasos anteriores solucionarían el problema, ya que está atascado con el Duplicator Plugin como un complemento de PHP.Idealmente, también debe consultar la documentación del Duplicator Plugin para verificar qué permisos necesita para funcionar y funcionar.
fuente
Para asegurarse de que cualquier archivo o carpeta que cree en
/var/www/html
sea propiedad de www-data automáticamente, puede usarinotify
, es como cron pero monitorea las carpetas / archivos en busca de cambios en los atributos, creaciones de archivos, modificaciones y mucho más.Primero instálalo con:
Permita que la raíz se use
incron
abriendo/etc/incron.allow
con:y añadir
root
al archivo, luego guarde y salga.Edite su incrontab con:
y agregue la siguiente línea:
guardar y Salir.
Ahora, tan pronto como se cree un archivo en el
/var/www/html
directorio, automáticamente establecerá la respuesta enwww-data:www-data
.Explicación de la línea en incrontab:
/var/www/html
es el directorio que será monitoreado.IN_CREATE
buscará los archivos creados. Es la máscara de cambio de archivo ./bin/chown -R www-data:www-data /var/www/html/
es el comando / acción a ejecutar.fuente
./html
está implícito aquí (como parte de / var / www /)-R
lo hace recursivo (por lo que atravesará todos los directorios/var/www/
).Establezca su configuración de apache en www-data. Ver
/etc/apache2/envvars
Debe reiniciar Apache después de editar esto (
sudo service apache restart
).El problema aquí probablemente no es el complemento sino php. El usuario debe ser el mismo proceso que ejecuta PHP. Por lo tanto, es probable que también necesite establecer eso en www-data si ese es su usuario y grupo (
/etc/php5/apache2/php.ini
).fuente
www-data
, al igual que Debian, creo./var/www/html
también es la propiedad del grupo y los privilegios de lectura / escritura. El otro problema es que quieren que tenga cualquier archivo creado por un usuariowww-data:www-data
, y supongo que son usuarios de la red , no usuarios de Wordpress, por lo que debe buscar los permisos de los archivos de Linux.Lo solucioné! Todavía creo que fue un problema de Apache envvars, pero no estoy seguro de si eso es lo que resolvió el problema ... De todos modos, esto es lo que hice:
Cambió envvars a
Corrió
Ahora está funcionando hasta ahora. Probará más ...
fuente