Làm thế nào để biến Pi Raspberry của bạn thành một máy chủ tập tin bằng cách sử dụng Samba
Trở lại những năm 1990, Microsoft đã phát triển một giao thức cho phép một máy Windows truy cập các tệp và thư mục trên một máy Windows khác. Giao thức này, được gọi là Hệ thống tệp Internet phổ biến (CIFS) - nhưng ban đầu được gọi là Khối thông báo máy chủ (SMB), đã được triển khai trên các hệ điều hành khác bao gồm Linux. Việc triển khai phổ biến nhất được gọi là Samba và nó cho phép các thiết bị như Raspberry Pi hoạt động như một máy chủ tệp CIFS. Nói cách khác, nó cho phép một máy tính Windows gắn kết một thư mục trên một Raspberry Pi và sau đó sao chép, xóa, đọc và ghi các tập tin trên nó.
Cài đặt và cấu hình Samba trên Raspberry Pi để chia sẻ tệp cơ bản khá đơn giản. Trước tiên, phần mềm Samba cần được cài đặt. Để thực hiện việc này, sử dụng lệnh sau:
sudo apt-get cài đặt samba samba-common-bin
Tất cả thông tin cấu hình về Samba được lưu trong tập tin /etc/samba/smb.conf
. Tệp cấu hình mặc định chỉ cần một chút tinh chỉnh để các thư mục chính của người dùng có thể được chia sẻ.
Thay đổi đầu tiên cần thực hiện là xác định loại cơ chế bảo mật nào sẽ được sử dụng để kiểm soát ai có quyền truy cập vào các tệp được chia sẻ. Cách đơn giản nhất là cái được gọi là "bảo mật mức người dùng" và về cơ bản nó có nghĩa là để truy cập vào một thư mục được chia sẻ, máy khách kết nối cần cung cấp một tên người dùng và mật khẩu hợp lệ.
Theo mặc định, Samba xuất các thư mục chính thành chỉ đọc. Thay đổi thứ hai sẽ thay đổi điều này để khi bạn truy cập vào một thư mục được chia sẻ, bạn có khả năng đọc và viết (nghĩa là bạn cũng có thể tạo các tệp mới, xóa tệp và vv).
Chỉnh sửa tệp cấu hình Samba bằng cách sử dụng:
sudo nano /etc/samba/smb.conf
Bây giờ hãy cuộn xuống cho đến khi bạn tìm thấy dòng # security = user
và xóa hash (#) khỏi đầu dòng:
Cuộn xuống xa hơn cho đến khi bạn tìm thấy phần [Homes]
và thay đổi read only = yes
thành read only = no
như được hiển thị bên dưới:
Nhấn “Ctrl + X” để thoát khỏi trình chỉnh sửa nano và nhập “Y” để xác nhận rằng tệp sẽ được lưu. Nhấn ENTER để giữ tên tệp hiện tại (ví dụ: /etc/samba/smb.conf).
Để khởi động lại máy chủ Samba, hãy sử dụng lệnh sau:
sudo dịch vụ samba khởi động lại
Cũng có thể yêu cầu máy chủ Samba đọc lại tệp cấu hình mà không cần khởi động lại máy chủ (nghĩa là mọi kết nối hiện tại sẽ không bị mất). Tuy nhiên nhược điểm là lệnh sẽ báo cáo OK
ngay cả khi máy chủ không chạy. Nếu bạn không chắc chắn về trạng thái đang chạy của máy chủ, hãy sử dụng lệnh restart
ở trên.
sudo dịch vụ samba tải lại
Có một bước cuối cùng trước khi bạn có thể truy cập các thư mục được chia sẻ. Vì máy chủ đang sử dụng "bảo mật cấp người dùng", nên cần phải xác định mật khẩu khi CIFS được sử dụng để truy cập các tệp trên Raspberry Pi. Để đặt mật khẩu Samba cho người dùng pi
mặc định, hãy nhập:
sudo smbpasswd –a pi
Thao tác này sẽ thêm pi
người dùng vào danh sách người dùng Samba và nhắc nhập mật khẩu. Bạn cần phải lặp lại bước này cho bất kỳ người dùng nào khác mà bạn có thể đã thêm vào Raspbian.
Kết nối từ Windows
Bây giờ bạn có thể kết nối với Raspberry Pi của bạn từ một máy Windows. Mở cửa sổ “Computer” (trên Windows 7) hoặc “This PC” (trên Windows 8) và nhấp vào nút “Map Network Drive” trên thanh công cụ (Windows 7) hoặc nhấp vào nút “Map Network Drive” bên dưới “Computer” (trên Windows 8).
Trong hộp thoại Ánh xạ ổ đĩa mạng, chọn và ký tự ổ đĩa không sử dụng từ danh sách thả xuống “Drive:” và nhập \\raspberrypi\pi
vào trường “Thư mục:”. Kiểm tra "Kết nối bằng cách sử dụng thông tin đăng nhập khác nhau" và nhấp vào "Hoàn tất".
Nhập pi
vào trường Tên người dùng khi bạn được yêu cầu nhập thông tin đăng nhập mạng. Nhập mật khẩu bạn đã đặt trước đó vào trường mật khẩu và nhấp vào OK.
Sau khi kết nối, bạn có thể thao tác các tập tin trên Raspberry Pi bằng Windows Explorer.
Phần kết luận
Theo mặc định, tất cả các thư mục nhà của người dùng được chia sẻ và miễn là mật khẩu Samba đã được đặt thì mọi người dùng trên Pi có thể truy cập các tệp của họ. Nó cũng có thể kết nối với Pi trên cùng một giao thức “Windows networking” từ OS X và Linux, vì cả hai đều hỗ trợ CIFS.