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

Исходное сообщение
"samba 3.5.9: не работают логон скрипты из под нерутовы юзеров"

Отправлено MarvinFS , 06-Авг-11 10:12 
Есть 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 = 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

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

    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


Содержание

Сообщения в этом обсуждении
"samba 3.5.9: не работают логон скрипты из под нерутовы юзеров"
Отправлено MarvinFS , 06-Авг-11 11:29 
ага... если указать в USER MANAGER (гуишная MSовская тулза для управления доменом NT4) для каждого пользователя в свойствах напрямую логон скрипт logon.bat то всё работает... меня как бы не напрягает прописать всем его прокликать, но тем не менее почему оно так странно работает из глобального конфига