¿Por qué un usuario no puede eliminar un directorio que no pertenece a nadie?

¿Por qué un usuario no puede eliminar un directorio que no pertenece a nadie?

Configuré un samba shire básico para compartir archivos multimedia a través de SMB en mi red local sin credenciales (es decir, como invitado SMB)

/etc/samba/smb.conf

[media]                                                                                                                               
Comment = Media directory                                                                                                             
Path = /mnt/media                                                                                                                     
Browseable = yes                                                                                                                      
Writeable = Yes                                                                                                                       
create mask = 0666                                                                                                                    
directory mask = 0777                                                                                                                 
Public = yes

Cuando creo un directorio llamado exampleusando SMB en Windows, la estructura del directorio se ve así

ls -alh

total 28K                                                                                                                             
drwxrwxrwt 4 root   root    4.0K Oct 21 13:44 ./                                                                                      
drwxr-xr-x 3 root   root    4.0K Oct 20 13:33 ../                                                                                     
drwxrwxrwx 2 nobody nogroup 4.0K Oct 21 13:44 example/                                                                                
drwx------ 2 root   root     16K Oct 20 13:36 lost+found/
lsattr

--------------e----- ./example

Cuando intento eliminar el directorio del sistema usando una cuenta de usuario estándar, aparece un mensaje de error.

rmdir: no se pudo eliminar 'ejemplo': operación no permitida

Sin embargo, puedo eliminar la carpeta usando SMB en Windows. ¿Qué está sucediendo aquí y cómo puedo permitir que cualquier usuario local de Unix elimine o modifique archivos creados por un invitado a través de SMB?

Respuesta1

La tbandera en los permisos del directorio principal declara que solo el propietario de un directorio (o raíz) puede eliminar un archivo o directorio del mismo.

Samba parece estar configurado para proporcionar acceso de usuario como cuenta nobody. No es nobodyasí, por lo que no tiene derechos para eliminar el directorio.

No te recomiendo que crees archivos y directorios en el nivel superior. Deje eso para lost+foundun directorio de datos y comparta ese directorio de datos en lugar del punto de montaje.

# Remove global write permission from the mountpoint
chmod go-w,-t /mnt/media

# Create your files and directories in here
mkdir -m777 /mnt/media/data

Ahora arregla la ruta de datos de Samba.

[media]                                                                                                                               
    comment = Media directory
    path = /mnt/media/data
    browseable = yes
    read only = no
    guest ok = yes
    force directory mode = 0777
    force create mode = 0666

información relacionada