¿Por qué no puedo eliminar un archivo en el que tengo permisos de escritura grupal?

26

Tengo un archivo con los siguientes permisos:

root:datay chmodestablecido en 775.

Mi usuario normal, llamémoslo boby, está en el datagrupo.

¿Por qué no puedo eliminar el archivo con el usuario boby?

 rwxrwxr-x 18 datos raíz 4096 2011-12-30 22:02 almacenamiento
 mi usuario está en los datos del grupo pero no puede escribir en el almacenamiento
danidacar
fuente

Respuestas:

32

Porque al eliminar un archivo, no solo está modificando el archivo sino también modificando su directorio.

Entonces, si su archivo es:

rwxrwxr-x

Podrías hacer:

cp /dev/null <filename>

Pero si los permisos de su directorio son:

rwxr-xr-x  root  data  <directory name>

Entonces el sistema evitará que elimines el archivo.

Karlson
fuente
Tengo drwxrwxr-x en el directorio, creo que tiene algo que ver con la d en frente
danidacar
2
@ user56301 d solo indica que este archivo es un directorio. ¿Cuál es la propiedad del directorio?
Karlson
drwxrwxr-x 18 datos raíz
danidacar
Intenta ejecutar como usuario bobylo siguiente:cd <directory> ; touch test_file ; rm test_file
Karlson
@ user56301 ¿puede crear un archivo en ese directorio? si no puede, entonces definitivamente no puede eliminar un archivo allí.
Rich Homolka
12

La eliminación de archivos se basa en permisos de directorio, no en permisos de archivo (*).

¿Tiene permisos de escritura en el directorio que contiene el archivo?

(*) Advertencia, puede tener un directorio donde haga cumplir que solo el propietario del archivo puede eliminarlo. Esto es útil para directorios temporales.

Rich Homolka
fuente
También eche un vistazo aquí: superuser.com/questions/784952/… donde se discute lo mismo.
Meetai.com
1

Si el directorio que contiene no permite que el usuario bobyo el datagrupo le escriban, eso explicaría este comportamiento.

Andrew Lambert
fuente
2
Entonces, ¿todo el camino necesita permiso de grupo? Funciona asi.
danidacar
1
@usuario: no toda la ruta, solo el directorio primario inmediato del archivo. Solo está modificando los contenidos del directorio. Los padres superiores no importan en absoluto .
Grawity
Actualizo las respuestas
danidacar
1
Esto no es exactamente cierto. Solo necesita permisos de escritura en el directorio contenedor. Los permisos pueden ser de usuario, grupo u otro, no tiene que ser permisos de grupo que le permitan.
Rich Homolka
@Rich: AFAIK, solo se verifica un conjunto. Si usted es el propietario, el sistema solo verificará los permisos de 'propietario', no 'grupo' ni 'otros'. Si está en el grupo, el sistema no verificará los permisos de 'otros'. ( touch foo; chmod 6 foo; ls -l foo; cat foo)
Grawity
1

Intenté lo mismo y me encontré con el mismo problema.

Comenzando una nueva sesión de terminal el problema. Esto se puede lograr mediante:

  1. Cerrar sesión y volver a iniciar sesión
  2. Ir a uno de los 6 ttys (Ctrl + Alt + F1-6) (Nota: Ctrl + Alt + F7 es su sesión de GUI)
  3. utilizando su bobypara iniciar una nueva sesión para el usuario boby.

¡Aclamaciones!

Aquí sean lobos
fuente
Menciona que ya inició sesión como boby
Canadian Luke REINSTATE MONICA
Necesita iniciar sesión nuevamente ya que bobyla sesión anterior parece estar obsoleta y no refleja los cambios de asociación de grupo.
Here Be Wolves
1

Apuesto a que el archivo que estás tratando de eliminar está en / tmp.

Ver Linux: el miembro del grupo no puede eliminar el archivo con permiso rw

/ tmp generalmente tiene configurado el modo "pegajoso", también conocido como "eliminación restringida" (o + t). Con este modo configurado, solo el propietario del archivo puede mover o eliminar archivos en ese directorio, independientemente de los permisos.

Dagelf
fuente