macOS Sierra: Khối lượng gắn kết AppleScript tiếp tục yêu cầu đăng nhập


12

Đối với một số phiên bản OS X tôi đã sử dụng:

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

Điều này đã làm việc rất tốt, một phần tốt đẹp và yên tĩnh của chia sẻ mạng, nếu nó có sẵn tất nhiên.

Gần đây tôi đã cài đặt macOS Sierra (10.12 beta công khai, bản dựng 16A238m) và tập lệnh vẫn hoạt động, tuy nhiên, nó sẽ đột nhiên luôn hiển thị hộp thoại đăng nhập, được điền trước các giá trị "yourusername" và "yourpassword". Người dùng sẽ vẫn phải nhấp vào "Kết nối" để gắn kết chia sẻ.

Có ai biết đây có phải là "lỗi" trong phiên bản beta không (tôi đã báo cáo vấn đề này với ứng dụng Phản hồi của Apple), hoặc điều này có được mong đợi không và / hoặc điều gì sẽ là "sửa chữa" cho điều đó?

Xem thêm: Tài liệu AppleScript "khối lượng gắn kết"


3
Nó có thể liên quan đến thực tế Apple đã khóa /Volumesthư mục nơi chia sẻ mạng chỉ được gắn vào quyền truy cập root, yêu cầu ủy quyền của người dùng để tạo điểm gắn kết. Thật không may, tôi không biết về một công việc xung quanh vào lúc này, mặc dù tôi sẽ chơi với sửa đổi sudoers trên máy tính. Tôi có một Radar mở tại openradar.appspot.com/radar?id=4948585099558912 trong đó Apple đã xác nhận rằng nó đã bị khóa.
mattdwen

Câu trả lời:


14

Khi Apple trả lời vé được tham chiếu trong liên kết Open Radar của mattdwen ở trên, kể từ macOS Sierra 10.12,

bạn không còn có thể tạo các mục trong / Tập trừ khi root.

Hơn nữa, sự hiểu biết tốt nhất của tôi về lệnh âm lượng gắn kết AppleScript là nó không có cách nào để chỉ định điểm gắn kết và do đó, nó chỉ gắn kết âm lượng /Volumesthông qua cơ chế tiêu chuẩn của Finder. Vì vậy, tôi không nghĩ bạn có thể làm điều đó thông qua AppleScript.

Nhưng có một cách khác. Bạn có thể thực hiện điều tương tự bằng cách sử dụng mountlệnh cấp dưới :

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

Sau khi gắn âm lượng theo cách này, bạn sẽ thấy biểu tượng "âm lượng" bình thường xuất hiện trên màn hình của mình và ~/mntthư mục sẽ xuất hiện dưới dạng "chia sẻ" khi bạn duyệt thư mục người dùng của mình qua Finder.

Điều còn thiếu từ phương pháp này là lưu thông tin đăng nhập trong Keychain. Để làm điều đó, bạn phải làm thêm một chút kịch bản. Một cái gì đó như thế này.

Lưu mật khẩu:

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

Lấy lại mật khẩu và gắn kết chia sẻ:

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

LƯU Ý: Nếu bạn có các ký tự đặc biệt trong mật khẩu của mình, có thể bạn sẽ cần phải mã hóa URL, có thể như thế này:

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

Cảm ơn bạn mnewt và mattdwen! Đây sẽ là một công việc tốt xung quanh! (và có thể là một thứ tốt hơn so với sử dụng AppleScript)
Hanzaplastique

4
Có lẽ cách tiếp cận này sẽ phá vỡ bất cứ điều gì tham chiếu các tập tin theo /Volumes/share?
Jack

Nó chắc chắn sẽ phá vỡ bất cứ điều gì như thế.
Br.Bill

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.