前言:
本文比較簡略,只求快速入門,若要了解詳情,推薦一篇文章:http://www.cnblogs.com/mchina/archive/2012/12/18/2816717.html
1,安裝samba(大部分linux上默認安裝的可能不完整,建議重新安裝)
#檢測是否安裝,請注意不同安裝包協議命令不盡相同#
rpm -qa|grep samba
#安裝#
yum install samba samba-client samba-swat
2,啟動samba SMB服務
/etc/init.d/smb start
啟動samba NMB服務
/etc/init.d/nmb start
3, 增加用戶和組
groupadd dmp
useradd -g dmp ff
/** 改密-- 密碼最好使用大小寫+特殊字符+數字,否則會需要多次反復重新輸入 **/
passwd ff
4, 重啟samba服務
/etc/init.d/smb restart
/etc/init.d/nmb restart
5, 配置 /etc/samba/smb.conf 增加公共目錄.
[starfish] #相對目錄,供外部訪問# comment = starfish path=/home/ff/starfish_cookie_file #絕對路徑# valid users = @dmp #組名# write list = @dmp #組名# read only = No create mask = 0777 force create model = 0777 directory mask = 0777 force directory mode = 0777 guest ok = yes writable = yes
注:如果條件允許盡量給與目錄盡可能大的權限,相關具體參數請參考官方文檔。
6, 重啟samba服務
/etc/init.d/smb restart
/etc/init.d/nmb restart
7,在root權限下執行目錄權限設置
chmod 777 /home/ff/starfish_cookie_file
8, 更快捷的命令
#查看samba服務狀態#
#service smb status
#service nmb status
#開啟samba服務#
service smb start
#關閉samba服務#
service smb stop
#重啟samba服務#
service smb restart
9,Java代碼訪問.
package org.wit.ff.io; import java.net.MalformedURLException; import jcifs.smb.NtlmPasswordAuthentication; import jcifs.smb.SmbException; import jcifs.smb.SmbFile; import org.junit.Test; /** * * <pre> * Java訪問Samba 示例 * </pre> * * @author F.Fang * @version $Id: SambaDemo.java, v 0.1 2014年9月29日 上午2:45:29 F.Fang Exp $ */ public class SambaDemo { /** * * <pre> * 不推薦. * 原因:若用戶名或密碼中存在'@'符號,則會拋出連接異常,samba訪問路徑錯誤. * </pre> * * @throws MalformedURLException * @throws SmbException */ @Test public void demo1() throws MalformedURLException, SmbException { String conStr = "smb://tomcat:1234567@192.168.21.126/starfish"; SmbFile smbFile = new SmbFile(conStr); if (smbFile.exists()) { // System.out.println("hello world!"); } } /** * * <pre> * 推薦. * 用戶名和密碼獨立傳入. * </pre> * * @throws SmbException * @throws MalformedURLException */ @Test public void demo2() throws SmbException, MalformedURLException { String url = "smb://192.168.21.126/starfish"; NtlmPasswordAuthentication authentication = new NtlmPasswordAuthentication(".", "tomcat", "1234567"); SmbFile smbFile = new SmbFile(url, authentication); if (smbFile.exists()) { // System.out.println("hello world!"); } } }
10, Java客戶端訪問Maven依賴
<dependency> <groupId>jcifs</groupId> <artifactId>jcifs</artifactId> <version>1.3.17</version>
</dependency>