Доброго времени суток!
Хотел поделиться с сообществом недавним решением проблемы, которая переодически у меня возникала напротяжении длительного промежутка времени.
Имеется следующая конфигурация:
- Debian GNU Linux 6.0 с установленным на него сервером samba в режиме domain и привязкой к openldap, установленном на нем же.
- Какой-то сервер с ОС Windows. В моем случае это MS Windows 2003 Server.
Сервер с Linux существует уже достаточно долго и на нем побывало несколько версий Debian. Особо не заморачивались с очисткой, поэтому там установлены практически все пакеты. Как нужные, так и ненужные.
С некоторых пор при создании нового пользователя посредством утилиты smbldap-useradd, под этим пользователем стало невозможно зайти по RDP, т.к. сервер отвечал следующее:
a device attached to the system is not functioning
Интересно, что такой ошибки не возникает, в случае, если попытаться войти под другим пользователем, так что мысль о «некорректно функционирующих устройствах» я отмел. В интернете однозначного ответа я не нашел, чего только не советуют.
Путем сличения двух пользователей, я выяснил, что у пользователей, которых не пускают в систему префиксы полей sambaSID и sambaPrimaryGroupSID отличаются. Затем, в файле /etc/smbldap-tools/smbldap.conf я нашел параметр SID, который был таким же, как и поле sambaSID у пользователя, которого не пускало в систему.
На сервере Samba выполнил:
# net getdomainsid
Который мне показал, что этот самый SID различается для домена в целом и для локальной машины.
Тогда я установил для локальной машины тот же SID, что и для домена посредством команды:
# new setlocalsid <SID>
И заменил параметр SID в файле /etc/smbldap-tools/smbldap.conf на тот, что значится за доменом.
Для существующих пользователей поменял поля sambaSID на нужный префикс и все отлично заработало!