
Tengo problemas con los permisos de archivos en un servidor Ubuntu. Estoy usando WinSCP para mover archivos al servidor. El servidor funcionará bien y luego de un tiempo parece que ya no tengo permiso para eliminar un archivo.
Me estoy conectando al servidor usando una cuenta llamadaadministrador, y el directorio raíz del servidor Apache es/var/www. Cada sitio web tiene su propio directorio debajo de este, es decir
/var/www/site1
/var/www/site2
Este es el resultado del comando ls...
cd /var/www
ls -al
drwxr-sr-x 4 svadmin svadmin 4096 2009-06-12 14:45 .
drwxr-xr-x 15 root root 4096 2009-05-05 15:47 ..
drwxr-sr-x 4 svadmin svadmin 4096 2009-06-12 15:15 site1
drwxr-sr-x 4 svadmin svadmin 4096 2009-06-12 15:15 site2
Tengo entendido que esto significa que el propietario del directorio ha leído/escrito/ejecutado. Cuando me conecto al servidor usando la cuenta svadmin, ¿no debería poder sobrescribir o eliminar archivos en /var/www/site1 o /var/www/site2?
No estoy muy familiarizado con los permisos de archivos/directorios de Linux, por lo que he estado luchando para determinar qué debería hacer. ¡Cualquier ayuda sería muy apreciada!
Más información: (¡gracias por las rápidas respuestas!)
Salida de ls -al para /var/www/site1
drwxr-sr-x 4 svadmin svadmin 4096 2009-06-12 15:15 .
drwxr-sr-x 4 svadmin svadmin 4096 2009-06-12 14:45 ..
-rw-r--r-- 1 svadmin svadmin 157 2009-05-12 13:23 error.php
-rw-r--r-- 1 svadmin svadmin 158 2009-05-12 13:23 .htaccess
-rw-r--r-- 1 svadmin svadmin 142 2009-05-12 13:23 index.php
drwxr-sr-x 2 svadmin svadmin 4096 2009-05-12 18:40 libraries
Mensaje de error Cuando intento eliminar el archivo:
rm admin.php
rm: cannot remove 'admin.php' : Read-only file system
Aún más información Sólo para agregar alguna información posiblemente relevante... todo estuvo funcionando hasta ayer por la tarde. En ese momento, un compañero de trabajo sacó la SAN en la que estaba el archivo de la máquina virtual y el servidor web tuvo un apagado poco elegante.
Respuesta1
Este no es un problema de permisos. Las dos pistas son:
- rm: no se puede eliminar 'admin.php': sistema de archivos de solo lectura
- Todo estuvo funcionando hasta ayer por la tarde. En ese momento, un compañero de trabajo sacó la SAN en la que estaba el archivo de la máquina virtual y el servidor web tuvo un apagado poco elegante.
De alguna manera, el sistema de archivos que contiene /var/www cayó a "solo lectura", probablemente cuando desapareció la SAN. La salida del mount
comando debería identificar este sistema de archivos con un indicador (ro) al final.
La solución es descubrir por qué sucedió, asegurarse de que esté corregido y volver a montar el sistema de archivos rw con este comando:
mount -oremount,rw $filesystem
Respuesta2
Si tiene rwx en un directorio, eso significa que puede editar el archivo del directorio, lo que equivale a eliminar y agregar archivos. La edición de archivos es una función de sus permisos individuales. ¿Cómo se ve un ls -l de uno de los subdirectorios?
Respuesta3
Tu problema es la parte pegajosa. Fíjate que las permanentes no las hay drwxr-xr-x
, las hay drwxr-sr-x
. Wikipedia dice:
El uso más común del bit adhesivo hoy en día es en directorios, donde, cuando se configura, los elementos dentro del directorio pueden ser renombrados o eliminados sólo por el propietario del elemento, el propietario del directorio o el superusuario; Sin el bit adhesivo configurado, cualquier usuario con permisos de escritura y ejecución para el directorio puede cambiar el nombre o eliminar los archivos contenidos, independientemente del propietario. Normalmente, esto se configura en el directorio /tmp para evitar que los usuarios normales eliminen o muevan los archivos de otros usuarios. Esta característica se introdujo en 4.3BSD en 1986 y hoy se encuentra en la mayoría de los sistemas Unix modernos.
Por lo tanto, solo el grupo que los colocó allí en primer lugar puede escribir y eliminar archivos.