Linux Samba目錄服務搭建與Java客戶端訪問


前言:

      本文比較簡略,只求快速入門,若要了解詳情,推薦一篇文章: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>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM