Передача імені користувача та пароля UNC у межах UNC


23

Чи можливо передати ім'я користувача та пароль UNC в межах UNC?

Аналогічно тому, як FTP та SMB підтримують це:

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

Я намагаюся отримати доступ до служби (не доменний ПК) до шляху DFS.

Чи є інший спосіб цього? Я можу прив’язати ПК до домену та запустити послугу як користувач домену, але що робити, якщо я використовував Linux?

Відповіді:


20

У Windows не можна розміщувати облікові дані у контурах UNC. Ви повинні надати їм з допомогою net use, runas /netonlyабо коли його запитали Windows. (Якщо у вас є деякі навички програмування, ви можете зберігати пароль SMB як "обліковий запис домену", використовуючи CredWrite(), що еквівалентно встановленню вікна "Запам'ятати пароль" у Windows.)

У Linux це залежить від програми.

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

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

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

Зауважте, що введення паролів у URIs застаріле, і вам не слід покладатися на те, що він підтримується де-небудь .


Чи є у вас посилання на те, що "введення паролів у URIs застаріле"?
Alexis Wilke

2
@AlexisWilke RFC 1738, § 3.3, розпочато тим, що не допускається їх у HTTP, RFC 2396 § 3.2.2 має більш загальне "не рекомендується", а пункт RFC 3986 § 3.2.1 говорить "Використання формату" користувач: пароль "у інформації про користувача поле застаріле ".
grawity

14

Ви можете зіставити "привід" до шляху UNC, використовуючи net use. Майбутній доступ повинен мати спільний доступ до наявного зв'язку

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

Примітка: вам не потрібно вказувати букву диска


1

Я думаю, що ім’я користувача та пароль повинні бути передані серверу для аутентифікації спочатку перед тим, як отримати будь-який доступ до файлів, тому код, що обробляє з'єднання SMB, повинен мати змогу проаналізувати та вилучити ім’я користувача та пароль з URL. Вам доведеться перевірити, підтримує цей код цей формат чи ні.

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

Зауважте, що зберігати паролі в чистому тексті у файлах конфігурації є поганою практикою, тому навіть якщо ваша програма може обробляти пароль у URL-адресі, вам слід розглянути можливість встановленого методу спільного доступу.


Чи fstabне "чіткий файл конфігурації тексту"?
grawity

1
Так, але у fstab ви посилаєтесь на файл паролів, а не безпосередньо включати пароль. Потім ви можете захистити файл пароля, змінивши власника на root та режим на 400.
billc.cn

Це ще конфігураційний файл чіткого тексту. Кожен, хто має фізичний доступ до машини, може мати root права через перезавантаження. Настільні середовища, такі як XFCE, KDE та Gnome, можуть зберігати облікові дані у сховищі паролів, що, мабуть, кращий варіант.
бобпаул

0

Ви можете додати облікові дані в Панель керування / Користувачі / Менеджер облікових даних Windows, щоб керуючі дані були кешовані. Ви б додали ім'я пристрою (server.domain.local) з ім'ям користувача / паролем домену, тоді ви мали б можливість отримати доступ до спільної доступу, не надаючи знову дані облікових даних.


0

Недоменний ПК не повинен насправді дбати про DFS, на який він не підписується або безпосередньо бере участь. Просто потрібно побачити шлях до спільного доступу (тобто сервер / ім'я спільного доступу). Імена спільного доступу видаляють усі міркування щодо хост-файлу сервера файлів.

Чесно кажучи, є більш безпечні способи входу в акції, ніж URI UNC. UNC та URI самі по собі є чітким текстовим протоколом зв'язку.
Якщо це прийнятна безпека ... чому б просто не мати відкриту спільну доступність без будь-якого користувача чи пароля?

Найпростішим негайним рішенням буде надання службовим обліковим особам прямого доступу до входу до спільної доступу (наприклад, відповідність користувача / паролю). Довгостроковий, що не настільки очевидна відповідність може змусити запам'ятати оновлення дозволів, коли все змінюється важко. І це також область, де МС може змінити, як безпека ще раз передає облікові дані та порушить справи.

Найкраще, звичайно, найпростіше - це назавжди зіставити локальний лист диска з мережевою часткою. Захистіть відображений на карті диск із дозволами лише для сервісу (та відповідних адміністраторів тощо), а також ім'я спільного доступу може бути приховано за допомогою провідних &.

Але DFS дає підказку до більш елегантного рішення. Linux вимагає, щоб спочатку встановити мережеві спільні папки ... як правило, у каталозі кореневої файлової системи таким чином, як DFS. Команда mount Linux дозволяє вказати файл облікових даних для імені користувача та пароля, таким чином полегшуючи їх оновлення та безпечніше, ніж скрипт командного рядка або fstab (тобто таблиця файлової системи). Я майже впевнений, що командні оболонки Windows і DFS можуть зробити те ж саме (деякий час). Було б просто інша система DFS, приватна для цільового ПК, щоб включити змонтовані мережеві спільні файли, використовуючи збережені облікові дані, передані SMB та службами входу, а не жорстко закодовані в сценарії та відправлені як чіткий текст UNC.

Також врахуйте, чи не буде цей доменний ПК залишатися бездоменним ПК довгостроково. Сервери входу в Kerberos в * NIX Realms можуть бути пов'язані з доменами Windows AD. Ймовірно, що ви хочете зробити для будь-якого серйозного довгострокового проекту, в якому беруть участь декілька людей. З іншого боку, це, ймовірно, надмірна ситуація для більшості ситуацій в домашній мережі. Хоча якщо ви використовуєте DFS з будь-якої поважної причини, окрім як любитель самовиклику, це, мабуть, найкраще.


0

Відповідь Метта на зберігання облікових даних є найелегантнішою для сучасного ПК з Windows. Хоча дані про зберігання облікових даних не повинні бути вказані для облікового запису послуги. Це і для забезпечення доступності до сервісу, і для того, щоб будь-які інші користувачі, яким ви не хочете отримати доступ до цієї спільної інформації, не змогли (наприклад, більше пам’яті про очищення облікових даних, помилково доданих під неправильним обліковим записом).

Але якщо його застаріла Windows або Linux, можливо, вам доведеться трохи ширше.

Недоменний ПК не повинен насправді дбати про DFS, на який він не підписується або безпосередньо бере участь. Просто потрібно побачити шлях до спільного доступу (тобто сервер / ім'я спільного доступу). Імена спільного доступу видаляють усі міркування щодо хост-файлу сервера файлів.

Чесно кажучи, є більш безпечні способи входу в акції, ніж URI UNC. UNC та URI самі по собі є чітким текстовим протоколом зв'язку.
Якщо це прийнятна безпека ... чому б просто не мати відкриту спільну доступність без будь-якого користувача чи пароля?

Найпростішим негайним рішенням буде надання службовим обліковим особам прямого доступу до входу до спільної доступу (наприклад, відповідність користувача / паролю). Довгостроковий, що не настільки очевидна відповідність може змусити запам'ятати оновлення дозволів, коли все змінюється важко. І це також область, де МС може змінити, як безпека ще раз передає облікові дані та порушить справи.

Найкраще, звичайно, найпростіше - це назавжди зіставити локальний лист диска з мережевою часткою. Захистіть відображений на карті диск із дозволами лише для сервісу (та відповідних адміністраторів тощо), а також ім'я спільного доступу може бути приховано за допомогою провідних &.

Але DFS дає підказку до більш елегантного рішення. Linux вимагає, щоб спочатку встановити мережеві спільні папки ... як правило, у каталозі кореневої файлової системи таким чином, як DFS. Команда mount Linux дозволяє вказати файл облікових даних для імені користувача та пароля, таким чином полегшуючи їх оновлення та безпечніше, ніж скрипт командного рядка або fstab (тобто таблиця файлової системи). Я майже впевнений, що командні оболонки Windows і DFS можуть зробити те ж саме (деякий час). Було б просто інша система DFS, приватна для цільового ПК, щоб включити змонтовані мережеві спільні файли, використовуючи збережені облікові дані, передані SMB та службами входу, а не жорстко закодовані в сценарії та відправлені як чіткий текст UNC.

Також врахуйте, чи не буде цей доменний ПК залишатися бездоменним ПК довгостроково. Сервери входу в Kerberos в * NIX Realms можуть бути пов'язані з доменами Windows AD. Ймовірно, що ви хочете зробити для будь-якого серйозного довгострокового проекту, в якому беруть участь декілька людей. З іншого боку, це, ймовірно, надмірна ситуація для більшості ситуацій в домашній мережі. Хоча якщо ви використовуєте DFS з будь-якої поважної причини, окрім як любитель самовиклику, це, мабуть, найкраще.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.