22

Можно ли передать имя пользователя и пароль UNC в пути UNC?

Подобно тому, как FTP и SMB поддерживают это:

smb://user:pass@destination.com/share
ftp://user:pass@destination.com/share

Я пытаюсь получить (не доменный ПК) сервис доступ к пути DFS.

Есть ли другой способ обойти это? Я мог бы связать ПК с доменом и запустить службу как пользователь домена, но что, если я использовал Linux?

4 ответа4

19

В Windows вы не можете поместить учетные данные в пути UNC. Вы должны предоставить их, используя net use , runas /netonly или по запросу Windows. (Если у вас есть некоторые навыки программирования, вы можете сохранить пароль SMB как "учетную запись домена", используя CredWrite() , что эквивалентно установке флажка "Запомнить пароль" в Windows.)

В Linux это зависит от программы.

  • Gvfs GNOME принимает синтаксис user@host , но, похоже, полностью игнорирует пароль. (Однако вы можете сохранить его в GNOME Keyring заранее.)

  • smbclient использует тот же синтаксис UNC, что и Windows; однако у него есть --authentication-file из которой можно прочитать учетные данные.

  • Обе программы выше используют libsmbclient и могут использовать аутентификацию Kerberos вместо паролей: запустите kinit user@YOUR.DOMAIN и используйте smbclient -k //host/share . Это более безопасно, чем аутентификация по паролю.

Обратите внимание, что ввод паролей в URI устарел, и вы не должны полагаться на его поддержку где-либо.

14

Вы можете сопоставить "диск" пути UNC, используя net use . Будущие доступы должны разделить существующее соединение

Net Use \\yourUNC\path /user:uname password

Примечание: вам не нужно указывать букву диска

1

Я думаю, что имя пользователя и пароль должны быть переданы на сервер для проверки подлинности, прежде чем любой доступ к файлу может быть сделан, поэтому код, обрабатывающий соединение SMB, должен иметь возможность анализировать и извлекать имя пользователя и пароль из URL. Вам нужно проверить, поддерживает ли этот код этот формат или нет.

Если это не так, вы можете смонтировать этот общий ресурс SMB через SAMBA и указать вашей программе использовать этот "локальный" путь. Вы можете поместить монтирование в fstab и использовать файл паролей SAMBA для предоставления учетных данных пользователя. Не забудьте установить правильные права доступа к файлу паролей, чтобы обычные пользователи не могли его прочитать.

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

0

Вы можете добавить учетные данные в Панель управления / Пользователи / Диспетчер учетных данных Windows, чтобы учетные данные кэшировались. Вы бы добавили имя устройства (server.domain.local) с именем пользователя / паролем домена, после чего вы сможете получить доступ к общему ресурсу без повторного предоставления учетных данных.

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