歡迎您光臨本站 註冊首頁

samba使用說明

←手機掃碼閱讀     火星人 @ 2014-03-29 , reply:0

前幾天為了用SAMBA,仔細地看了官方文檔,終於解決以前的所有問題,現就熱炒熱買一下。

WINDOWS下的網上鄰居使用是NetBIOS協議,LINUX下使用功能強大的SAMBA可以實現與WINDOWS機子共享。下面具體就我的理解具體說一下。

首先當然是你必須安裝了SAMBA
CODE:
#apt-get install samba samba-common smbclient smbfs

其實使用SAMBA分成兩個方面,一個是linux機子上的資源給WINDOWS機子瀏覽,再一個是使用LINUX 機子瀏覽WINDOWS 的網上鄰居。現在假設使用WINDOWS的機子的IP是10.0.0.10,共享目錄是music,用戶名是:share,密碼是:yeah; 使用LINUX機子的IP是:10.0.0.20

一 . 從LINUX上獲取WINDOWS文件的基本方法(有3種方法)

1. smbmount---普通用戶就可以使用的命令

掛載文件
CODE:
#smbmount //10.0.0.10/music /home/user/music -o "username=share,password=yeah"

主意與下面的mount不一樣的是-o後面一定要引號
卸載已經掛載的文件
#smbumount /home/user/music

2. mount---超級用戶才有的許可權,但效果與上面一樣

掛載文件
CODE:
#mount -t smbfs -o username=share,password=yeah //10.0.0.10/music /home/user/music

卸載文件
CODE:
#umount /home/user/music

註:以上兩個命令掛載要想顯示中文,必須添加如下參數
codepage=cp936,iocharset=utf8(與linux機的本地環境一致,如是gb2312,這兒也要寫成:iocharset=gb2312 ; codepage要與遠程一致,是指定源代碼文件的代碼頁---一個內>部表,操作系統用它將符號(字母、數字和標點)映射為字元編號。如932代表日本漢字,950代表繁體中文字符集,說明一下就是codepage是cp936,而不是936,否則在有時顯示漢字還是亂碼。

3. 使用smbclient訪問Windows資源

它是一個類似於ftp操作方式,通過遠程操作的方式進行文件傳遞的軟體。為了獲得網路上可以訪問的計算機列表,首先需要使用 smbclient來獲得一個Windows計算機共享出來的資源,這需要使用-L參數訪問IPC$資源
CODE:
#smbclient -L 192.168.1.150 -N

或者機器名
CODE:
#smbclient -L hit -N

如果不清楚一個Windows計算機的NetBIOS名字,可以使用nmblookup先來解析NetBIOS名字
CODE:
#nmblookup hit (若瀏覽網上鄰居用:#nmblookup -T "*")

當上面查到資源后,就可以用smbclient登陸了
CODE:
#smbclient \\\\hit\\music yeah -U share (其中yeah是密碼,share是用戶名)

執行smbclient命令成功后,進入smbclient環境,出現提示符:smb: \>,然後就可以執行和ftp命令中相似的命令:cd, lcd, get ,mget ,put ,mput等,用法就跟FTP一樣了。

註:要想使用smbclient來訪問windows時,也需要使用UNC來標識Windows資源的位置。此時就需要了解 Windows UNC在Unix>下進行表示的不同之處。不同之處在於Unix的shell下反斜線為特殊字元,它被定義為轉義恢復字元,表示將一些轉義字元恢復為其本身字元的意義。因此必須使用兩個反斜線才能等同於一個反斜線。因此一個UNC實際使用時應使用雙倍的反斜線。

若想使用基於圖形的客戶端:感覺比較好用的是tksmb和smb4k(KDE)

若只是以上使用不用配置/etc/samba/smb.conf,也不用啟動 samba 服務,甚至可以不裝samba程序

二. WINDOWS機子訪問在LINUX上的資源

需要使用兩個進程:nmbd smbd, 前者nmbd是提供WINDOWS瀏覽,後者smbd是針對WINDOWS瀏覽后的登陸等服務。

首先需要說明的是,當samba 還沒有添加用戶時,WINDOWS機子是登陸不上來的,所以第一步就是添加用戶:
CODE:
# smbpasswd -a myfirst

需要說明的是這個用戶必須是系統用戶,否則回提示
CODE:
Failed to initialise SAM_ACCOUNT for user myfirst. Does this user exist in the UNIX password database ?
Failed to modify password entry for user myfirst

當然可以對用戶進行映射,見後面說明。

接著就簡單了,就是配置/etc/samba/smb.conf,見下面一個配置以及相應說明,拷貝后您只需要稍稍修改一些你自己的信息就可以使用了(參考了前人的說明)

/etc/samba/smb.conf文件

######################### 文件開始 #####################################

#*******************************************************************************#
#** 用命令#smbpasswd -a username,則此用戶必須是系統已經存在的用戶,否則會報錯***#
#** 當然可以用全局參數 username map 來進行用戶映射,見此參數設置說明 ***#
#*******************************************************************************#

## /etc/samba/smb.conf配置文件有三個重要的節:[global],[homes],[public]

#Global (全局)參數,該部分設置整個系統的規則,定義了一些公共變數。

[global]

netbios name = jorlon
#定義Windows系統「網上鄰居」中所見的機器名。

workgroup = workgroup
#定義主機所在網路上所屬的NT域名或者工作組名稱

server string = FunField
#對主機的說明信息,預設是:Samba Server

hosts allow = 192.168.1. 192.168.3.
#它允許設置哪些機器可以訪問samba伺服器

guest account = nobody
invalid users = root
#定義smb用戶名稱。

security = user
#定義訪問許可權。訪問許可權由低到高有三種:share、user和server。其中share安全級別最低,user模式要求連接時輸入用戶名和口令

encrypt passwords = true
#設置是否需要加密口令。因為Windows系列默認採用加密口令傳輸,而Linux默認採用非加密口令傳輸,為保證smb網路用戶的正常登錄,在user安全級下設置為加密,在share 安全級下可不設。

smb passwd file = /etc/samba/smbpasswd
#由命令cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd產生。

interfaces = 192.168.1.50/24
#配置smb服務所使用的網卡IP以及子網掩碼,如果有兩個以上網卡,要全部列出。

name resolve order = host dns bcast
#設定smb服務時,從機器netbios名稱到IP地址的解析方式,默認順序為host lmhosts wins bcast。如果區域網內有DNS,可設置為host dns bcast。

wins support = no
#設置是否有wins支持。

public = yes
#為yes時,「網上鄰居」中可見該資源,否則不可見。

browseable = yes
#為yes時,「網上鄰居」中可見該資源,否則不可見。

#printing = bsd
# 指定Linux使用哪個印表機守護進程(bsd、sysv、hpux、aix、qnx、plp),同時向samba說明命令lpr和lpq的預設值。

#printcap name = /etc/printcap
# 定義了列印配置文件所處的位置。

load printers = no
# 表明是否載入printcap 定義的所有印表機以供瀏覽。

log file = /var/log/samba/log.%m
# 定義日誌文件

max log size = 1000
#日誌文件最大1000k (單位是KB)

username map = /etc/samba/smbuser
#允許管理員指定一個映射文件,該文件包含了在客戶機和伺服器之間進行用戶映射的信息。 用戶映射經常在windows 和linux 主機間進行。 兩個系統擁有不同的用戶賬號,用戶映射的目的是將不同的用戶映射成為一個用戶,便於共享文件。

#*********************************************************************#

[homes]

#該部分通常定義了Linux機器上共享的目錄資源,其名字可以由用戶確定。段中的設置控制了每一個用戶目錄的共享許可權。

comment = Home Directories
#設定在瀏覽本機資源時,出現在指定資源旁邊的字元串。

browseable = yes
#控制一項服務是否能夠出現在網上鄰居中,no意味著這個目錄將在瀏覽時顯示為要驗證的用戶名稱,yes則顯示 homes 和要驗證的用戶名稱的共享目錄。

writable = yes
#控制是否允許通過驗證的用戶對主目錄有寫入的許可權,但最終取決於該目錄的 Unix 許可權。無論 Unix 的許可權怎樣, 設置 writable = no 后, 主目錄只能是只讀的。

create mask = 0700
directory mask = 0700
#若上面是可寫的,則設置寫文件和目錄時的屬性


#******************************************************************#

[public]

#用來指定某一特定用戶組或者用戶擁有訪問許可權的目錄配置分,配置共享目錄部分

comment = Public Stuff
# 說明部分

path = /home/samba
#共享的Linux目錄

writable = no
#寫許可權

printable = no
#列印許可權

########################文件結尾####################

用於用戶映射的文件/etc/samba/smbuser

################文件開始###########################
# smb.conf中全局參數 「username map」 指定的映射文件

root = admin administrator
#Map Windows admin to root

hawk = girl
#Map the member of girl to hawk

snake = boy
# 等號左邊是單獨的Linux賬號,等號右邊是要映射的賬號列表。伺服器逐行分析映射文件,如果提供的賬號和某行有右側列表中的賬號匹配,就把它替換為等號左邊的賬號。

####################文件結束#################################

[火星人 ] samba使用說明已經有566次圍觀

http://coctec.com/docs/linux/show-post-204020.html