Làm cách nào tôi có thể gắn kết chia sẻ SMB từ dòng lệnh?


78

Tôi muốn gắn kết chia sẻ mạng SMB từ dòng lệnh (thiết bị đầu cuối); Làm thế nào tôi sẽ đi về điều đó?

Tôi đang sử dụng Mac OS X 10.6.4.

Câu trả lời:


71

Bạn có thể dễ dàng đạt được điều này bằng cách sử dụng mount_smbfs(thực tế là một trình bao bọc cho mount -t smbfs):

mount_smbfs //user@SERVER/folder ./mntpoint

Tùy chọn, thêm nhóm làm việc:

mount_smbfs -W workgroup //user@SERVER/folder ./mntpoint

Tất nhiên, bạn có thể thay đổi ./mntpoint(cho một cái gì đó như /Volumes/smb).

Sau khi làm điều này, chỉ cần đi đến ./mntpointđể duyệt dữ liệu của bạn.

Để ngắt kết nối, sử dụng lệnh sau:

umount ./mntpoint

2
Tôi nhận được: `mount_smbfs: mount mount: path: Lỗi đầu vào / đầu ra ', trong khi nó gắn kết tìm thấy thông qua Finder-> Kết nối với máy chủ?
Ian Vaughan

Làm thế nào để tôi đi về nó nếu tên người dùng của tôi có @ char trong đó? Ví dụ: khi tôi đang sử dụng tài khoản microsoft như xyz@microsoft.com? Tôi đã thử cung cấp tên người dùng trong dấu ngoặc đơn và dấu ngoặc kép nhưng không hoạt động ..
Yashvit

2
Tôi nhận được lỗi này:mount_smbfs: could not find mount point /Volumes/Share: No such file or directory
Iulian Onofrei

11
Trích dẫn từ man mounttrên OS X Yosemite:Note: You should always use the system mount command and never call mount_smbfs directly.
ssc

3
@Yashvit: Thay đổi '@' thành '% 40'
WGroleau

70

Sử dụng open(1)lệnh và URL:

open 'smb://username:password@server/share'

Ưu điểm: Tạo điểm gắn kết /Volumescho bạn.

Nhược điểm: Yêu cầu Finder đang chạy.


4
Tôi thích phiên bản này cho các kết nối nhanh trong mạng cục bộ của mình, có tất cả người dùng được biết đến, vì vậy đây là một lệnh đơn giản hơn sau đó sử dụng mount_smbfs - nơi tôi thực sự có vấn đề liên quan đến các đường dẫn không tồn tại - trong khi đó nếu tôi cần kết nối với một số máy chủ mới với hệ thống tập tin đặc biệt, hoặc tôi sẽ cần phải thử một người dùng khác hoặc muốn có điểm gắn kết khác - ok - nhưng điều này có thường xuyên xảy ra không ... vì vậy ngón tay cái của tôi đi lên cho giải pháp đơn giản hơn này! Làm tốt! Ok tôi là một kẻ lập dị Terminal vẫn còn Finder, nhưng nó giống như 90% chúng ta, phải không?
phần mềm hexerei

Không phải Finderlúc nào cũng mở, ít nhất là một quá trình?
Iulian Onofrei

1
@Iulian Onofrei: Không trừ khi người dùng đăng nhập tương tác. Tôi cần sử dụng mountlệnh trực tiếp trong croncông việc. Sử dụng openlệnh, những điều này sẽ thất bại nếu phiên tương tác không còn, ví dụ, sau khi mất điện.
George

Ngoài ra, lưu ý rằng openluôn luôn thoát như thể nó đã thành công nếu nó chuyển lệnh cùng với Finder, ngay cả khi lệnh sau đó không kết nối được với ổ đĩa mạng.
Jonathan Wren

24

Bạn nên xem trợ giúp của mount:

man mount

Khi kiểm tra kỹ hơn bạn sẽ thấy loại hệ thống tập tin là:

mount -t smbfs //username:password@MACHINENAME/SHARENAME /SomeLocalFolderOfChoice

Mật khẩu (và lý thuyết tên người dùng) là tùy chọn.

Kết quả của lệnh trên sẽ không có đầu ra (nếu tất cả đều ổn), nhưng a cd /SomeLocalFolderOfChoice, sẽ tạo ra kết quả từ xa. Xin lưu ý rằng phải có một sốLocalFolderofChoice .

Bạn cũng có thể sử dụng mount_smbfs để thay thế mount -t smbfs.


5

Điều gì làm việc cho tôi để làm cho chúng gắn kết trong khi khởi động:

==> /etc/auto_master <==
#
# Automounter master map
#
+auto_master        # Use directory service
/net            -hosts      -nobrowse,hidefromfinder,nosuid
/home           auto_home   -nobrowse,hidefromfinder
/Network/Servers    -fstab
/-          -static
/-          auto_smb          # add this line <**********

==> /etc/auto_smb <==         # Create this if it doesn't exist <****
/(not Volumes)/Public   -fstype=smbfs,soft smb://(user):(password)@192.168.140.5/data/Public
/(not Volumes)/ WGroleau -fstype=smbfs,soft smb://(user):(password)@192.168.140.5/data/Students/wes_groleau

Vì một số lý do, cả tên ngắn và FQDN của máy chủ đều không hoạt động, vì vậy tôi đã sử dụng 'ping (tên) để lấy IP. Nói cách khác, DNS sẽ phân giải tên, nhưng mount_smbfs thì không thể.

Và tôi không thể đặt điểm gắn kết trong / Tập, vì khởi động lên sẽ xóa nó.

Một điều khó hiểu: Sau khi điều này hoạt động tốt trong vài ngày, trong hai hoặc ba ngày, LibreOffice, Adobe Reader và Finder không thể tìm thấy MỘT trong hai chia sẻ, nhưng trình bao và TextEdit không gặp vấn đề gì. Sau hai hoặc ba ngày, nó bắt đầu hoạt động trở lại một cách bí ẩn.

Nếu bạn thực hiện các chỉnh sửa này và không muốn khởi động lại, bạn có thể gắn kết chúng với 'auto mount -vc'

Cập nhật: Nhiều quirks. (1) Có hai hệ thống WiFi ở đây và một trong số chúng không có quyền truy cập vào máy chủ Windows. Một vài lần một tuần, một hoặc cả hai bộ định tuyến bị hỏng. Nếu "cái tốt" bị hỏng và MacBook tự động kết nối với cái kia, thay vì nói với tôi rằng ổ đĩa không nối mạng, trình điều khiển SMB sẽ nói "Quá nhiều người dùng". (2) Một vài lần một tuần, tôi bị "từ chối cấp phép" khi tôi cố gắng truy cập các tệp Windows của mình. Việc này thường kéo dài khoảng nửa giờ, trong thời gian đó tôi có thể vào thanh cửa sổ và đăng nhập và xem các tệp có cùng ID và mật khẩu.


Vì điều này đã được nâng cấp hai lần trong tuần này, tôi nên chỉ ra rằng nó đã được viết một số phiên bản MacOS trước đây.
WGroleau

4

Sử dụng AppleScript thuận tiện vì nó lưu trữ mật khẩu của bạn trong Keychain. Hàm Bash:

function mymount
{
    osascript <<EOF
mount volume "smb://user@fqdn1/volume1"
mount volume "smb://user@fqdn2/volume2"
EOF
}

Gọi 'mymount' từ bash, nhập mật khẩu qua cửa sổ bật lên Keychain tiêu chuẩn và nếu mọi việc suôn sẻ, khối lượng được yêu cầu sẽ được gắn vào / Tập.


Đó cũng là cách tiếp cận hoàn hảo. Tôi không thích câu trả lời được chấp thuận vì nó gắn kết với tư cách người dùng root. Theo tôi, những chiếc áo lót này nên là lựa chọn tốt nhất: /usr/bin/osascript -e 'mount volume "smb://username:password@server/share"'hoặcopen /Volumes; open 'smb://username:password@server/share'
laimison

3

Tôi sẽ thêm rằng nếu bạn có tên người dùng ở dạng "nhóm làm việc \ tên người dùng", bạn nên gắn kết nó như thế này:

mount -t smbfs "//WORKGROUP;username:password@MACHINENAME/SHARENAME" /SomeLocalFolderOfChoice

Nguồn: điều chỉnh một ví dụ từ đây


-1

bài cũ nhưng những gì về gắn kết như thế này:

smb://no_username:password@MACHINENAME 

như ổ đĩa thời gian?


1
"từ dòng lệnh (terminal)" ... đây không phải là lệnh bash hợp lệ. Tôi giả sử bạn có ý nghĩa với Finder + K để kết nối với máy chủ không phải là những gì OP yêu cầu.
mattmc3
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.