кровь из носу нужны исключения из veto files (запретить всё, кроме...), но, судя по мануалу, самба этого не умеет... какие способы существуют это сделать?
видимо нереально?
>видимо нереально?В принципе реально. Но нештатными средствами (изменением конфигов). Как вариант пересобрать самбу, изменив макрос в
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
>>видимо нереально?
>
>В принципе реально. Но нештатными средствами (изменением конфигов). Как вариант пересобрать самбу,
>изменив макрос в
>
>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Попробовали, суть работает, толкьо не показывает содержимое папки, и дает создавать файлы и папке только по указанной маске. то есть впринципе нереально прописать всевозможные папки :)
Сидим ковыряем... может получится :)
Сейчас доправили в файле 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;
Теперь показывает все что разршено... осталось придумать условие чтобы имена папок можно было игнорировать...
>Сейчас доправили в файле 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;
>Теперь показывает все что разршено... осталось придумать условие чтобы имена папок можно
>было игнорировать...Удалось вам добиться задуманного?
Как решили проблему с именами диррикторий?
Все шаги ваши повторил, хотелось бы ещё добиться, чтобы если неразрешённые файлы в папке есть, то они всеравно бы отображались.
я вот что подумал, может acl + ntfs права в данном случае самое то. или я неправильно думаю.
поставил шару, на неё права по умолчанию...