Я провел несколько дней в поисках руководства по этому вопросу. Сайты, которые я нашел, были в последний раз затронуты в 2004 году и не дали ответов.

У меня есть сервер Open Directory, работающий на Mac OSX 10.8.

Я хочу, чтобы мои коробки Solaris аутентифицировали пользователей на этом сервере OD.

На данный момент я обнаружил, что Solaris поставляется со скриптом под названием "ldapclient". Этот скрипт запускается с рядом опций для настройки соединения. Тем не менее, на разных сайтах я рекомендовал использовать другие плагины (gecos, Kerberos и т.д.). Я не нашел исчерпывающей документации по этой проблеме, и мне интересно, возможно ли даже, что Solaris пройдет аутентификацию на OD.

Кто-нибудь пробовал это? Любые успешные попытки?

я пытался бежать

ldapclient -v manual \
-a credentialLevel=anonymous \
-a defaultSearchBase=dc=<server-hostname>,dc=example,dc=com \
-a serviceSearchDescriptor=passwd:cn=users,dc=<server-hostname>,dc=example,dc=com \
-a attributeMap=passwd:gecos=cn \
-a serviceSearchDescriptor=group:cn=groups,dc=<server-hostname>,dc=example,dc=com \
-a serviceAuthenticationMethod=pam_ldap:simple <server-hostname>

Флаг -v предназначен для многословия, и из того, что я понял, машина настраивает множество параметров, когда сеть отключена, и когда она пытается снова запустить сеть, происходит сбой и происходит откат.

без линии с геос, я получаю

Parsing credentialLevel=anonymous
Parsing defaultSearchBase=dc=<server-hostname>,dc=example,dc=com
Parsing serviceSearchDescriptor=passwd:cn=users,dc=<server-hostname>,dc=example,dc=com
Arguments parsed:
        defaultSearchBase: dc=<server-hostname>,dc=example,dc=com
        credentialLevel: anonymous
        serviceSearchDescriptor: 
                arg[0]: passwd:cn=users,dc=<server-hostname>,dc=example,dc=com
Handling manual option
Manual failed: Missing required defaultServerList or preferredServerList attribute.

с линией, как показано выше, я получаю

Parsing credentialLevel=anonymous
Parsing defaultSearchBase=dc=<server-hostname>,dc=example,dc=com
Parsing serviceSearchDescriptor=passwd:cn=users,dc=<server-hostname>,dc=example,dc=com
Parsing attributeMap=passwd:gecos=cn
Parsing serviceSearchDescriptor=group:cn=groups,dc=<server-hostname>,dc=example,dc=com
Parsing serviceAuthenticationMethod=pam_ldap:simple
Arguments parsed:
        serviceAuthenticationMethod: 
                arg[0]: pam_ldap:simple
        defaultSearchBase: dc=<server-hostname>,dc=example,dc=com
        credentialLevel: anonymous
        attributeMap: 
                arg[0]: passwd:gecos=cn
        serviceSearchDescriptor: 
                arg[0]: passwd:cn=users,dc=<server-hostname>,dc=example,dc=com
                arg[1]: group:cn=groups,dc=<server-hostname>,dc=example,dc=com
        defaultServerList: <server-hostname>
Handling manual option
Proxy DN: NULL
Proxy password: NULL
Credential level: 0
Authentication method: 0
Authentication method: 0
No proxyDN/proxyPassword required
Shadow Update is not enabled, no adminDN/adminPassword is required.
About to modify this machines configuration by writing the files
Stopping network services
sendmail not running
nscd not running
autofs not running
ldap not running
nisd not running
nis(yp) not running
file_backup: stat(/etc/nsswitch.conf)=0
file_backup: (/etc/nsswitch.conf -> /var/ldap/restore/nsswitch.conf)
file_backup: stat(/etc/defaultdomain)=0
file_backup: (/etc/defaultdomain -> /var/ldap/restore/defaultdomain)
file_backup: stat(/var/nis/NIS_COLD_START)=-1
file_backup: No /var/nis/NIS_COLD_START file.
file_backup: nis domain is "<server-hostname>.example.com"
file_backup: stat(/var/yp/binding/<server-hostname>.example.com)=-1
file_backup: No /var/yp/binding/<server-hostname>.example.com directory.
file_backup: stat(/var/ldap/ldap_client_file)=0
file_backup: (/var/ldap/ldap_client_file -> /var/ldap/restore/ldap_client_file)
file_backup: (/var/ldap/ldap_client_cred -> /var/ldap/restore/ldap_client_cred)
Starting network services
start: /usr/bin/domainname <server-hostname>.example.com... success
start: sleep 100000 microseconds
start: sleep 200000 microseconds
start: sleep 400000 microseconds
start: sleep 800000 microseconds
start: sleep 1600000 microseconds
start: sleep 3200000 microseconds
start: sleep 6400000 microseconds
start: sleep 12800000 microseconds
start: sleep 25600000 microseconds
start: sleep 51200000 microseconds
start: sleep 17700000 microseconds
start: network/ldap/client:default... timed out
start: network/ldap/client:default... offline to disable
stop: sleep 100000 microseconds
stop: sleep 200000 microseconds
stop: sleep 400000 microseconds
stop: sleep 800000 microseconds
stop: sleep 1600000 microseconds
stop: sleep 3200000 microseconds
stop: sleep 6400000 microseconds
stop: sleep 12800000 microseconds
stop: sleep 25600000 microseconds
stop: sleep 8900000 microseconds
stop: network/ldap/client:default... timed out
restart: sleep 100000 microseconds
restart: milestone/name-services:default... success
Error resetting system.
Recovering old system settings.
Stopping network services
sendmail not running
nscd not running
autofs not running
Stopping ldap
stop: sleep 100000 microseconds
stop: sleep 200000 microseconds
stop: sleep 400000 microseconds
stop: sleep 800000 microseconds
stop: sleep 1600000 microseconds
stop: sleep 3200000 microseconds
stop: sleep 6400000 microseconds
stop: sleep 12800000 microseconds
stop: sleep 25600000 microseconds
stop: sleep 8900000 microseconds
stop: network/ldap/client:default... timed out
Stopping ldap failed with (7)
Error (1) while stopping services during reset
recover: stat(/var/ldap/restore/defaultdomain)=0
recover: open(/var/ldap/restore/defaultdomain)
recover: read(/var/ldap/restore/defaultdomain)
recover: old domainname "<server-hostname>.example.com"
recover: stat(/var/ldap/restore/ldap_client_file)=0
recover: file_move(/var/ldap/restore/ldap_client_file, /var/ldap/ldap_client_file)=0
recover: stat(/var/ldap/restore/ldap_client_cred)=0
recover: file_move(/var/ldap/restore/ldap_client_cred, /var/ldap/ldap_client_cred)=0
recover: stat(/var/ldap/restore/NIS_COLD_START)=-1
recover: stat(/var/ldap/restore/<server-hostname>.example.com)=-1
recover: stat(/var/ldap/restore/nsswitch.conf)=0
recover: file_move(/var/ldap/restore/nsswitch.conf, /etc/nsswitch.conf)=0
recover: stat(/var/ldap/restore/defaultdomain)=0
recover: file_move(/var/ldap/restore/defaultdomain, /etc/defaultdomain)=0
Starting network services
start: /usr/bin/domainname <server-hostname>.example.com... success
restart: sleep 100000 microseconds
restart: milestone/name-services:default... success

Я заменил реальный домен на .example.com. Сервер работает без ошибок, так как любая другая платформа аутентифицируется нормально.

Вывод не согласован, так как он отличается каждый раз, когда происходит сбой службы, но после перезагрузки это всегда вывод, который я получаю

1 ответ1

1

Да, я не могу дать никакого представления о механике всего этого, но, похоже, я решил проблему.

Все, что нужно было сделать, это то, что вместо имени хоста сервера в конце должен быть IP-адрес, как показано ниже

ldapclient -v manual \
-a credentialLevel=anonymous \
-a defaultSearchBase=dc=<server-hostname>,dc=example,dc=com \
-a serviceSearchDescriptor=passwd:cn=users,dc=<server-hostname>,dc=example,dc=com \
-a attributeMap=passwd:gecos=cn \
-a serviceSearchDescriptor=group:cn=groups,dc=<server-hostname>,dc=example,dc=com \
-a serviceAuthenticationMethod=pam_ldap:simple xxx.xxx.xxx.xxx

Теперь это работает :)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .