macOS Sierra: AppleScript bağlama birimi sürekli oturum açmayı istiyor


12

Kullandığım birkaç OS X sürümü için:

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

Tabii varsa, bu ağ paylaşımının güzel ve sessiz bir montajı harika çalıştı.

Son zamanlarda macOS Sierra'yı (10.12 genel beta, 16A238m derlemesi) yükledim ve komut dosyası hala çalışıyor, ancak şimdi aniden her zaman "kullanıcı adınız" ve "şifreniz" değerleri ile doldurulmuş bir giriş iletişim kutusu gösterecek. Kullanıcının paylaşmayı yüklemek için yine de "Bağlan" ı tıklaması gerekir.

Herkes bu beta sürümünde bir "hata" olup olmadığını biliyor mu (Apple'ın Geri Bildirim uygulaması ile bunu rapor) veya bu beklenen ve / veya bunun için "düzeltme" ne olurdu?

Ayrıca bkz: AppleScript Belgeleri "bağlama birimi"


3
Bu, Apple'ın /Volumesağ paylaşımının yalnızca kök erişimine bağlandığı klasörü kilitlemesi ve kullanıcı için bağlantı noktası oluşturma yetkisi gerektirmesi ile ilgili olabilir. Maalesef şu anda etrafta bir çalışma bilmiyorum, ancak bilgisayarda sudo değiştirerek oynayacağım. Ben de bir Açık Radar var openradar.appspot.com/radar?id=4948585099558912 Elma aşağı kilitli doğruladı wheren.
mattdwen

Yanıtlar:


14

Apple, mactd Sierra 10.12'den itibaren, mattdwen'in Açık Radar bağlantısında belirtilen bilete yanıt verdiğinden ,

artık root olmadan / Birimler'de öğe oluşturamazsınız.

Ayrıca, AppleScript mount birim komutunu en iyi anladığım , bağlama noktasını belirtmenin bir yolu olmaması ve sonuç olarak yalnızca/Volumes Finder'ın standart mekanizması aracılığıyla birimleri bağlamasıdır . Yani, AppleScript ile yapabileceğinizi sanmıyorum.

Ama başka bir yol daha var. Aynı şeyi alt seviye mountkomutunu kullanarak da yapabilirsiniz :

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

Birimi bu şekilde monte ettikten sonra, masaüstünüzde normal bir "birim" simgesi görmeniz gerekir ve ~/mntFinder üzerinden kullanıcı dizininize göz attığınızda dizin "paylaşım" olarak görünür.

Bu yaklaşımda eksik olan tek şey, oturum açma kimlik bilgilerini Keychain'e kaydetmektir. Bunu yapmak için, biraz daha komut dosyası yapmanız gerekir. Böyle bir şey.

Parolayı kaydedin:

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

Parolayı alın ve paylaşımı bağlayın:

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

NOT: Parolanızda özel karakterler varsa, büyük olasılıkla URL kodlaması yapmanız gerekebilir, belki şu şekilde:

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

Teşekkürler mnewt ve mattdwen! Bu iyi bir iş olmalı! (ve AppleScript kullanmaktan daha iyi bir
seçenek olabilir

4
muhtemelen bu yaklaşım altında dosyaları referans herhangi bir şey kırmak /Volumes/share?
Jack

Kesinlikle böyle bir şeyi kıracaktı.
Br.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.