macOS Sierra: wolumin montowania AppleScript wciąż pyta o login


12

Do kilku wersji OS X użyłem:

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

Działa to świetnie, ładny i cichy montaż udziału sieciowego, jeśli jest on oczywiście dostępny.

Niedawno zainstalowałem macOS Sierra (publiczna wersja beta 10.12, kompilacja 16A238m), a skrypt nadal działa, jednak teraz nagle zawsze wyświetla okno dialogowe logowania, wstępnie wypełnione wartościami „twoja nazwa użytkownika” i „twoje hasło”. Użytkownik nadal będzie musiał kliknąć „Połącz”, aby zamontować udział.

Czy ktoś wie, czy jest to „błąd” w wersji beta (zgłosiłem to za pomocą aplikacji Apple Feedback), czy jest to oczekiwane i / lub jaka byłaby „poprawka”?

Zobacz także: Dokumentacja AppleScript „podłącz wolumin”


3
Może to być związane z faktem, że Apple zablokował /Volumesfolder, w którym udział sieciowy jest zamontowany tylko w celu uzyskania dostępu do konta root, co wymaga autoryzacji użytkownika w celu utworzenia punktu podłączenia. Niestety w tej chwili nie wiem, jak to działa, ale zamierzam bawić się modyfikowaniem sudoerów na komputerze. Mam Otwarty Radar na openradar.appspot.com/radar?id=4948585099558912, gdy Apple potwierdzi, że jest zablokowany.
mattdwen

Odpowiedzi:


14

Gdy Apple odpowiedziała na bilet wymieniony w powyższym linku Open Radar mattdwen , od macOS Sierra 10.12,

nie możesz już tworzyć przedmiotów w / Volumes, chyba że root.

Co więcej, najlepiej rozumiem komendę montowania woluminu AppleScript , ponieważ nie ma sposobu na określenie punktu montowania, w związku z czym montuje tylko woluminy /Volumesza pomocą standardowego mechanizmu Findera. Więc nie sądzę, że można to zrobić za pomocą AppleScript.

Ale jest inny sposób. Możesz to zrobić za pomocą polecenia niższego poziomu mount:

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

Po zamontowaniu woluminu w ten sposób na pulpicie powinna pojawić się normalna ikona „woluminu”, a ~/mntkatalog będzie wyświetlany jako „udostępnij” podczas przeglądania katalogu użytkownika za pomocą Findera.

Jedyne, czego brakuje w tym podejściu, to zapisanie danych logowania w pęku kluczy. Aby to zrobić, musisz wykonać trochę więcej skryptów. Coś takiego.

Zapisz hasło:

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

Pobierz hasło i zamontuj udział:

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

UWAGA: Jeśli masz hasło specjalne, prawdopodobnie będziesz musiał go zakodować za pomocą adresu URL, być może tak:

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

Dziękuję nowi i mattdwen! To powinno być dobre obejście! (i możliwe, że lepszy niż przy użyciu AppleScript)
Hanzaplastique

4
przypuszczalnie takie podejście zepsułoby wszystko, co dotyczy plików /Volumes/share?
Jack

Zdecydowanie złamałoby coś takiego.
Br.Bill

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.