Почему пользователь не может удалить каталог, которым никто не владеет?

Почему пользователь не может удалить каталог, которым никто не владеет?

Я настроил базовый Samba Shir для обмена медиафайлами по протоколу SMB в моей локальной сети без учетных данных (т.е. как гость SMB)

/etc/samba/smb.conf

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

Когда я создаю каталог, вызываемый exampleс помощью SMB в Windows, структура каталога выглядит следующим образом:

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

При попытке удалить каталог из системы с помощью стандартной учетной записи пользователя появляется сообщение об ошибке.

rmdir: не удалось удалить «example»: Операция не разрешена

Тем не менее, я могу удалить папку с помощью SMB в Windows. Что здесь происходит, и как я могу разрешить любому локальному пользователю unix удалять или изменять файлы, созданные гостем через SMB?

решение1

Флаг tв разрешениях родительского каталога объявляет, что только владелец каталога (или root) может удалить из него файл или каталог.

Samba, по-видимому, настроена на предоставление пользователю доступа в качестве учетной записи nobody. Вы не настроены nobody, поэтому у вас нет прав на удаление каталога.

Я не рекомендую вам создавать файлы и каталоги на верхнем уровне. Оставьте это для lost+foundодного каталога данных и расшарьте этот каталог данных, а не точку монтирования.

# 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

Теперь исправьте путь к данным 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

Связанный контент