как поделиться паролями пользователей Linux и паролями Samba

2932
reinierpost

Я установил систему Linux с собственным управлением учетными записями пользователей. Он не является частью какого-либо домена (кроме DNS). Теперь я хочу разрешить пользователям монтировать свои домашние каталоги в системе Windows.

Одним из способов сделать это является сохранение двух администраций учетных записей пользователей: один поддерживается с помощью passwd, другой с smbpasswd. Это кажется излишне сложным. Я хочу поддерживать только один.

Как я могу лучше всего это устроить? Система работает под управлением Ubuntu 12.04 (Desktop).

3

1 ответ на вопрос

2
RedGrittyBrick

Используйте модуль поддержки PAM для / etc / passwd.


Обновить:

Существует фундаментальная причина, по которой вы не можете унифицировать эти механизмы аутентификации простым способом.

  • Аутентификация Unix и Linux / etc / passwd требует, чтобы пароль пользователя был представлен на сервере. Это может быть в зашифрованном канале (как при аутентификации по паролю SSH, когда не используется аутентификация по секретному ключу).
  • Аутентификация NTLM и MS-Kerberos не передает пароли, они передают хэш пароля, и сервер аутентификации берет свою копию пароля пользователя, создает хэш, используя тот же алгоритм, и сравнивает результат хеша с хешем, представленным клиентом. Поскольку / etc / passwd не хранит пароли и использует другой алгоритм хэширования, в / etc / passwd недостаточно информации для аутентификации клиентов NTLM / Kerberos.
  • Действительно старые протоколы аутентификации SMB передают пароль (в незашифрованном виде, т. Е. Незащищенный), и поэтому сервер SMB может вычислить хэш этого типа / etc / passwd и сравнить его с хешем, хранящимся в / etc / passwd.

Из вышесказанного следует, что вам нужен отдельный файл для хранения паролей (smbpasswd) или контроллер домена, если вы хотите избежать прохождения простых текстовых паролей через вашу локальную сеть.

Сделать что? Заменить все использование / etc / passwd использованием файла паролей, управляемого smbpasswd? reinierpost 11 лет назад 0
@reinerpost, я имел в виду обратное. Скажите Samba использовать / etc / passwd (через PAM). Это кажется мне более простым предложением :-) Ссылка в моем ответе указывает на документацию по Samba, а не на общую документацию по Linux. RedGrittyBrick 11 лет назад 0
Я пытался это сделать, но, похоже, клиент Windows отправляет пароль в открытом виде (http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/pam.html#id2667015) или механизм синхронизации паролей, который, кажется, работает только в одном направлении (http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/pam.html#id2667199), оба, на мой взгляд, неоптимальные обходные пути. reinierpost 11 лет назад 0
@reinierpost: Насколько мне известно, наиболее распространенное решение для этого набора требований (зашифрованные учетные данные в сети, единая точка администратора пользователя) заключается в аутентификации через контроллер домена Windows (или Samba, действующий как таковой). RedGrittyBrick 11 лет назад 0
Это тоже мое впечатление, но было бы полезно знать наверняка. Отсюда и мой вопрос. reinierpost 11 лет назад 0
@reinierpost: для синхронизации нет особых причин работать в другом направлении, поскольку Windows не поддерживает изменение паролей через SMB, если вы не находитесь в домене (поэтому десинхронизация практически невозможна). grawity 11 лет назад 0
Хм ... могу ли я настроить этот бокс как собственный домен Windows, состоящий из одного компьютера, не мешая домену моей организации (на котором этот блок, будучи машиной Linxu, запрещен)? И в какой степени я могу полностью избавиться от / etc / passwd и / etc / shadow? Если я могу использовать пароли Samba для всего (то есть, если все приложения Ubuntu, которые я использую, поддерживают PAM), это решение мне подойдет. reinierpost 11 лет назад 0
Будет ли [Winscp] (http://winscp.net/eng/docs/interfaces#explorer_interface) + аутентификация с открытым ключом приемлемой? RedGrittyBrick 11 лет назад 0
@RedGrittyBrick; На самом деле, нет. Я ищу способ избежать необходимости просить моих коллег использовать какое-то специальное программное обеспечение на стороне Windows. Они знают, как сделать SCP, это не проблема. reinierpost 11 лет назад 0