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

Исходное сообщение
"Не работает getent "

Отправлено Ilya_opennet , 23-Дек-08 10:32 
Добрый день,

В сети есть контроллер домена  Win2003.
На Linux-компьютере необходимо получать список пользователей и список групп командой getent.

#getent passwd
выдаёт только список локальных пользователей. getent group - только список локальных групп.

#wbinfo -u
выдаёт список доменных пользователей. wbinfo -g - список доменных групп.


Система: Ubuntu 8.10, Samba Version 3.2.3

# cat /etc/nsswitch.conf | grep -v "^#" | grep -e "[a-zA-Z]"
passwd:         compat winbind
group:          compat winbind
shadow:         compat
hosts:          files dns winbind
networks:       files
protocols:      db files
services:       db files
ethers:         db files
rpc:            db files
netgroup:       nis


# cat /etc/samba/smb.conf | grep -v "^#" | grep -v "^;" | grep -e "[a-zA-Z]"
[global]
   workgroup = DOMAIN
   netbios name = THIS-COMPUTER
   server string = %h server (Samba, Ubuntu)
   dns proxy = no
    log file = /var/log/samba/log.%m
    log level = 3 winbind:10
   max log size = 1000
   syslog = 0
   panic action = /usr/share/samba/panic-action %d
   security = ads
   password server = 192.168.1.4
   realm = DOMAIN.RU
   encrypt passwords = yes
   passdb backend = tdbsam
   obey pam restrictions = yes
   invalid users = root
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n *password\supdated\ssuccessfully* .
   domain logons = no
   ldap admin dn = cn=administrator,dc=DOMAIN,dc=RU
   socket options = TCP_NODELAY
   idmap uid = 10000-20000
   idmap gid = 10000-20000
    winbind separator = +
[homes]
....

Кто-нибудь знает из-за чего не работает getent и как исправить?

Спасибо.


Содержание

Сообщения в этом обсуждении
"Не работает getent "
Отправлено Goga from Tiflis , 23-Дек-08 16:52 
>[оверквотинг удален]
>#getent passwd
>выдаёт только список локальных пользователей. getent group - только список локальных групп.
>
>
>#wbinfo -u
>выдаёт список доменных пользователей. wbinfo -g - список доменных групп.
>
>
>Система: Ubuntu 8.10, Samba Version 3.2.3
>

Никогда не стыковал sanba с windows AD, тем не менее ваши настройки мне не понятны.

1. Ссылка на ldap явно лишняя. Аккаутны, как я понимаю хранятся в AD, а backend указан tdbsam. Но дело, похоже, не в этом.

2. Аккаунты Windows и Unix несовместимы, поэтому должны дублировать друг друга. А где хранятся соответствующие Unix аккаунты, я из Вашего сообщения не понял.


"Не работает getent "
Отправлено Ilya_opennet , 24-Дек-08 14:38 
>
>1. Ссылка на ldap явно лишняя. Аккаутны, как я понимаю хранятся в
>AD, а backend указан tdbsam. Но дело, похоже, не в этом.
>
>
>2. Аккаунты Windows и Unix несовместимы, поэтому должны дублировать друг друга. А
>где хранятся соответствующие Unix аккаунты, я из Вашего сообщения не понял.
>

Спасибо за ответ.

1. Насколько я понял, Active Directory = LDAP + Kerberos + ещё что-то. И как я понял, passdb backend - база хранения паролей для подключения к windows-машине.

Если глупость говорю, поправьте пожалуйста.

2. Unix-аккаунты хранятся в файлах (/etc/passwd, /etc/group, ...). Как понимаю, /etc/nsswitch.conf указывает в каких базах искать данные. В частности,

passwd:         files winbind
group:          files winbind

указывает, что поиск пользователей и групп сначала в файлах, затем спросить у winbind

Если опять говорю глупость, поправьте меня.


"Не работает getent "
Отправлено Goga from Tiflis , 24-Дек-08 20:25 
>1. Насколько я понял, Active Directory = LDAP + Kerberos + ещё
>что-то. И как я понял, passdb backend - база хранения паролей
>для подключения к windows-машине.
>

Почти так.
passwd backend - база, где самба хранит свои данные, напр. windows аккаунты (пользователи и группы), если сама выступает в роли контроллера домена и др.
Если я правильно понимаю Вашу конфигурацию, у Вас windows аккаунты хранятся в AD на сервере Windows, а роль Самбы заключается в том, чтобы давать им (пользователям домена AD) доступ к рессурсам (файлам, каталогам, принтерам) этой (на которой установлена самба) unix машины. Если так, то устанавливать openldap не нужно.

>
>2. Unix-аккаунты хранятся в файлах (/etc/passwd, /etc/group, ...). Как понимаю, /etc/nsswitch.conf указывает
>в каких базах искать данные. В частности,
>
>passwd:         files winbind
>group:          files winbind
>
>
>указывает, что поиск пользователей и групп сначала в файлах, затем спросить у
>winbind

Все правильно.

Я не использую winbind и AD, поэтому вряд ли что-то посоветую.
Ваш случай описан в статье:
http://www.opennet.ru/base/net/slackware_samba_ad.txt.html


"Не работает getent "
Отправлено ilya_opennet , 25-Дек-08 00:50 
>[оверквотинг удален]
>AD на сервере Windows, а роль Самбы заключается в том, чтобы
>давать им (пользователям домена AD) доступ к рессурсам (файлам, каталогам, принтерам)
>этой (на которой установлена самба) unix машины. Если так, то устанавливать
>openldap не нужно.
>
>Все правильно.
>
>Я не использую winbind и AD, поэтому вряд ли что-то посоветую.
>Ваш случай описан в статье:
>http://www.opennet.ru/base/net/slackware_samba_ad.txt.html

Спасибо за помощь.


"Не работает getent "
Отправлено Сергей , 23-Дек-08 18:31 
попробуйте в nsswitch.conf compat заменить на files,
да и smb.conf странноват...
Уберите
  passdb backend = tdbsam
ldap admin dn = cn=administrator,dc=DOMAIN,dc=RU
    winbind separator = +
   idmap uid = 10000-20000
   idmap gid = 10000-20000
Добавьте
auth methods = winbind и все что начинается winbind ...
Но в основном у вас не работает nsswitch.conf

"Не работает getent "
Отправлено Ilya_opennet , 24-Дек-08 16:27 
>[оверквотинг удален]
>да и smb.conf странноват...
>Уберите
>  passdb backend = tdbsam
> ldap admin dn = cn=administrator,dc=DOMAIN,dc=RU
>    winbind separator = +
>   idmap uid = 10000-20000
>   idmap gid = 10000-20000
>Добавьте
> auth methods = winbind и все что начинается winbind ...
> Но в основном у вас не работает nsswitch.conf

Спасибо.

Попробовал сделать, как Вы сказали - результат тот же.

Потом, ещё правил, правил, правил файл smb.conf и в итоге добился частичного результата.
У меня выдаются доменные пользователи командой getent passwd, но! команда getent group выдаёт только локальные группы.
wbinfo -u и wbinfo -g - работают нормально.

Сравнил новый файл с изначальным.
Добавились две строчки:
winbind enum users = true
winbind enum group = true