Есть Samba 3.5.9 и FreeBSD 8.2p1
самба работает в режиме PDC без LDAP
все сервисы работаю хорошо, за исключением тогоlogon script не отрабатывает от обычных пользоветелей (non root) - от рута всё работает и выполняется в любой вариации
причем политики (ntconfig.pol применяются для любых пользователей нормально, а вот логон скрипты только для рута)если запускать руками от обычного пользователя по полному пути \\ancor-srv\netlogon\logon.bat - всё замечательно отрабатывает
при включении дебаггинга картина становится яснее:
при логине нерутовым пользователем парсинг имени логон скрипта из конфига идет неправильно (почему то в имя файла подставляется полный путь да еще с кривыми слэшами) поэтому оно говорит файлнотфаунд и отваливается
unix_convert called on file "ancor-srv/netlogon/logon.bat"
unix_convert begin: name = ancor-srv/netlogon/logon.bat, dirpath = , start = ancor-srv/netlogon/logon.bat
Intermediate not found ancor-srvпри логине рутом - всё нормельно имя логон скрипта парсится нормально и работает
unix_convert called on file "logon.bat"
unix_convert begin: name = logon.bat, dirpath = , start = logon.bat
stat_cache_add: Added entry (21f694e0:size 9) LOGON.BAT -> logon.bat
conversion of base_name finished logon.bat -> logon.bat
check_reduced_name [logon.bat] [/mnt/750g/netlogon]
check_reduced_name: logon.bat reduced to /mnt/750g/netlogon/logon.bat
call_trans2qfilepathinfo logon.bat (fnum = -1) level=1004 call=5 total_data=0
вопрос, что делать кому писать куда звонить?конфиг права на папку и дебаг выводы ниже
[global]
socket options=SO_RCVBUF=131072 SO_SNDBUF=131072 TCP_NODELAY
min receivefile size=16384
use sendfile=true
aio read size = 16384
aio write size = 16384
aio write behind = true
dns proxy = nointerfaces = 192.168.1.105 127.0.0.1
passdb backend = tdbsam:/usr/local/etc/samba/passdb.tdb
workgroup = ATLANTA
netbios name = ANCOR-SRV
realm = ATLANTA.LOCAL
server string = ANCOR-SRV
dos charset = cp866
unix charset = CP1251
display charset = CP1251security = user
log file = /var/log/samba/log.%mmax log size = 1000
load printers = No
printcap name = /dev/nulldomain logons = Yes
os level = 85
preferred master = Yes
domain master = Yesidmap uid = 5000-9999
idmap gid = 5000-9999dns proxy = yes
time server = True
winbind enum users = Yes
winbind enum groups = Yes
winbind use default domain = Yes
winbind refresh tickets = Yes
inherit acls = Yeswins support = yes
hosts allow = 192.168., 127.
map acl inherit = Yesprinting = bsd
print command = lpr -r -P'%p' %s
lpq command = lpq -P'%p'
lprm command = lprm -P'%p' %jcase sensitive = No
hide unreadable = Yes
veto files = /*.mp3/*.divx/*.avi/*.mp4/*.mpg/*.flac/*.ogg/
map archive = No
store dos attributes = Yesnt acl support = Yes
encrypt passwords = Yeslogon path =
logon drive =
logon home =
template homedir =
admin users = "@ATLANTA\Domain Admins"logon script = logon.bat
#пробовал и такой вариант
# logon script = /mnt/750g/netlogon/logon.bat# Скрипт добавления пользователя
add user script = /usr/local/etc/samba/add_user_script.sh "%u"
# Скрипт удаления пользователя
delete user script = /usr/sbin/pw userdel "%u" -r
# Скрипт переименованя пользователя
# (следующие две строки - на самом деле одна. невлезает ..)
rename user script = /usr/local/etc/samba/rename_user_script.sh "%uold" "%unew"
# Скрипт перезапуска самбы (Вообще, в man smb.conf, предлагается
# ребутить или класть всю машину. Перебор, по моему... Хотя -
# у меня это не работает. Такчто - пофиг.)
shutdown script = /usr/local/etc/samba/shutdown_script.sh
# Скрипт добавления новой группы
add group script = /usr/sbin/pw groupadd "%g"
# Скрипт удаления группы
delete group script = /usr/sbin/pw groupdel "%g"
# Скрипт добавления пользователя в группу
# (следующие две строки - это одна, в ширину сайта на вписывается)
add user to group script = /usr/local/etc/samba/add_user_to_group_script.sh "%g" "%u"
# Скрипт установки первичной группы для пользователя
set primary group script = /usr/sbin/pw usermod "%u" -g "%g"
# Скрипт удаления пользователя из группы
# (следующие две строки - это одна, в ширину сайта на вписывается)
delete user from group script = /usr/local/etc/samba/delete_user_from_group_script.sh "%g" "%u"
# Скрпит для добавления аккаунта компьютера
add machine script = /usr/local/etc/samba/add_machine_script.sh "%u"
# Скрипт проверки пароля (чтобы не пихали 12345 и прочее. Должен вернуть 0
# если пароль нормальный, и что-то другое - если нет. Пароль передаётся
# на стандартный ввод скрпита)
# check password script = /path/to/password/check/script.sh
# Скрпит - чё елать при получении сообщений по winpopup (из man`a)
message command = /bin/mail -s 'message from %f on %m' root < %s; rm %s
#smb passwd file = /usr/local/etc/samba/smbpasswd
#unix password sync = no
#passwd program = /usr/bin/passwd %u
#passwd chat = *New*password* %n\n *Please*retype*new*password* %n\n *password*successfully*updated*[IPC$]
path = /tmp
[print$]
comment = Printer Drivers Share
path = /mnt/750g/drivers[netlogon]
path = /mnt/750g/netlogon
# admin users = "@ATLANTA\Domain Users"
read only = no
browseable = yes
guest ok=yesправа на пути скрипта пробовал разные пока оставил вот такие
root@ancor-srv /usr/local/etc]# ls -la /mnt/750g/
total 14
drwxr-xr-x 7 root wheel 512 Aug 3 15:37 .
drwxr-xr-x 3 root wheel 512 Aug 3 09:58 ..
drwxrwxrwx 2 root ntusers 512 Aug 4 13:40 netlogon[root@ancor-srv /usr/local/etc]# ls -la /mnt/750g/netlogon/
total 282
drwxrwxrwx 2 root ntusers 512 Aug 4 13:40 .
drwxr-xr-x 7 root wheel 512 Aug 3 15:37 ..
-rwxrwxrwx 1 root ntusers 733 Aug 4 10:35 defprinter.vbs
-rwxrwxrwx 1 root ntusers 289 Aug 4 13:40 logon.bat
-rwxrwxrwx 1 root ntusers 262144 Aug 4 13:53 ntconfig.polдебаг вывод при логине нерутовым пользователем:
[2011/08/06 11:04:02.138601, 3] smbd/vfs.c:881(check_reduced_name)
check_reduced_name [.] [/mnt/750g/netlogon]
[2011/08/06 11:04:02.139054, 3] smbd/vfs.c:1038(check_reduced_name)
check_reduced_name: . reduced to /mnt/750g/netlogon
[2011/08/06 11:04:02.139788, 3] smbd/trans2.c:5226(call_trans2qfilepathinfo)
--
[2011/08/06 11:04:02.268182, 5] smbd/filename.c:169(unix_convert)
unix_convert called on file "ancor-srv/netlogon/logon.bat"
[2011/08/06 11:04:02.268632, 5] smbd/filename.c:328(unix_convert)
unix_convert begin: name = ancor-srv/netlogon/logon.bat, dirpath = , start = ancor-srv/netlogon/logon.bat
[2011/08/06 11:04:02.269712, 5] smbd/filename.c:547(unix_convert)
Intermediate not found ancor-srv
[2011/08/06 11:04:02.270271, 3] smbd/error.c:80(error_packet_set)
error packet at smbd/trans2.c(5129) cmd=50 (SMBtrans2) NT_STATUS_OBJECT_PATH_NOT_FOUND
--дебаг вывод при логине рутовым пользователем:
[2011/08/06 11:30:54.449610, 3] smbd/vfs.c:881(check_reduced_name)
check_reduced_name [.] [/mnt/750g/netlogon]
[2011/08/06 11:30:54.450091, 3] smbd/vfs.c:1038(check_reduced_name)
check_reduced_name: . reduced to /mnt/750g/netlogon
[2011/08/06 11:30:54.450866, 3] smbd/trans2.c:5226(call_trans2qfilepathinfo)
--
[2011/08/06 11:30:54.497519, 3] smbd/vfs.c:881(check_reduced_name)
check_reduced_name [.] [/mnt/750g/netlogon]
[2011/08/06 11:30:54.498003, 3] smbd/vfs.c:1038(check_reduced_name)
check_reduced_name: . reduced to /mnt/750g/netlogon
[2011/08/06 11:30:54.498775, 3] smbd/trans2.c:5226(call_trans2qfilepathinfo)
--
[2011/08/06 11:30:54.622072, 5] smbd/filename.c:169(unix_convert)
unix_convert called on file "logon.bat"
[2011/08/06 11:30:54.622532, 5] smbd/filename.c:328(unix_convert)
unix_convert begin: name = logon.bat, dirpath = , start = logon.bat
[2011/08/06 11:30:54.623341, 5] smbd/statcache.c:138(stat_cache_add)
stat_cache_add: Added entry (21f694e0:size 9) LOGON.BAT -> logon.bat
[2011/08/06 11:30:54.624078, 5] smbd/filename.c:351(unix_convert)
conversion of base_name finished logon.bat -> logon.bat
[2011/08/06 11:30:54.624846, 3] smbd/vfs.c:881(check_reduced_name)
check_reduced_name [logon.bat] [/mnt/750g/netlogon]
[2011/08/06 11:30:54.625669, 3] smbd/vfs.c:1038(check_reduced_name)
check_reduced_name: logon.bat reduced to /mnt/750g/netlogon/logon.bat
[2011/08/06 11:30:54.626443, 3] smbd/trans2.c:5226(call_trans2qfilepathinfo)
call_trans2qfilepathinfo logon.bat (fnum = -1) level=1004 call=5 total_data=0
[2011/08/06 11:30:54.627195, 5] smbd/trans2.c:4198(smbd_do_qfilepathinfo)
smbd_do_qfilepathinfo: logon.bat (fnum = -1) level=1004 max_data=40
[2011/08/06 11:30:54.628269, 5] smbd/trans2.c:4442(smbd_do_qfilepathinfo)
--
Intermediate not found RECYCLER
[2011/08/06 11:30:56.058036, 3] smbd/error.c:80(error_packet_set)
error packet at smbd/trans2.c(5129) cmd=50 (SMBtrans2) NT_STATUS_OBJECT_PATH_NOT_FOUND
--
[2011/08/06 11:30:56.622520, 4] smbd/vfs.c:751(vfs_ChDir)
vfs_ChDir to /mnt/750g/netlogon
[2011/08/06 11:30:56.622628, 5] smbd/filename.c:169(unix_convert)
unix_convert called on file "logon.bat"
[2011/08/06 11:30:56.622766, 3] smbd/vfs.c:881(check_reduced_name)
check_reduced_name [logon.bat] [/mnt/750g/netlogon]
[2011/08/06 11:30:56.622866, 3] smbd/vfs.c:1038(check_reduced_name)
check_reduced_name: logon.bat reduced to /mnt/750g/netlogon/logon.bat
[2011/08/06 11:30:56.622937, 3] smbd/vfs.c:881(check_reduced_name)
check_reduced_name [logon.bat] [/mnt/750g/netlogon]
[2011/08/06 11:30:56.623016, 3] smbd/vfs.c:1038(check_reduced_name)
check_reduced_name: logon.bat reduced to /mnt/750g/netlogon/logon.bat
[2011/08/06 11:30:56.623069, 5] smbd/files.c:119(file_new)
--
[2011/08/06 11:30:56.623106, 3] smbd/dosmode.c:166(unix_mode)
unix_mode(logon.bat) returning 0644
[2011/08/06 11:30:56.623152, 3] smbd/vfs.c:881(check_reduced_name)
check_reduced_name [logon.bat] [/mnt/750g/netlogon]
[2011/08/06 11:30:56.623231, 3] smbd/vfs.c:1038(check_reduced_name)
check_reduced_name: logon.bat reduced to /mnt/750g/netlogon/logon.bat
[2011/08/06 11:30:56.623400, 4] smbd/open.c:1990(open_file_ntcreate)
--
[2011/08/06 11:30:56.623511, 2] smbd/open.c:647(open_file)
root opened file logon.bat read=Yes write=No (numopen=2)
[2011/08/06 11:30:56.623556, 5] smbd/oplock.c:86(set_file_oplock)
set_file_oplock: granted oplock on file logon.bat, 62:4ddf402:0/8, tv_sec = 4e3cd190, tv_usec = 981d7
[2011/08/06 11:30:56.623824, 5] smbd/nttrans.c:722(reply_ntcreate_and_X)
reply_ntcreate_and_X: fnum = 10135, open name = logon.bat
[2011/08/06 11:30:56.624400, 3] smbd/process.c:1489(process_smb)
--
[2011/08/06 11:30:56.624812, 3] smbd/trans2.c:5226(call_trans2qfilepathinfo)
call_trans2qfilepathinfo logon.bat (fnum = 10135) level=1006 call=7 total_data=0
[2011/08/06 11:30:56.624852, 5] smbd/trans2.c:4198(smbd_do_qfilepathinfo)
smbd_do_qfilepathinfo: logon.bat (fnum = 10135) level=1006 max_data=8
[2011/08/06 11:30:56.625017, 5] lib/util.c:617(show_msg)
--
[2011/08/06 11:30:56.626864, 5] smbd/filename.c:169(unix_convert)
unix_convert called on file "logon.bat"
[2011/08/06 11:30:56.626985, 3] smbd/vfs.c:881(check_reduced_name)
check_reduced_name [logon.bat] [/mnt/750g/netlogon]
[2011/08/06 11:30:56.627088, 3] smbd/vfs.c:1038(check_reduced_name)
check_reduced_name: logon.bat reduced to /mnt/750g/netlogon/logon.bat
[2011/08/06 11:30:56.627132, 5] smbd/trans2.c:2333(call_trans2findfirst)
dir=./, mask = logon.bat
[2011/08/06 11:30:56.627162, 5] smbd/dir.c:423(dptr_create)
--
[2011/08/06 11:30:56.627200, 3] smbd/vfs.c:881(check_reduced_name)
check_reduced_name [./] [/mnt/750g/netlogon]
[2011/08/06 11:30:56.627236, 3] smbd/vfs.c:1038(check_reduced_name)
check_reduced_name: ./ reduced to /mnt/750g/netlogon
[2011/08/06 11:30:56.627341, 3] smbd/dir.c:544(dptr_create)
--
[2011/08/06 11:30:56.627390, 4] smbd/trans2.c:2400(call_trans2findfirst)
dptr_num is 256, wcard = logon.bat, attr = 22
[2011/08/06 11:30:56.627648, 3] smbd/dir.c:993(smbd_dirptr_get_entry)
smbd_dirptr_get_entry mask=[logon.bat] found ./logon.bat fname=logon.bat (logon.bat)
[2011/08/06 11:30:56.627730, 5] smbd/trans2.c:2466(call_trans2findfirst)
--
[2011/08/06 11:30:56.628072, 4] smbd/trans2.c:2510(call_trans2findfirst)
SMBtrans2 mask=logon.bat directory=./ dirtype=22 numentries=1
[2011/08/06 11:30:56.629719, 3] smbd/process.c:1489(process_smb)
--
[2011/08/06 11:30:56.807004, 5] smbd/filename.c:169(unix_convert)
unix_convert called on file "logon.bat"
[2011/08/06 11:30:56.807113, 3] smbd/vfs.c:881(check_reduced_name)
check_reduced_name [logon.bat] [/mnt/750g/netlogon]
[2011/08/06 11:30:56.807221, 3] smbd/vfs.c:1038(check_reduced_name)
check_reduced_name: logon.bat reduced to /mnt/750g/netlogon/logon.bat
[2011/08/06 11:30:56.807288, 3] smbd/vfs.c:881(check_reduced_name)
check_reduced_name [logon.bat] [/mnt/750g/netlogon]
[2011/08/06 11:30:56.807374, 3] smbd/vfs.c:1038(check_reduced_name)
check_reduced_name: logon.bat reduced to /mnt/750g/netlogon/logon.bat
ага... если указать в USER MANAGER (гуишная MSовская тулза для управления доменом NT4) для каждого пользователя в свойствах напрямую логон скрипт logon.bat то всё работает... меня как бы не напрягает прописать всем его прокликать, но тем не менее почему оно так странно работает из глобального конфига