macOS Sierra: Volume pemasangan AppleScript terus meminta login


12

Untuk beberapa versi OS X saya telah menggunakan:

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

Ini telah bekerja dengan baik, mount jaringan yang bagus dan tenang, jika tersedia tentu saja.

Sekarang baru-baru ini saya menginstal macOS Sierra (10.12 beta publik, build 16A238m), dan skrip masih berfungsi, namun sekarang tiba-tiba akan selalu menampilkan dialog login, yang sudah diisi sebelumnya dengan nilai "nama pengguna" dan "kata sandi Anda". Pengguna masih harus mengklik "Sambungkan" untuk memasang pembagian.

Adakah yang tahu apakah ini "bug" dalam versi beta (saya melaporkan ini dengan aplikasi Umpan Balik Apple), atau apakah ini yang diharapkan dan / atau apa yang akan menjadi "perbaikan" untuk itu?

Lihat juga: Dokumentasi AppleScript "mount volume"


3
Ini mungkin terkait dengan fakta bahwa Apple telah mengunci /Volumesfolder di mana jaringan berbagi dipasang hanya untuk me-root akses, yang memerlukan otorisasi pengguna untuk membuat titik mount. Sayangnya saya tidak tahu pekerjaan di sekitar saat ini, meskipun saya akan bermain dengan memodifikasi sudoers di komputer. Saya memiliki Open Radar di openradar.appspot.com/radar?id=4948585099558912 ketika Apple telah mengkonfirmasi itu dikunci.
mattdwen

Jawaban:


14

Ketika Apple menjawab tiket yang dirujuk dalam tautan Open Radar mattdwen di atas, pada macOS Sierra 10.12,

Anda tidak dapat lagi membuat item di / Volume kecuali root.

Selanjutnya, pemahaman terbaik saya tentang perintah volume AppleScript adalah bahwa ia tidak memiliki cara untuk menentukan titik mount dan akibatnya itu hanya me-mount volume di bawah /Volumesmelalui mekanisme standar Finder's. Jadi, saya tidak berpikir Anda bisa melakukannya melalui AppleScript.

Tapi ada cara lain. Anda dapat mencapai hal yang sama menggunakan mountperintah level bawah :

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

Setelah memasang volume dengan cara ini, Anda akan melihat ikon "volume" yang normal muncul di desktop Anda dan ~/mntdirektori akan muncul sebagai "bagikan" ketika Anda menelusuri direktori pengguna Anda melalui Finder.

Satu hal yang hilang dari pendekatan ini adalah menyimpan kredensial login di Keychain. Untuk melakukan itu, Anda harus melakukan lebih banyak scripting. Sesuatu seperti ini.

Simpan kata sandi:

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

Ambil kata sandi dan pasang berbagi:

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

CATATAN: Jika Anda memiliki karakter khusus di kata sandi, Anda mungkin perlu menyandikan URL-nya, mungkin seperti ini:

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

Terima kasih, mnewt dan mattdwen! Ini harus menjadi pekerjaan yang bagus! (dan mungkin yang lebih baik daripada menggunakan AppleScript)
Hanzaplastique

4
mungkin pendekatan ini akan merusak apa pun yang merujuk file di bawah /Volumes/share?
Jack

Pasti akan merusak yang seperti itu.
Br.Bill

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.