samba的配置及使用

2021-06-16 05:12:40 字數 3487 閱讀 6232

前幾天使用winscp在windows和linux之間拷貝檔案,結果由於編碼的設定不當,導致在windows下檢視linux上的檔案時中文字元全是亂碼,而且不能拷貝。google了下winscp亂碼相關的問題,但是根據這些方法都沒能解決這個問題。於是決定使用大名鼎鼎的samba。下面以ubuntu 10.04為例,簡單的說明samba的配置和使用方法。

1. 安裝samba

# apt-get install samba smbfs

啟動samba服務

# /etc/init.d/smbd start

# /etc/init.d/smbd restart

停止samba服務

# /etc/init.d/smbd stop

2. 配置samba

samba的配置檔案是/etc/samba/smb.conf,該配置檔案主要可以分成兩部分,一部分是以"[global]"開始的全域性設定部分,剩下的則各個共享的設定。下面通過乙個簡單的例子來說明,配置檔案中常用的一些配置的含義,配置檔案的內容如下:

[global]

workgroup = workgroup

server string = %h server

netbios name = nc1

server string = linux samba server testserver

security = share

[public]

path = /opt/public

writeable = yes

browseable = yes

guest ok = yes

上面這段配置檔案的含義如下:

[global]這段是全域性配置,是必段寫的。

workgroup 就是windows中顯示的工作組;

netbios name 就是在windows中顯示出來的計算機名;

server string 就是samba伺服器說明,可以自己來定義;這個不是什麼重要的;

security 這是驗證和登入方式,這裡我們用了share ;驗證方式有好多種,這是其中一種;

另外一種常用的是user的驗證方式;如果用share呢,就是不用設定使用者和密碼了;

[public] 這個在windows中顯示出來是共享的目錄;

path = 可以設定要共享的目錄放在**;

writeable 是否可寫,這裡我設定為可寫;

browseable 是否可以瀏覽,可以;可以瀏覽意味著,我們在工作組下能看到共享資料夾。

如果您不想顯示出來,那就設定為 browseable=no;

guest ok 匿名使用者以guest身份登入

新增上述配置後,建立/opt/public目錄,並將其所屬的使用者改為nobody,如下:

# mkdir -p /opt/public

# chown -r nobody:nogroup /opt/public

重啟samba,在windows的位址列中輸入「//linux主機ip位址」,就應該可以看到乙個public的資料夾,而且你可以往該資料夾寫東西,建立新的檔案。呵呵,是不是很簡單啊,下面在看看其他的一些應用場景。

場景1.  建立乙個共享目錄,所有的人都讀寫,且不需要登入

[global]

。。。security = share

[scene1]

path = /opt/scene1

writeable = yes

browseable = yes

guest ok = yes

# mkdir -p /opt/scene1

# chown -r nobody:nogroup /opt/scene1

場景2. 建立乙個共享目錄,所有的人都只能讀,不能寫,且不需要登入

[global]

。。。security = share

[scene2]

path = /opt/scene2

writeable = no

browseable = yes

guest ok = yes

# mkdir -p /opt/scene2

# chown -r nobody:nogroup /opt/scene2

場景3. 建立乙個共享目錄,匿名使用者不能訪問,必須登入才能讀寫

# 新增使用者

# mkdir -p /home/user1

# groupadd user1

# useradd -g user1 -d /home/user1 -s /sbin/nologin user1

# chown -r user1:user1  /home/user1

# 將該使用者新增到samba,並為其設定登入密碼

#smbpasswd -a user1

new smb password:

retype new smb password:

# 修改samba配置檔案

[user1]

path = /home/user1

directory mask = 0755

create mask = 0644

writeable = yes

browseable = yes

valid user = user1

其他的情況可以參考上述配置進行自由的更改。

關於亂碼的解決方法:

編碼的設定需要根據linux系統的配置做出調整,如果系統的locale是zh_hk.utf-8等含有utf-8的編碼,則在global中新增

display charset = utf-8

unix charset = utf-8

dos charset = cp936

如果locale是zh_cn.gbk或zh_cn.gb2312,則如下設定:

display charset = cp936

unix charset = cp936

dos charset = cp936

隱藏印表機:

如果你使用samba只是進行檔案共享,那麼你可以不想看到印表機的圖示,通過在global中新增如下的配置可以很容易做到。

disable spoolss = yes

3. 使用samba

通過適當的配置,現在直接在windows的位址列中輸入「//linux主機ip位址」就應該能夠看到那些共享的檔案了。如果你想長期的占用,可以通過windows的「對映網路驅動器」來實現。

同樣,在linux下想要訪問windows下的檔案也很簡單,通過mount命令即可。

# mount -t smbfs  -o codepage=cp936,username=使用者名稱,password=密碼  //ip位址或計算機名/共享資料夾名   掛載點

# smbmount  -o codepage=cp936,username=使用者名稱,password=密碼 //ip位址或計算機名/共享資料夾名    掛載點

除了mount和smbmount,linux還有很多任務具可以檢視通過samba共享的檔案,這裡不再一一細說。

Samba伺服器的配置及使用

協議 smb server message block 基於tcp ip協議 澳大利亞人開發 功能檔案 印表機 客戶win9x winnt linux unix dos usr sbin smbd 處理來自使用者的連線 檔案 許可權 使用者名稱的管理 usr sbin nmbd 幫助快速定位伺服器,...

Samba的配置和使用

教程 http www.linuxsir.org main q node 158 samba的位置 etc init.d b 用cat命令可以檢視此檔案內容,可見其有start stop restart reload rhstatus等函式。啟動 b root localhost etc init....

samba安裝及使用

samba是在linux和unix系統上實現smb協議的乙個免費軟體,由伺服器及客戶端程式構成。smb server messages block,資訊服務塊 是一種在區域網上共享檔案和印表機的一種通訊協議,它為區域網內的不同計算機之間提供檔案及印表機等資源的共享服務。1.samba的作用 samb...