LINUX.ORG.RU
решено ФорумAdmin

samba как файловый сервер с авторизацией в ad.

 ,


0

2

Доброго дня.
Попытался настроить, машина в домене. по ssh подключаюсь через ад-ного юзера.
команды wbinfo -u и wbinfo -g показываю доменных пользователей и группы соот.
Но вот беда, никак не хочет корректно стартовать самба.
Моя единственная шара не видна.
Вот что пишется в лог после systemclt restart smb.service:

[2015/06/09 10:39:56.396464,  0] ../lib/util/pidfile.c:153(pidfile_unlink)
  Failed to delete pidfile /run/smbd.pid. Error was No such file or directory
[2015/06/09 10:39:56,  0] ../source3/smbd/server.c:1189(main)
  smbd version 4.1.17 started.
  Copyright Andrew Tridgell and the Samba Team 1992-2013
[2015/06/09 10:39:56,  2] ../source3/lib/tallocmsg.c:124(register_msg_pool_usage)
  Registered MSG_REQ_POOL_USAGE
[2015/06/09 10:39:56,  2] ../source3/lib/dmallocmsg.c:78(register_dmalloc_msgs)
  Registered MSG_REQ_DMALLOC_MARK and LOG_CHANGED
[2015/06/09 10:39:56.428004,  2] ../source3/param/loadparm.c:3582(do_section)
  Processing section "[Public]"
[2015/06/09 10:39:56.428216,  2] ../source3/lib/interface.c:341(add_interface)
  added interface enp1s0 ip=10.1.3.65 bcast=10.1.3.255 netmask=255.255.255.0
[2015/06/09 10:39:56.428335,  0] ../source3/smbd/server.c:1269(main)
  standard input is not a socket, assuming -D option
[2015/06/09 10:39:56.429304,  2] ../source3/passdb/pdb_interface.c:159(make_pdb_method_name)
  No builtin backend found, trying to load plugin
[2015/06/09 10:39:56.432101,  2] ../lib/util/modules.c:191(do_smb_load_module)
  Module 'tdbsam' loaded
[2015/06/09 10:39:56.441075,  0] ../lib/util/become_daemon.c:136(daemon_ready)
  STATUS=daemon 'smbd' finished starting up and ready to serve connectionsFailed to fetch record!
[2015/06/09 10:39:56.471778,  2] ../source3/smbd/server.c:929(smbd_parent_loop)
  waiting for connections
вот доп.инфа:
[root@fedora21 ~]# rpm -qa | grep samba
samba-winbind-4.1.17-1.fc21.x86_64
samba-winbind-clients-4.1.17-1.fc21.x86_64
samba-libs-4.1.17-1.fc21.x86_64
samba-client-4.1.17-1.fc21.x86_64
samba-4.1.17-1.fc21.x86_64
samba-common-4.1.17-1.fc21.x86_64
samba-winbind-modules-4.1.17-1.fc21.x86_64

★★★★★

Ответ на: комментарий от i_gnatenko_brain
[root@fedora21 ~]# testparm 
Load smb config files from /etc/samba/smb.conf
Processing section "[Public]"
Loaded services file OK.
Server role: ROLE_DOMAIN_MEMBER
Press enter to see a dump of your service definitions

[global]
	dos charset = 866
	workgroup = MOIDOMEN
	realm = MOIDOMEN.AZ
	server string = %v samba
	security = ADS
	auth methods = winbind
	obey pam restrictions = Yes
	log file = /var/log/samba/log.%m
	max log size = 50
	name resolve order = hosts, bcast, lmhosts
	client signing = if_required
	socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192
	os level = 0
	local master = No
	domain master = No
	dns proxy = No
	template homedir = /home//%U
	winbind enum users = Yes
	winbind enum groups = Yes
	winbind use default domain = Yes
	idmap config * : range = 10000-20000
	idmap config MOIDOMEN.AZ : range = 10000-40000
	idmap config * : backend = tdb
	case sensitive = No

[Public]
	comment = Public directory
	path = /home/samba/public
	valid users = "@MOIDOMEN.AZ fedoraclients"
	read list = "@MOIDOMEN.AZ fedoraclients"
	write list = "@MOIDOMEN.AZ fedoraclients"
	read only = No
	create mask = 0777
dada ★★★★★ ()
Ответ на: комментарий от dhameoelin

послушался совета анонимуса и запустил через -D. вот что в логи попадает:

  No builtin backend found, trying to load plugin
[2015/06/09 17:39:16.999695,  2] ../lib/util/modules.c:191(do_smb_load_module)
  Module 'tdbsam' loaded
[2015/06/09 17:39:17.059974,  0] ../lib/util/become_daemon.c:136(daemon_ready)
  STATUS=daemon 'smbd' finished starting up and ready to serve connectionsnt_printing_init: error checking published printers: WERR_ACCESS_DENIED
[2015/06/09 17:39:20.066513,  1] ../source3/printing/printer_list.c:226(printer_list_get_last_refresh)
  Failed to fetch record!
[2015/06/09 17:39:20.066604,  2] ../source3/smbd/server.c:929(smbd_parent_loop)
  waiting for connections
[2015/06/09 17:39:20.075221,  2] ../source3/lib/messages_local.c:378(message_notify)
  message to process 5878 failed - No such process
[2015/06/09 17:39:20.075396,  2] ../source3/lib/messages_local.c:468(messaging_tdb_send)
  pid 5878 doesn't exist - deleting messages record
[2015/06/09 17:39:20.075453,  2] ../source3/lib/messages.c:131(traverse_fn)
  pid 5878 doesn't exist

dada ★★★★★ ()
Ответ на: комментарий от dada

name resolve order = hosts, bcast, lmhosts

1. Строчку выше надо без запятых писать. Я использую кстати name resolve order = wins host bcast, иначе samba не хочет использовать альтернативный контроллер домена, и привязывается только к одному, и когда тот падает, всё идет лесом.

2. Используй testparm [-s] для проверки конфигурации.

3. Для логирования есть опция log level, посмотри в документации (man smb.conf), там можно очень гибко управлять логированием. Поставь уровень 5 для начала на всё, потом можно изменить.

4. socket options насколько я знаю, не рекомендуется использовать, хотя это не влияет на собственно подключение.

5. проверь при помощи smbclient -L //server/ подключение к серверу под любой доменной учеткой и посмотри файлы из списка ls -lt /var/log/samba/ | head -5 на предмет подозрительных записей.

Пока больше не придумал.

Kiborg ★★★ ()
Ответ на: комментарий от dada

прав тупо нет к директории, причём права надо как на саму директорию, так и на каталоги выше.

erzent ☆☆ ()
Ответ на: комментарий от dada

сделай для самбы отдельный раздел, поставь туда btrfs и subvol на весь раздел, дай права к директории самбе 777, поставь в fstab

defaults,compress=lzo,subvol=samba

erzent ☆☆ ()
Ответ на: комментарий от erzent
 defaults,compress=lzo,subvol=samba, space_cache, autodefrag 

вот так лучше.

erzent ☆☆ ()

и глянька заодно в /var/log/messages и посмотри, нет ли там что про самбу.

erzent ☆☆ ()
Ответ на: комментарий от i_gnatenko_brain

за что тьму? я сам столкнулся недавно с этой проблемой, не работала шара, всё проверил, оказалось прав не хватало для директории в хомяке. За что изыди?

erzent ☆☆ ()
Ответ на: комментарий от i_gnatenko_brain

а такой конфиг btrfs меня сильно выручил на тендерах, я сильно удивился, когда у пользователей в разы выросла как скорость сохранения документов и тп, ты не представляешь какой это ад, когда 20 человек делают 1 документ.

erzent ☆☆ ()
Ответ на: комментарий от Kiborg

1. Строчку выше надо без запятых писать.

я не знаю почему, но запятые там при выводе testparm появляются. в самом их нет.

2. Используй testparm [-s] для проверки конфигурации.

знаю про эту утилиту. она не выводит ошибок. спасибо

Для логирования есть опция log level

выставил его на 5-ку. выхлоп не изменился.

daemon 'smbd' finished starting up and ready to serve connectionsnt_printing_init: error checking published printers: WERR_ACCESS_DENIED

4. socket options насколько я знаю, не рекомендуется использовать, хотя это не влияет на собственно подключение.

забил на анонимуса. запускаю через systemctl

dada ★★★★★ ()
Ответ на: комментарий от i_gnatenko_brain

отключил еще и принтеры. теперь рестарт самбы вроде не выдает никаких ошибок. вот выхлоп с логлевел 5.

[2015/06/10 09:33:08,  0] ../source3/smbd/server.c:1189(main)
  smbd version 4.1.17 started.
  Copyright Andrew Tridgell and the Samba Team 1992-2013
[2015/06/10 09:33:08,  5] ../lib/util/debug.c:334(debug_dump_status)
  INFO: Current debug levels:
    all: 5
    tdb: 5
    printdrivers: 5
    lanman: 5
    smb: 5
    rpc_parse: 5
    rpc_srv: 5
    rpc_cli: 5
    passdb: 5
    sam: 5
    auth: 5
    winbind: 5
    vfs: 5
    idmap: 5
    quota: 5
    acls: 5
    locking: 5
    msdfs: 5
    dmapi: 5
    registry: 5
    scavenger: 5
    dns: 5
    ldb: 5
  doing parameter socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192
  doing parameter encrypt passwords = yes
  doing parameter idmap config MOIDOMENHO.AZ : range = 10000-40000
  doing parameter idmap config * : range = 40001-50000
  doing parameter auth methods = winbind
  doing parameter name resolve order = hosts bcast lmhosts
  doing parameter case sensitive = no
  doing parameter dns proxy = no
  doing parameter netbios name = FEDORA21
  doing parameter server string = %v samba
  doing parameter realm = MOIDOMENHO.AZ
  doing parameter client use spnego = yes
  doing parameter client signing = yes
  doing parameter local master = no
  doing parameter domain master = no
  doing parameter preferred master = no
  doing parameter workgroup = MOIDOMENHO
  doing parameter debug level = 2
[2015/06/10 09:33:08,  2] ../source3/lib/tallocmsg.c:124(register_msg_pool_usage)
  Registered MSG_REQ_POOL_USAGE
[2015/06/10 09:33:08,  2] ../source3/lib/dmallocmsg.c:78(register_dmalloc_msgs)
  Registered MSG_REQ_DMALLOC_MARK and LOG_CHANGED
[2015/06/10 09:33:08.968108,  5] ../lib/util/debug.c:334(debug_dump_status)
  INFO: Current debug levels:
    all: 5
    tdb: 5
    printdrivers: 5
    lanman: 5
    smb: 5
    rpc_parse: 5
    rpc_srv: 5
    rpc_cli: 5
    passdb: 5
    sam: 5
    auth: 5
    winbind: 5
    vfs: 5
    idmap: 5
    quota: 5
    acls: 5
    locking: 5
    msdfs: 5
    dmapi: 5
    registry: 5
    scavenger: 5
    dns: 5
    ldb: 5
  doing parameter socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192
  doing parameter encrypt passwords = yes
  doing parameter idmap config MOIDOMENHO.AZ : range = 10000-40000
  doing parameter idmap config * : range = 40001-50000
  doing parameter auth methods = winbind
  doing parameter name resolve order = hosts bcast lmhosts
  doing parameter case sensitive = no
  doing parameter dns proxy = no
  doing parameter netbios name = FEDORA21
  doing parameter server string = %v samba
  doing parameter realm = MOIDOMENHO.AZ
  doing parameter client use spnego = yes
  doing parameter client signing = yes
  doing parameter local master = no
  doing parameter domain master = no
  doing parameter preferred master = no
  doing parameter workgroup = MOIDOMENHO
  doing parameter debug level = 2
[2015/06/10 09:33:08.968673,  2] ../source3/param/loadparm.c:3582(do_section)
  Processing section "[Public]"
[2015/06/10 09:33:08.968898,  2] ../source3/lib/interface.c:341(add_interface)
  added interface enp1s0 ip=10.1.3.65 bcast=10.1.3.255 netmask=255.255.255.0
[2015/06/10 09:33:08.969011,  0] ../source3/smbd/server.c:1269(main)
  standard input is not a socket, assuming -D option
[2015/06/10 09:33:08.970066,  2] ../source3/passdb/pdb_interface.c:159(make_pdb_method_name)
  No builtin backend found, trying to load plugin
[2015/06/10 09:33:08.972640,  2] ../lib/util/modules.c:191(do_smb_load_module)
  Module 'tdbsam' loaded
[2015/06/10 09:33:08.984908,  0] ../lib/util/become_daemon.c:136(daemon_ready)
  STATUS=daemon 'smbd' finished starting up and ready to serve connectionswaiting for connections
[2015/06/10 09:34:09.036334,  2] ../source3/smbd/server.c:419(remove_child_pid)
  Could not find child 13242 -- ignoring

dada ★★★★★ ()
Ответ на: комментарий от i_gnatenko_brain

так, у меня все работает уже.
остался один вопрос. указываю директорию, и в параметрах valid users указываю moiuser@moidomen.com
все отрабатывает. а как указать ad-шную группу ?
попытался moyagruppa@moidomen.com - не получилось.

dada ★★★★★ ()
Ответ на: комментарий от i_gnatenko_brain

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

load printers = no
show add printer wizard = no
printcap name = /dev/null
disable spoolss = yes
теперь остался вопрос только с valid users.

dada ★★★★★ ()
Ответ на: комментарий от dada

из man smb.conf

username (S)

           To restrict a service to a particular set of users you can use the valid users parameter.

           This parameter is deprecated

           However, it currently operates only in conjunction with only user. The supported way to restrict a service to a particular set of users is the valid users parameter.

           Default: username =  # The guest account if a guest service, else <empty string>.

           Example: username = fred, mary, jack, jane, @users, @pcgroup
но вот сука, никак не хочет принимать =(

dada ★★★★★ ()
Ответ на: комментарий от dada

This parameter is deprecated
However, it currently operates only in conjunction with only user

anonymous ()
Ответ на: комментарий от dada

А просто группу без домена не пробовал?
Как раз сегодня поднимал одну шару с авторизацией в AD и вышло, что ни domain\user ни user@domain в valid users у меня не проходят( Убунта_чего-то_там, самба 4.1), а когда указываешь пользователя или группу из AD без указания домена прокатывает, но у тебя тогда и пользователь не должен бы работать, по идее.

EvgGad_303 ★★★★★ ()
Последнее исправление: EvgGad_303 (всего исправлений: 1 )
Ответ на: комментарий от EvgGad_303

А просто группу без домена не пробовал?

не, так не пробовал. завтра на работе попробую сообщу.

dada ★★★★★ ()
Ответ на: комментарий от EvgGad_303

вот рабочий конфиг:

 [Public]
 path = /sambadir
 comment = Public directory
 browseable = yes
 readonly = no
 writable = yes
 guest ok = No
 create mask = 0777
 valid users = "@MOIDOMEN.AZ\fedoraclients"
 read list = "@MOIDOMEN.AZ\fedoraclients"
 write list = "@MOIDOMEN.AZ\fedoraclients"
не работало потому, что почему-то машинку выбило из домена. вошел заного, теперь проблем нет.

dada ★★★★★ ()
Ответ на: комментарий от dada

Я пока сам не очень понимаю wtf происходит, может к вечеру удастся подебажить немного, пользователи тоже не локальные.
А покажи свой krb5.conf.
У меня, кстати, без idmap config параметров и winbind enum user|group = no.

EvgGad_303 ★★★★★ ()
Последнее исправление: EvgGad_303 (всего исправлений: 1 )
Ответ на: комментарий от EvgGad_303
[root@fedora21 ~]# cat /etc/krb5.conf
[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 dns_lookup_realm = true
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true
 rdns = false
 default_realm = MOIDOMEN.AZ
 default_ccache_name = KEYRING:persistent:%{uid}

 default_realm = MOIDOMEN.az
 dns_lookup_kdc = true
[realms]
 MOIDOMEN.AZ = {
 kdc = AD1.MOIDOMEN.AZ
 admin_server = AD1.MOIDOMEN.AZ
 default_domain = AD1.MOIDOMEN.AZ
 }
 
[domain_realm]
 MOIDOMEN.az = MOIDOMEN.AZ
 .MOIDOMEN.az = MOIDOMEN.AZ
dada ★★★★★ ()
Ответ на: комментарий от dada

Ок, у меня это сделано так

[libdefaults]
	default_realm = INT.BLAHBLAH.EE
[realms]
int.blahblah.ee = {
	kdc = dc-1.int.blahblah.ee:88
	kdc = dc-2.int.blahblah.ee:88
	default_domain = OLOLO
	admin_server = dc-2.int.blahblah.ee:749
}
[domain_realm]
	.int.blahblah.ee = INT.BLAHBLAH.EE
	.OLOLO = INT.BLAHBLAH.EE

Вот этот OLOLO и есть OLOLO\user_or_group, потому он сам подставляет, осталось понять, почему ему не подходит, когда указываешь домен.

EvgGad_303 ★★★★★ ()
Последнее исправление: EvgGad_303 (всего исправлений: 1 )
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.