Tengo una máquina servidor que contiene 10 usuarios. Sistema operativo: Ubuntu 12.04.3 LTS de 64 bits
Estos usuarios son desarrolladores (principalmente desarrolladores web: HTML+JS+PHP+MYSQL)
Les permití iniciar sesión de forma remota a través de XRDP y VNC.
Ahora todo funciona bien pero el problema en /var/www
¿Cuál es el permiso adecuado para este directorio para que no tengan problemas al compartir código entre ellos aunque no sean root? Todos ellos son usuarios simples.
Necesito saber si existe una forma segura de permitirles compartir código fuente y al mismo tiempo que cada uno tenga su propio repositorio. Doy la bienvenida a cualquier idea.
Respuesta1
Pones a todos estos usuarios en el mismo GRUPO.
usermod -g {group} {user}
De esa forma todos los usuarios tienen los mismos permisos. Generalmente usamos el grupo con el que está configurado Apache (www-data o apache).
Cualquier cambio en los permisos de un archivo o directorio del grupo lo cambiará para todos.
En general, los archivos en /var/www/ pueden tener 664 como mínimo. Y directorios 775. Nunca pongas ninguno de ellos en 777 pero puedes bajar.
Respuesta2
Otro método (debido a la recompensa :))
Puede hacerlo de esta manera si no desea mantener a todos los usuarios en la misma raíz web. Puede crear diferentes directorios como alias de webroot para el directorio /var/www/. Suponga que tiene dos usuarios u1 y u2.
Supongo que ya instalaste apace2, si no, hazlo.sudo apt-get install apache2
Haré que los directorios /home/u1/web y /home/u2/web sean la raíz web de los usuarios u1 y u2.
sudo chmod 775 home/u1/web
sudo chmod 775 home/u2/web
sudo gedit /etc/apache2/sites-available/default
Cree un alias (agregue lo siguiente al archivo) para el usuario u1:
Alias /u1 /home/u1/web
<Directory /u1>
Options All
AllowOverride All
order allow,deny
allow from all
</Directory>
Cree un alias (agregue lo siguiente al archivo) para el usuario u2:
Alias /u2 /home/u2/web
<Directory /u1>
Options All
AllowOverride All
order allow,deny
allow from all
</Directory>
Ahora cada usuario puede acceder a su raíz web apuntando su navegador web a localhost/u1 para el usuario u1 y localhost/u2 para el usuario u2.
Respuesta3
Puedes hacerlo de esta manera:
- cree un directorio dentro de /var/www para cada usuario
cambie el propietario de cada directorio al usuario asociado y el grupo a www-data group
sudo chown user1:www-data /var/www/user1
sudo chown user2:www-data /var/www/user2
Cambie los permisos de cada directorio a 750 para que ningún usuario pueda alterar los archivos de otros usuarios, pero manteniendo la capacidad de abrir los archivos html de otros en el navegador utilizando los permisos del grupo www-data.