URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID14
Нить номер: 1258
[ Назад ]

Исходное сообщение
"Veto Files наоборот"

Отправлено Alba , 21-Мрт-07 16:47 
кровь из носу нужны исключения из veto files (запретить всё, кроме...), но, судя по мануалу, самба этого не умеет... какие способы существуют это сделать?

Содержание

Сообщения в этом обсуждении
"Veto Files наоборот"
Отправлено Alba , 25-Мрт-07 15:02 
видимо нереально?

"Veto Files наоборот"
Отправлено Игорь Фролов , 02-Апр-07 14:04 
>видимо нереально?

В принципе реально. Но нештатными средствами (изменением конфигов). Как вариант пересобрать самбу, изменив макрос в

source/include/smb_macros.h

сейчас там:

#define IS_VETO_PATH(conn,path)  ((conn) && is_in_path((path),(conn)->veto_list,(conn)->case_sensitive))

можно изменить на

#define IS_VETO_PATH(conn,path)  ((conn) && !is_in_path((path),(conn)->veto_list,(conn)->case_sensitive))

и тогда по идее veto files будет действовать наоборот. Не проверено!!

tutankhamun[dog]inbox[dot]ru


"Veto Files наоборот"
Отправлено TEMAndroid , 05-Апр-07 17:18 
>>видимо нереально?
>
>В принципе реально. Но нештатными средствами (изменением конфигов). Как вариант пересобрать самбу,
>изменив макрос в
>
>source/include/smb_macros.h
>
>сейчас там:
>
>#define IS_VETO_PATH(conn,path)  ((conn) && is_in_path((path),(conn)->veto_list,(conn)->case_sensitive))
>
>можно изменить на
>
>#define IS_VETO_PATH(conn,path)  ((conn) && !is_in_path((path),(conn)->veto_list,(conn)->case_sensitive))
>
>и тогда по идее veto files будет действовать наоборот. Не проверено!!
>
>tutankhamun[dog]inbox[dot]ru

Попробовали, суть работает, толкьо не показывает содержимое папки, и дает создавать файлы и папке только по указанной маске. то есть впринципе нереально прописать всевозможные папки :)
Сидим ковыряем... может получится :)


"Veto Files наоборот"
Отправлено TEMAndroid , 06-Апр-07 01:18 
Сейчас доправили в файле smbd/filename.c в функции check_name
if (!((name[0] == '*') || (name[0] == '.') && (!name[1] || ((name[1] == '.' || name[1] == '/' ) && !name[2])))) {
DEBUG(5,("file path name %s vetoed\n",name));
errno = ENOENT;
return True;
Теперь показывает все что разршено... осталось придумать условие чтобы имена папок можно было игнорировать...

"Veto Files наоборот"
Отправлено Joneg , 11-Апр-10 14:06 
>Сейчас доправили в файле smbd/filename.c в функции check_name
>if (!((name[0] == '*') || (name[0] == '.') && (!name[1] || ((name[1]
>== '.' || name[1] == '/' ) && !name[2])))) {
>DEBUG(5,("file path name %s vetoed\n",name));
>errno = ENOENT;
>return True;
>Теперь показывает все что разршено... осталось придумать условие чтобы имена папок можно
>было игнорировать...

Удалось вам добиться задуманного?
Как решили проблему с именами диррикторий?
Все шаги ваши повторил, хотелось бы ещё добиться, чтобы если неразрешённые файлы в папке есть, то они всеравно бы отображались.


"Veto Files наоборот"
Отправлено pavel_simple , 06-Апр-07 06:44 
я вот что подумал, может acl + ntfs права в данном случае самое то. или я неправильно думаю.
поставил шару, на неё права по умолчанию...