guvijur
@guvijur
Практик, кинестетик, ретроград и консерватор

Как в Ubuntu монтировать несколько путей с одной шары виндового доменного сервака?

Добрый день!

Есть задача при авторизации под доменным пользователем монтировать в его окружение ресурсы, которые ранее он использовал, работая на WIndows. Данная задача находится в рамках плана по переходу с Windows на Linux и как всегда хочется обойтись малой кровью. Есть огромная иерархия папок пользователей, разбитых по папкам отделов + общие папки обмена, часть из которых в винду подключалась как сетевые диски, а часть (рабочий стол и мои документы) - с помощью folder redirection.
На данном этапе не хочется убивать контроллер домена и виндовое хранилище данных, т.к. пользаков много и переход надо делать без крушения всех связей отделов в плане обмена файлами и работы с общими файлами.

Итак, на чём я заткнулся?
Я писал скрипт, который для начала находит и монтирует домашнюю папку пользователя с рабочим столом и документами:
loggedin_user=$(whoami)

home_directory_base64=$(ldapsearch -x -H ldap://dc1.domain.int -D "dadmin@domain.int" -w "somepassword" -b "DC=domain,DC=int" -o ldif-wrap=no "(sAMAccountName=$loggedin_user)" | grep 'homeDirectory' | awk -F ": " '{print $2}')

home_directory=$(echo $home_directory_base64 | base64 -d)

home_directory_linux_format=$(echo "$home_directory" | sed 's/\\/\//g')

gio mount "smb:$home_directory_linux_format"


Запихав это в bash-скрипт и прописав путь к скрипту в домашнем каталоге ползака убунты в ".profile", я добился того, что в наутилусе, или как называется аналог проводника для Убунты, появилась шара с домашним каталогом. Круто, здорово. Шаг № 1 успешно завершён.
ВАЖНО! Путь к данным пользователям имеет вид - "\\fileserver\UsersData\..." (Для линукса наклонить палки вправо ;) )
Т.е. В коде выше я получил, например, путь "\\fileserver\UsersData\ИТ отдел\ivanov.i\" преобразовал его из Base64, сменил синтаксис написания пути под Linux и примонтировал при логоне пользака.

Теперь мне надо примонтировать 2 папки с того же ресурса \\fileserver\UsersData\...", расположеные в других местах иерархии, а именно: "\\fileserver\UsersData\Общая" и "\\fileserver\UsersData\ИТ отдел\Общая".
Т.е. вы поняли, я не хочу монтировать просто "\\fileserver\UsersData\", т.к. по сути пользаку будет видна вся иерархия.

Я пишу код скрипта дальше:
# 2. Монтировать папки "Общая" с шары "UsersData" сервера "fileserver"
gio mount "smb://fileserver/UsersData/\Общая"

# 3. Монтировать папку "Общая" рядом с домашней директорией пользователя в папку "Диск X" с помощью udisksctl
common_folder='$($home_directory_linux_format%/*)/\Общая'
gio mount "smb://$common_folder"


Всё, на этой fail. Ни 2 , ни 3 пункты не срабатывают, вылетает ошибка, что шара уже примонтирована.
При по отдельности все 3 пути монтируются, но не дают примонтировать два других пути. А надо.

Есть ли способ обойти это?

Я пробовал через AD создал руками два компьютера с похожими именами - "fileserver-1" и "fileserver-2". В DNS создал для этих компов записи и нацелил из на IP сервака "filrserver". Подставил в скрипт, но вот в чём затык вышел, все три пути стали монтироваться, но для команд, которые содержат "синонимы" сервака "fileserver" появляется запрос логина, домена и пароля.

Как-то так.
Камнями не закидывайте пожалуйста. Чего-то не знать - не стыдно, стыдно не хотеть знать и бить слабых.
Лучше помогите советом.
  • Вопрос задан
  • 157 просмотров
Пригласить эксперта
Ответы на вопрос 1
hint000
@hint000
у админа три руки
Есть ли способ обойти это?
Монтировать \\fileserver\UsersData\ в папку, которую не видит пользователь (ну как не видит, прав на чтение нет, а права на исполнение нужны), а потом оттуда надёргать символьных ссылок на подпапки, которые должны быть доступны и показать пользователю только эти символьные ссылки. Про хреновую безопасность уже сказали в комментариях и при таком варианте она не хуже и не лучше, наверное.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы