samba: не работают logon скрипты от нерутового пользователя

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
MarvinFS
рядовой
Сообщения: 28
Зарегистрирован: 2008-11-26 17:41:01
Откуда: E-burg
Контактная информация:

samba: не работают logon скрипты от нерутового пользователя

Непрочитанное сообщение MarvinFS » 2011-08-05 8:51:56

Уважаемые коллеги,

Есть Samba 3.5.9 и FreeBSD 8.2p1
самба работает в режиме PDC без LDAP
все сервисы работаю хорошо, за исключением:

1. logon script не отрабатывает от обычных пользоветелей (non root) - от рута всё работает и выполняется в любой вариации
причем политики (ntconfig.pol применяются для любых пользователей нормально, а вот логон скрипты только для рута)

Код: Выделить всё

[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 = no

interfaces = 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 = CP1251

        security = user
        log file = /var/log/samba/log.%m

        max log size = 1000
        load printers = No
        printcap name = /dev/null

        domain logons = Yes
        os level = 85
        preferred master = Yes
        domain master = Yes

        idmap uid = 5000-9999
        idmap gid = 5000-9999

        dns proxy = yes
        time server = True
        winbind enum users = Yes
        winbind enum groups = Yes
        winbind use default domain = Yes
        winbind refresh tickets = Yes
        inherit acls = Yes

        wins support = yes

        hosts allow = 192.168., 127.
        map acl inherit = Yes

        printing = bsd
        print command = lpr -r -P'%p' %s
        lpq command = lpq -P'%p'
        lprm command = lprm -P'%p' %j

        case sensitive = No
        hide unreadable = Yes
        veto files = /*.mp3/*.divx/*.avi/*.mp4/*.mpg/*.flac/*.ogg/
        map archive = No
        store dos attributes = Yes

   nt acl support = Yes
   encrypt passwords = Yes

        logon 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
если запускать руками от обычного пользователя по пути \\ancor-srv\netlogon\logon.bat
всё замечательно отрабатывает

права на пути скрипта пробовал разные пока оставил вот такие

Код: Выделить всё

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

2. при попытке смены пароля пользователя в windows xp по CTRL+ALT+DEL (либо когда ставишь галку User Must Change password on next logon)
выдает ошибку что пароль не соответствует требованиям политик пароля, хотя политики все стоят по умолчанию и новый пароль набирается сессно исходя из требований к паролям например Abc1234) в логах при этом появляется запись
[2011/08/05 10:43:22.258811, 1] smbd/chgpasswd.c:1205(change_oem_password)
change_oem_password: check password script said new password is not good enough!

Код: Выделить всё

[root@ancor-srv /usr/local/etc]# pdbedit -P ?
Account policy names are:
min password length 6
password history 0
user must logon to change password 0
maximum password age 0
minimum password age 0
lockout duration 0
reset count minutes 0
bad lockout attempt 0
disconnect time 0
refuse machine password change 0
пожалуйста помогите, гуглил последние 2 дня ничего нет, только упоминания на буржуйских сайтах о подобных проблемах пару штук без каких либо решений!!!
Последний раз редактировалось f_andrey 2011-08-05 10:50:14, всего редактировалось 1 раз.
Причина: Автору, выбирайте пожалуйста раздел соответствуюший тематике вашего сообщения.
CU round,
MarvinFS

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
MarvinFS
рядовой
Сообщения: 28
Зарегистрирован: 2008-11-26 17:41:01
Откуда: E-burg
Контактная информация:

Re: samba: не работают logon скрипты от нерутового пользоват

Непрочитанное сообщение MarvinFS » 2011-08-05 8:59:03

c паролем решил вопрос... сам лох не проверил check password скрипт - его тупо нет... а вот с логон скриптами что-то завис
CU round,
MarvinFS

snorlov
подполковник
Сообщения: 3927
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Re: samba: не работают logon скрипты от нерутового пользоват

Непрочитанное сообщение snorlov » 2011-08-05 11:00:56

Я бы маску на netlogon поставил бы в 0666

Аватара пользователя
MarvinFS
рядовой
Сообщения: 28
Зарегистрирован: 2008-11-26 17:41:01
Откуда: E-burg
Контактная информация:

Re: samba: не работают logon скрипты от нерутового пользоват

Непрочитанное сообщение MarvinFS » 2011-08-05 11:22:32

ну права 777 явно больше... понятно что лучше 666 поставить
CU round,
MarvinFS

snorlov
подполковник
Сообщения: 3927
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Re: samba: не работают logon скрипты от нерутового пользоват

Непрочитанное сообщение snorlov » 2011-08-05 11:39:19

MarvinFS писал(а):ну права 777 явно больше... понятно что лучше 666 поставить
Наврал, у меня на netlogon стоит

Код: Выделить всё

admin users=@"Domain admins"
а на сам каталог netlogon root:wheel c маской 0775

Аватара пользователя
MarvinFS
рядовой
Сообщения: 28
Зарегистрирован: 2008-11-26 17:41:01
Откуда: E-burg
Контактная информация:

Re: samba: не работают logon скрипты от нерутового пользоват

Непрочитанное сообщение MarvinFS » 2011-08-05 12:10:02

Наврал, у меня на netlogon стоит

Код: Выделить всё
admin users=@"Domain admins"


а на сам каталог netlogon root:wheel c маской 0775
это ставится по умолчанию, если не играца с правами
CU round,
MarvinFS

princeps
майор
Сообщения: 2684
Зарегистрирован: 2007-09-25 10:20:59
Откуда: Сочи, Москва
Контактная информация:

Re: samba: не работают logon скрипты от нерутового пользоват

Непрочитанное сообщение princeps » 2011-08-05 15:23:42

У меня та же беда, кроме админов никто не подхватывает скрипты. Права на нетлогон 777.
Deus quos vult perdere dementat prius
http://www.itforum-sochi.ru

Аватара пользователя
MarvinFS
рядовой
Сообщения: 28
Зарегистрирован: 2008-11-26 17:41:01
Откуда: E-burg
Контактная информация:

Re: samba: не работают logon скрипты от нерутового пользоват

Непрочитанное сообщение MarvinFS » 2011-08-06 0:20:19

Есть решение? Кто-нибудь? Коммитеры?
ведь проблема существует... еще лисяра о ней упоминал в своей статье о причинах выбора версии 3.0 самбы


и как бэ все забили? а между тем думаю проблема не стоит и двух байтов!
CU round,
MarvinFS

Аватара пользователя
MarvinFS
рядовой
Сообщения: 28
Зарегистрирован: 2008-11-26 17:41:01
Откуда: E-burg
Контактная информация:

Re: samba: не работают logon скрипты от нерутового пользоват

Непрочитанное сообщение MarvinFS » 2011-08-06 8:45:40

при включении дебаггинга картина становится яснее:
при логине нерутовым пользователем парсинг имени логон скрипта из конфига идет неправильно (почему то в имя файла подставляется полный путь да еще с кривыми слэшами) поэтому оно говорит файлнотфаунд и отваливается
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


вопрос, что делать кому писать куда звонить?

дебаг вывод при логине нерутовым пользователем:

Код: Выделить всё

--
[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
CU round,
MarvinFS

Аватара пользователя
MarvinFS
рядовой
Сообщения: 28
Зарегистрирован: 2008-11-26 17:41:01
Откуда: E-burg
Контактная информация:

Re: samba: не работают logon скрипты от нерутового пользоват

Непрочитанное сообщение MarvinFS » 2011-08-06 10:28:42

ага... если указать в USER MANAGER (гуишная MSовская тулза для управления доменом NT4) для каждого пользователя в свойствах напрямую логон скрипт logon.bat то всё работает... меня как бы не напрягает прописать всем его прокликать, но тем не менее почему оно так странно работает из глобального конфига
CU round,
MarvinFS

princeps
майор
Сообщения: 2684
Зарегистрирован: 2007-09-25 10:20:59
Откуда: Сочи, Москва
Контактная информация:

Re: samba: не работают logon скрипты от нерутового пользоват

Непрочитанное сообщение princeps » 2011-08-06 11:46:41

надо в исходниках поглядеть из-за чего такая бодяга.
Deus quos vult perdere dementat prius
http://www.itforum-sochi.ru

princeps
майор
Сообщения: 2684
Зарегистрирован: 2007-09-25 10:20:59
Откуда: Сочи, Москва
Контактная информация:

Re: samba: не работают logon скрипты от нерутового пользоват

Непрочитанное сообщение princeps » 2011-08-08 19:50:49

у меня заработало следующим образом: перенёс шару нетлогон из /usr/local/etc/samba/netlogon (так было в статье) в /home/netlogon. Где-то давно читал, что проблема кроется в том, что все каталоги в иерархии нетлогона должны быть доступны на чтение юзеру, может в этом дело. Блин, ведь сталкивался уже с таким косяком, записывать надо.
Deus quos vult perdere dementat prius
http://www.itforum-sochi.ru