Добрый день!
Есть задача при авторизации под доменным пользователем монтировать в его окружение ресурсы, которые ранее он использовал, работая на 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" появляется запрос логина, домена и пароля.
Как-то так.
Камнями не закидывайте пожалуйста. Чего-то не знать - не стыдно, стыдно не хотеть знать и бить слабых.
Лучше помогите советом.