macOS Sierra: Об'єм кріплення AppleScript продовжує просити вхід


12

Для декількох версій OS X я використав:

/usr/bin/osascript -e mount volume "smb://yourserver" as user name  "yourusername" with password yourpassword

Це спрацювало чудово, приємно і тихо монтується в мережі, якщо вона, звичайно, доступна.

Зараз нещодавно я встановив macOS Sierra (бета-версія 10.12, збірка 16A238m), і сценарій все ще працює, однак тепер він раптом завжди відображатиме діалогове вікно входу, попередньо заповнене значеннями "yourusername" та "yourpassword". Користувачеві все одно доведеться натиснути «Підключити», щоб змонтувати спільну частину.

Хтось знає, чи це "помилка" у бета-версії (я повідомляв про це за допомогою додатка зворотного зв’язку Apple), чи це очікується та / або що буде "виправити" для цього?

Дивіться також: Документація AppleScript "об'єм кріплення"


3
Це може бути пов’язано з тим, що Apple заблокувала /Volumesпапку, в якій мережева частка монтується лише для кореневого доступу, вимагаючи авторизації користувача для створення точки монтажу. На жаль, на даний момент я не знаю про роботу, хоча збираюся грати з модифікацією судорів на комп’ютері. У мене відкритий радар на openradar.appspot.com/radar?id=4948585099558912, коли Apple підтвердила, що його заблоковано.
mattdwen

Відповіді:


14

Як Apple , відповів на квиток , зазначеного в mattdwen по посиланню Відкрити Radar вище, станом на MacOS Sierra 10.12,

ви більше не можете створювати елементи в / Томах, крім кореня.

Крім того, я найкраще розумію команду тома монтажу AppleScript - це те, що у неї немає способу вказати точку монтажу, і, отже, вона лише монтує обсяги /Volumesв стандартному механізмі Finder. Отже, я не думаю, що ви можете це зробити через AppleScript.

Але є й інший спосіб. Те ж саме можна зробити за допомогою команди нижчого рівня mount:

mkdir -p ~/mnt
mount_smbfs "//my_username:my_password@my_hostname/share" ~/mnt

Після встановлення гучності таким чином, ви побачите звичайний значок "гучності" на вашому робочому столі, а ~/mntкаталог буде відображатися як "поділитися", коли ви переглядаєте каталог користувачів через Finder.

Єдине, чого бракує такому підходу, - це збереження облікових даних для входу в Keychain. Для цього вам доведеться зробити трохи більше сценаріїв. Щось на зразок цього.

Збережіть пароль:

security add-generic-password -a my_username -s my_hostname -w my_password

Отримайте пароль і змонтуйте спільний доступ:

pass=$(security find-generic-password -a my_username -s my_hostname -w)
mount_smbfs "//my_username:${pass}@my_hostname/share" ~/mnt

ПРИМІТКА. Якщо у вашому паролі є спеціальні символи, вам, мабуть, потрібно буде кодувати його URL, можливо так:

pass='my !@#%%^& password'
pass=$(php -r "echo urlencode(\"$pass\");")
>>> my+%21%40%23%25%25%5E%26+password

Дякую мнеwt та mattdwen! Це має бути хорошим завданням! (і можливо кращий, ніж використання AppleScript)
Hanzaplastique

4
імовірно, такий підхід порушить все, на що посилаються файли /Volumes/share?
Джек

Це безумовно зламало б щось подібне.
Br.Bill

3

Це було виправлено Apple у macOS Sierra 10.12.2:

https://support.apple.com/en-us/HT207112


У їх прикладі "скасування" є помилка друку. Правильним способом "скасувати" було б: sudo defaults delete /Library/Preferences/com.apple.NetworkAuthorization AllowUnknownServers(видалено "запис" у цьому рядку).
Hanzaplastique
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.