Вопрос или проблема
Я работал над bash-скриптом, чтобы системы могли монтировать общую папку SMB (Windows Server) в локальную папку /usr/local/Installers
на macOS 12.
Я могу без проблем создавать папки массой до 100 клиентов с помощью bash-скрипта.
Когда я пытаюсь смонтировать папку:
username:password@toplevelfolder/folder1/folder2 No such file or directory (127)
Теперь вот моя полная строка с измененной очевидной идентификационной информацией:
mount_smbfs smb://servername.domain.int;username@Software/APPLEDMG usr/local/Installers
Я должен что-то делать неправильно, потому что это работает:
open smb://Software/APPLEDMG
Это открывает окно Finder с правильной папкой. Однако мне нужно монтировать, чтобы скопировать очень большой пакет Adobe, который я создал в Adobe Admin, на машины локально, чтобы потом запустить его тайно один раз для установки пакета.
Это осуществляется массово на почти сотню Mac. Установка Adobe CC по отдельности крайне неэффективна. Компания также не хочет выходить из JAMF School.
Я не ищу альтернатив или дебатов о смене MDM. Если есть лучшие команды терминала, которые я могу вставить в свой bash-скрипт, я открыт для этого.
В принципе, мне просто нужен этот порядок операций:
- Подключиться к нашему файловому серверу Windows.
- Скопировать
.app
/.pkg
с этого сервера на каждую локальную машину - Как только файл загружен, запустить установщик
-pkg
на этом загруженном pkg-файле. - Размонтировать и очистить.
Я уже могу делать такие вещи, как массовое удаление сетей/принтеров с привилегиями уровня sudo после использования su для перехода в локальные учетные записи администратора. Проблема не в учетных данных. Я также могу создавать папки точек монтирования.
Я просто, кажется, делаю что-то неправильно при подключении к файловому серверу.
Любая помощь будет признательна.
Я не уверен насчет современных macOS, но в моих вещах много лет назад (например, Sierra) SMB-папка, открытая в Finder (например, с помощью Go -> Connect to Server… с URL smb://
) просто предоставляет вам монтирование типа smbfs
.
Вы могли бы выполнять монтирование smbfs
доступного для гостя SMB-общего ресурса в существующую папку в вашем домашнем каталоге в Terminal без специальных разрешений:
mount -t smbfs smb://server/volume ~/some/mount/point
и когда вы завершите работу с ним, размонтируйте его:
umount ~/some/mount/point
Точки монтирования, созданные Finder, были немного другими; они находились под /Volumes
, и он жалуется, если вы пытаетесь размонтировать их напрямую, чтобы использовать diskutil unmount
, что, похоже, работает.
Ответ или решение
Чтобы смонтировать папку SMB на macOS через Terminal, следуйте приведенной ниже инструкции. Ваша цель — автоматизировать процесс подключения к Windows Server и копирования установочных пакетов на локальные машины, после чего произвести их установку. Основная ошибка в команде, которую вы используете, заключается в некорректной синтаксической записи и использовании точек с запятой вместо двоеточий. Вот подробные шаги, которые помогут вам решить эту задачу.
Подробная инструкция по монтированию SMB папки на macOS через Terminal:
1. Подготовка к монтированию
Убедитесь, что у вас есть права на запись в указанный вами локальный путь /usr/local/Installers
. Для этого заранее создайте нужную директорию, если она не была создана:
sudo mkdir -p /usr/local/Installers
2. Монтирование SMB папки
Используйте команду mount_smbfs
, чтобы смонтировать сетевую папку:
mount_smbfs //username:password@servername.domain.int/Software/APPLEDMG /usr/local/Installers
Примечания:
- Замените
username
иpassword
на ваши учетные данные. servername.domain.int
— это адрес вашего сервера.- После указанного адреса сервера следует точка с запятой перед
/Software/APPLEDMG
.
3. Копирование установочного пакета
После монтирования сетевой папки скопируйте нужный файл в локальную директорию:
cp /usr/local/Installers/AdobePackage.pkg /путь/к/локальной/дериктории
4. Установка пакета
Установите скачанный пакет:
sudo installer -pkg /путь/к/скачанному/AdobePackage.pkg -target /
5. Демонтирование SMB папки и очистка
После установки выполните команду для отключения сетевого диска:
umount /usr/local/Installers
Дополнительные советы и исправление ошибок
- Убедитесь, что все права доступа и сетевые настройки позволяют подключение и копирование файлов.
- Используйте команду
diskutil unmount
для безопасного отключения папок, если стандартная командаumount
не подходит для вашей версии системы. - Рассмотрите использование логирования в вашем bash скрипте для отслеживания возможных ошибок на каждом этапе.
С помощью этой инструкции вы сможете эффективно автоматизировать процесс монтирования SMB папок и установки необходимых приложений на macOS, минимизируя время и усилия.