[samba] Проблема с recycle: touch = yes
Oleg Gints
oleg на cec.amur.elektra.ru
Вт Мар 23 10:01:37 MSK 2004
Oleg Gints пишет:
> Привет!
>
> Версия самбы -samba-3.0.2a-alt1.M22
>
> Проблема - не отрабатывает touch при удалении не своих
> файлов, хотя права на запись файла имеются.
>
Отвечу сам себе :)
info utime, там читаем:
`EPERM'
If the TIMES argument is not a null pointer, you must either
be the owner of the file or be a privileged user.
Но пользоваться корзиной без touch неудобно -
невозможно будет организовать автоматическую чистку.
А так при активной работе свободное место на диске быстро кончится.
Может следует внести изменения в сторону упрощения:
vfs_recycle.c, функция
static void recycle_do_touch(vfs_handle_struct *handle, const char *fname)
- if (SMB_VFS_NEXT_UTIME(handle, handle->conn, fname, &tb) == -1 ) {
+ if (SMB_VFS_NEXT_UTIME(handle, handle->conn, fname, NULL) == -1 ) {
DEBUG(0, ("recycle: touching %s failed, reason = %s\n",
fname, strerror(errno)));
}
}
т.е. вызываем utime(file_name, NULL)
В этом случае время не требуется быть владельцем файла, достаточно прав
на запись. Из минусов - изменится не только atime, но и mtime.
Но так хоть можно будет автоматом настроить чистку удаленных скажем пару
дней назад файлов. Пользователи сами этого никогда делать не будут.
--
С уважением,
Олег Гинц
Подробная информация о списке рассылки Samba