macOS Sierra: il volume di montaggio di AppleScript continua a richiedere l'accesso


12

Per diverse versioni di OS X ho usato:

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

Questo ha funzionato benissimo, un montaggio piacevole e silenzioso della condivisione di rete, se è ovviamente disponibile.

Ora di recente ho installato macOS Sierra (10.12 public beta, build 16A238m) e lo script funziona ancora, tuttavia ora mostrerà sempre improvvisamente una finestra di dialogo di accesso, precompilata con i valori "yourusername" e "yourpassword". L'utente dovrà comunque fare clic su "Connetti" per montare la condivisione.

Qualcuno sa se questo è un "bug" nella versione beta (l'ho segnalato con l'app Feedback di Apple), oppure è previsto e / o quale sarebbe la "correzione" per quello?

Vedi anche: Documentazione AppleScript "volume di montaggio"


3
Potrebbe essere correlato al fatto che Apple ha bloccato la /Volumescartella in cui la condivisione di rete è montata solo per l'accesso root, richiedendo l'autorizzazione dell'utente per creare il punto di montaggio. Sfortunatamente non conosco un lavoro in questo momento, anche se giocherò a modificare i sudoer sul computer. Ho un radar aperto su openradar.appspot.com/radar?id=4948585099558912 dove Apple ha confermato che è bloccato.
Mattdwen,

Risposte:


14

Mentre Apple rispondeva al biglietto indicato nel link Open Radar di mattdwen sopra, a partire da macOS Sierra 10.12,

non puoi più creare oggetti in / Volumi a meno che root.

Inoltre, la mia migliore comprensione del comando del volume di montaggio di AppleScript è che non ha un modo per specificare il punto di montaggio e di conseguenza monta solo i volumi /Volumestramite il meccanismo standard del Finder. Quindi, non penso che tu possa farlo tramite AppleScript.

Ma c'è un altro modo. Puoi realizzare la stessa cosa usando il mountcomando di livello inferiore :

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

Dopo aver montato il volume in questo modo, dovresti vedere una normale icona "volume" sul desktop e la ~/mntdirectory apparirà come "condividi" quando navighi nella tua directory utente tramite Finder.

L'unica cosa che manca a questo approccio è il salvataggio delle credenziali di accesso in Keychain. Per farlo, devi fare un po 'più di scripting. Qualcosa come questo.

Salva la password:

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

Recupera la password e monta la condivisione:

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

NOTA: se nella tua password sono presenti caratteri speciali, probabilmente dovrai codificarlo tramite URL, forse in questo modo:

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

Grazie novità e mattdwen! Questo dovrebbe essere un buon lavoro in giro! (e forse una migliore rispetto all'utilizzo di AppleScript)
Hanzaplastique,

4
presumibilmente questo approccio spezzerebbe tutto ciò che fa riferimento ai file /Volumes/share?
Jack,

Avrebbe sicuramente rotto qualcosa del genere.
Br .ill

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.