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
これは/Volumes、ネットワーク共有がマウントされているフォルダーをルートアクセスのみにロックし、マウントポイントを作成するためのユーザー認証を必要とするという事実に関連している可能性があります。残念ながら、現在のところ回避策はわかりませんが、コンピューターでsudoerを変更してみます。私はopenradar.appspot.com/radar?id=4948585099558912に Open Radarを持っています。Appleはロックされていることを確認しています。
mattdwen

回答:


14

Apple がmacOS Sierra 10.12の時点で、上記のmattdwenのOpen Radarリンクで参照されているチケットに返信したとき、

ルートでなければ、/ Volumesにアイテムを作成できなくなります。

さらに、AppleScriptのmount volumeコマンドについての私の理解は、マウントポイントを指定する方法がないため、Finderの標準メカニズムを介してボリュームをマウントするだけであること/Volumesです。だから、私はあなたがAppleScript経由でそれを行うことができるとは思いません。

しかし、別の方法があります。下位レベルのmountコマンドを使用して同じことを達成できます:

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

この方法でボリュームをマウントすると、デスクトップに通常の「ボリューム」アイコンが表示され、~/mntFinderでユーザーディレクトリを参照すると、ディレクトリが「共有」として表示されます。

このアプローチで欠けているのは、ログイン資格情報をキーチェーンに保存することです。そのためには、もう少しスクリプトを作成する必要があります。このようなもの。

パスワードを保存します。

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

mnewtとmattdwenに感謝します!これは良い回避策です!(およびAppleScriptを使用するよりも優れている可能性があります)
Hanzaplastique

4
おそらくこのアプローチは、下のファイルを参照する何かを壊すでしょう/Volumes/share
ジャック、

それは間違いなくそのような何かを壊すでしょう。
Br.Bill

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.