Приветствую!Имеется следующая проблема: в сетевых шарах права на группу не работают.
Для примера, возьму шару scan:
# ls -la /data/scan/| grep test1
drwxrwx--- 2 root users 4096 дек 8 10:43 test1Пытаюсь зайти из винды в эту шару: \\fileskladtest\scan\test1. Юзером, принадлежащим группе users:
Windows не может получить доступ к \\fileskladtest\scan\test1
Разрешение на доступ к \\fileskladtest\scan\test1 отсутствует.То же самое через консоль:
C:\>net use \\fileskladtest\scan\test1 /user:tu3
Недействительный пароль для \\fileskladtest\scan\test1.Введите пароль для 'tu3' для подключения к 'fileskladtest':
Системная ошибка 5.Отказано в доступе.
Хотя пароль правильный. В просто \scan пускает
У юзера права на группу есть:
# id tu3
uid=100278(tu3) gid=100(users) группы=100(users),1018(*****),1010(*****)
Если сменить владельца test1 на tu3 или дать на test1 права 777, то каталог test1 пускает.Моя конфигурация:
домен - spec, он же spec.local. Работает под управлением виндовых DC 2008 R2, домен 2008. UID-GID цепляются через SFU, настроенную на виндовых DC, как UNIX-атрибуты.
Проблемный сервер - centos 7. Член домена, не DC.
# uname -a
Linux fileskladtest.spec.local 3.10.0-327.18.2.el7.x86_64 #1 SMP Thu May 12 11:03:55 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
# smbd -V
Version 4.2.10
Авторизация в домене - kerberos, вроде с ней все ок.
getent passwd и getent group настроены по ldap и выдают список сначала локальных, а потом доменных юзеров и групп. Юзеры в группах перечислены, все UID-GID правильные.Конфиги с моей конфигурацией:
# cat /etc/samba/smb.conf | grep -v '^#' | grep -v '^;' | grep -v '^$'
[global]
workgroup = SPEC
realm = SPEC.LOCAL
security = ads
template homedir = /home/%U
template shell = /bin/bash
kerberos method = secrets only
winbind use default domain = true
winbind offline logon = false
idmap config * : backend = ad
idmap config * : range = 0-9999999
idmap config * : schema_mode = sfu
auth methods = winbind
server string = Samba Server Version %v
netbios name = FILESKLADTEST
hosts allow = 127. 192.168.
# log files split per-machine:
log file = /var/log/samba/log.%m
# maximum size of 50KB per log file, then rotate:
max log size = 50000
log level = 0 vfs:2
syslog = 0vfs objects = full_audit
full_audit:prefix = %u|%I|%S
full_audit:facility = local5
full_audit:priority = notice
full_audit:success = none
full_audit:failure = none
load printers = no
# obtain a list of printers automatically on UNIX System V systems:
disable spoolss = Yes
show add printer wizard = No
read only = No
create mask = 0666
directory mask = 0777
map to guest = Bad User
logon path = \\%L\profiles\.msprofile
logon home = \\%L\%U\.9xprofile
logon drive = P:
usershare allow guests = No
[scan]
comment = Сканированные документы
path = /data/scan
full_audit:success = all
full_audit:failure = all# cat /etc/nslcd.conf | grep -v '^#' | grep -v '^;' | grep -v '^$'
uid nslcd
gid ldap
uri ldap://dc5.spec.local
uri ldap://dc1.spec.local
uri ldap://dc2.spec.local
uri ldap://dc4.spec.local
ldap_version 3
base dc=spec,dc=local
binddn CN=unix,OU=Scripts,DC=SPEC,DC=LOCAL
bindpw ***paSsWoRd***
scope sub
filter passwd (objectClass=User)
map passwd uid msSFU30Name
map passwd homeDirectory unixHomeDirectory
filter shadow (objectClass=User)
filter group (objectClass=Group)
ssl no
tls_cacertdir /etc/openldap/cacerts# cat /etc/krb5.conf | grep -v '^#' | grep -v '^;' | grep -v '^$'
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
dns_lookup_realm = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
rdns = false
default_ccache_name = KEYRING:persistent:%{uid}
default_realm = SPEC.LOCAL
clockskew = 3600
[realms]
SPEC.LOCAL = {
kdc = dc5.spec.local
kdc = dc1.spec.local
kdc = dc2.spec.local
kdc = dc4.spec.local
admin_server = dc5.spec.local
}
DC5.SPEC.LOCAL = {
kdc = dc5.spec.local
admin_server = dc5.spec.local
}
SPEC.LOCAL = {
kdc = spec.local
admin_server = spec.local
kdc = spec.local
}
[domain_realm]
spec.local = spec.local
.spec.local = spec.local
dc1.spec.local = DC1.SPEC.LOCAL
.dc1.spec.local = DC1.SPEC.LOCAL
dc5.spec.local = DC5.SPEC.LOCAL
.dc5.spec.local = DC5.SPEC.LOCAL# cat /etc/nsswitch.conf | grep -v '^#' | grep -v '^;' | grep -v '^$'
passwd: files ldap
shadow: files
group: files ldap
hosts: files dns
bootparams: nisplus [NOTFOUND=return] files
ethers: files
netmasks: files
networks: files
protocols: files
rpc: files
services: files sss
netgroup: files sss ldap
publickey: nisplus
automount: files ldap
aliases: files nisplustestparm -s /etc/samba/smb.conf ошибок не выдает.
Вроде, все должно быть ок, единственный нюанс, который не удалось победить:
wbinfo -u показывает пустой вывод.
Впрочем, wbinfo -g показывает список всех групп.
Не знаю, имеет ли это какое-то отношение к проблеме.Логи включал, там по проблеме ни слова. Только то, что мол, все права есть, все ок.
Уже кучу времени убил на проблему, все кажется перепроверил, сейчас даже не понимаю, куда копать.
В гугле - либо неверный вывод getent, либо авторизация кривая, либо еще что. У меня-то вроде все на месте.
Кроме этого сервера, есть еще несколько древних с gentoo и samba 3, на них группы работают. Но там вроде перекомпилировали модуль бекэнда для idmap или что-то вроде того, уже не помнит никто, что и зачем, да и проблема относилась вроде к баге с той древней самбой...
Есть подозрение, что что-то недокрутил с маппингом SFU, но понятия не имею, что докручивать.
Хотя getent passwd и getent group показывают правильные uid и gid.Но в старой успешно работающей самбе конфиг такой:
pam_login_attribute sAMAccountName
pam_lookup_policy yes
pam_password ad
pam_password crypt
nss_initgroups_ignoreusers root,ldap
nss_schema rfc2307bis
nss_map_attribute uniqueMember member
nss_map_objectclass posixAccount User
nss_map_objectclass shadowAccount User
nss_map_attribute uid msSFU30Name
nss_map_attribute uniqueMember msSFU30PosixMember
nss_map_attribute userPassword unixUserPassword
nss_map_attribute homeDirectory unixHomeDirectory
nss_map_objectclass posixGroup Group
pam_login_attribute msSFU30Name
pam_filter objectclass=User
pam_password ad
nss_map_attribute uidNumber uidNumber
nss_map_attribute gidNumber gidNumber
nss_map_attribute cn sAMAccountName
nss_map_attribute gecos name
nss_map_attribute loginShell loginShell
ssl offЯ попробовал добавить на проблемный сервер:
map group gidNumber gidNumber
или
map group gidNumber gid
- ничего не изменилось, как не работало, так и не работает авторизация по группам. Куда еще смотреть?