一. samba的安裝:linux
sudo apt-get install samba // (sudo get temp root auth)ios
sudo apt-get install smbfs //舊版本ubuntu
sudo apt-get install cifs-utils //新版本windows
上面的命令將會安裝Samba和其餘相關的工具。在舊版的Ubuntu中,你可能須要使用 smbfs替代 cifs-utils。安全
sudo apt-get install samba-common服務器
二. 建立共享目錄:網絡
一、系統用戶home目錄下:socket
mkdir /home/wwwroot/test //若是配置的共享目錄不存在則建立工具
chown -R nobody. /home/wwwroot/test //設置共享目錄歸屬爲 nobody測試
sudo chmod 777 /home/wwwroot/test //將共享目錄屬性設置爲 777
說明:test你能夠隨便起個名字作爲共享文件夾
二、普通目錄下:
如建立/mydir/private 和 /mydir/public 目錄 ( 注意權限問題,否則致使不能訪問)
mkdir -p /mydir/{private,public}
chown -R nobody.nogroup /mydir
chmod -R 777 /mydir
三. 建立Samba配置文件:
[global]
server string = Samba Server Version %v
passdb backend = tdbsam
cups options = raw
security = user //認證模式爲User
map to guest = bad user //這個很關鍵,實現匿名無須交互輸入用戶名和密碼就靠它了
guest account = guest //匿名用戶映射爲guest用戶
[myshare]
comment = My share
path = /home/wwwroot/test //共享路徑
browseable = Yes //能夠被瀏覽,就是在網絡鄰居中能看到共享名
read only = No //可讀寫
guest ok = Yes //容許匿名訪問,這個也須要設置,不然匿名沒法訪問
valid users = samba liuag guest //有效的用戶和組
invalid users = liuben //無效用戶和組
read list = samba //只讀用戶和組(若是read only = No,只讀用戶須要在此設置)
write list = liuag //可讀寫用戶和組(若是read only = Yes,可讀寫用戶須要在此設置)
allow hosts = 192.168.100.236 //容許訪問主機列表,支持通配
deny hosts = 192.168.100.0/24 //禁止訪問主機列表,支持通配符
示例
[global]
workgroup = WORKGROUP
server string = samba server on ubuntu
netbios name = ubuntu_smb
interfaces = 127.0.0.0/8 eth0
hosts allow = 192.168.1. 192.168.163. 192.168.153.
security = user
username map = /etc/samba/smbusers
encrypt passwords = true
passdb backend = smbpasswd
smb passwd file =/etc/samba/smbpasswd
log file = /var/log/samba/log.%m
max open files = 1000
socket options = TCP_NODELAY
;[homes]
; comment = home directories
; browseable = no
; writable = yes
; valid users = %S
; create mode = 0664
;[printers]
; printable = Yes
; browseable = No
; path = /var/spool/samba
示例一:
[test]
comment = code //comment是對該共享的描述,能夠是任意字符串。
path = /home/wwwroot/test
available = yes
browseable = yes
public = yes //容許匿名用戶登陸
writable = yes
valid users = dev
create mask = 0700
directory mask =0700 force user =nobody
force group = nogroup
說明:valid users = myname 這個myname是本身起的,我這裏是dev,後面在添加用戶名時就是添加的這個;
另外這個 [test] 名字也是能夠隨便起的,這個是你在windows下訪問時顯示的名字;
在windows下 \162.168.0.168\test就能夠訪問linux下/home/wwwroot/test目錄下的內容了;
其中162.168.160.11是你linux的IP地址,用ifconfig就能夠查看到。
示例二:
[www]
path = /home/test/www
available = yes
browseable = yes
public = yes //容許匿名用戶登陸
writable = yes
說明:public 指明該共享資源是否能給遊客賬號訪問,這個開關有時候也叫guest ok,因此有的配置文件中出現guest ok = yes其實和public = yes是同樣的。
而後順便把這裏改一下,找到[global]把 workgroup = MSHOME改爲 WORKGROUP(注意,這裏的WORKGROUP是共享中的工做組名稱) 代碼:(若是沒有也可加上去)
workgroup = WORKGROUP
display charset = UTF-8
unix charset = UTF-8
dos charset = cp936
後面的三行是爲了防止出現中文目錄亂碼的狀況。
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
四. 建立samba賬戶:
如今要添加 myname這個網絡訪問賬戶。若是系統中當前沒有這個賬戶(也能夠用系統中己存在的帳戶如root,god),那麼代碼: sudo useradd myname
上面只是增長了 myname這個系統用戶,卻沒有給用戶賦予本機登陸密碼。因此這個用戶將只能從遠程訪問,不能從本機登陸。並且samba的登陸密碼能夠和本機登陸密碼不同。這個你能夠在重啓機器時看到這個你添加的用戶,可是你卻用它登錄不了系統,由於沒有賦予本機登陸密碼。
sudo touch /etc/samba/smbpasswd
sudo smbpasswd -a myname
(若是你直接用系統中的帳號,這裏myname就是你係統中的帳戶便可)而後會要求你輸入samba賬戶的密碼,這個密碼不是開機登陸時候用的,是你要訪問WIN共享文件或者WIN共享文件訪問你的時候要填的密碼。
刪除網絡使用者的賬號的命令把上面的 -a 改爲 -x 即: sudo smbpasswd -x myname
smbpasswd 命令的用法
smbpasswd -a 增長用戶(要增長的用戶必須以是系統用戶)
smbpasswd -d 凍結用戶,就是這個用戶不能在登陸了
smbpasswd -e 恢復用戶,解凍用戶,讓凍結的用戶能夠在使用
smbpasswd -n 把用戶的密碼設置成空.
要在global中寫入 null passwords -true
smbpasswd -x 刪除用戶
五. 用戶帳號映射 :
samba的用戶賬號信息是保存在smbpasswd文件中的,並且能夠訪問samba服務器的賬號也必須對應一個同名的系統賬號。基於這 一點,因此,對於一些hacker來講,只要知道samba服務器滴samba賬號,就等因而知道了Linux系統賬號,只要crack其samba賬號密碼加以利用就能夠攻擊samba服務器。因此咱們要使用用戶賬號映射這個功能來解決這個問題。
用戶賬號映射這個功能須要創建一個賬號映射關係表,裏面記錄了samba賬號和虛擬賬號的對應關係,客戶端訪問samba服務器時就使用虛擬來登陸。
1)編輯主配置文件vi /etc/samba/smb.conf
在//下添加一行字段username map = /etc/samba/smbusers開啓用戶賬號映射功能。
2)編輯 vi /etc/samba/smbusers
smbusers文件保存賬號映射關係,其有固定滴格式:
samba賬號 = 虛擬賬號(映射賬號)
myname = networkusername
賬號myname就是咱們上面創建的samba賬號(同時也是Linux系統賬號),networkusername就是映射的賬號名(虛擬賬號),賬號 myname在咱們訪問共享目錄時只要輸入networkusername就能夠成功訪問了,可是實際上訪問samba服務器的仍是咱們的myname賬號,這樣一來就解決了安全問題。
3)重啓samba服務:service smbd restart
4)驗證效果 輸入咱們定義的映射賬號networkusername,注意咱們沒有輸入賬號myname,映射賬號networkusername的密碼和myname賬號同樣,如今就能夠經過映射賬號瀏覽共享目錄了。
六. 重啓samba服務器 :
sudo testparm 驗證一下配置參數有沒有問題,若是有問題在回去修改
sudo /etc/init.d/samba restart (不知爲何,個人這個目錄下就是沒有這個,用這個命令老是報錯)
service samba restart
service smbd restart
七. 測試:
smbclient -L //localhost/share 或者
smbclient -L \127.0.0.1 -U myname //這時輸入的密碼就是你剛纔設置的samba密碼
八. 使用 :
能夠到windows下輸入ip使用了,在文件夾處輸入 "\" + "Ubuntu機器的ip或主機名" + "\" + "share"; 個人即爲:\162.168.160.11\share(share就是剛纔smb.conf中的[share])第一次進入時要輸入用戶名和密碼,這個就是你在第四步中設置的用戶名和密碼。
九. samba的卸載:
dpkg -l |grep samba
dpkg -l |grep smbfs
dpkg -l |grep smb
apt-get remove samba\smbfs\smb
ubuntu12.04samba服務器配置
系統平臺:VMware Workstation9.0 + ubuntu12.04
首先要解決windows和linux網絡鏈接問題:
在VMware Workstation9.0 「設置」 選項中,設置"網絡"
網絡鏈接1 選中「啓用網絡鏈接」 方式:NAT
網絡鏈接2 選中「啓用網絡鏈接」 方式:Bridged Adapter
啓動ubuntu,查看地址: #ifconfig eth0
注:你的LINUX裏面可能有兩塊網卡eth0和eth1,分別看一下他們的IP地址,有一個是和你的WINDOWS本地鏈接IP地址在一個網段的(之後就使用這個IP地址登陸samba,也是掛載NFS服務器的IP)
再說一下關於IP地址的配置(以我本身的電腦舉例): 我是用ADSL拔號上網,windows本地鏈接的IP地址是自動獲取的,IP爲:192.168.1.45
查一下linux下eth0的IP爲:10.0.2.15;eth1的IP爲192.168.1.42
那eth1即爲linux的本地鏈接的IP地址,也就是samba服務器的IP地址
關閉LINUX防火牆命令: #ufw disable
注:ufw是linux下的防火牆操做命令,相關的操做能夠查看命令幫助
而後就在windows下ping一下linux的IP,若是能ping通,就能夠繼續下面的內容,若是ping不通就再找找緣由
注:ubuntu 12.04已經安裝了最新版本的samba服務器,無需安裝。若是使用12.04之前的版本,最好是按下邊的方法升級一下samba,12.04版本無需下列操做
卸載samba,smbclient,samba-common
$sudo apt-get remove samba-common
$sudo apt-get remove smbclient
$sudo apt-get remove samba
安裝Ubuntu samba服務器:
sudo apt-get install samba
sudo apt-get install smbfs
開始配置:
samba配置文件: /etc/samba/smb.conf
能夠修改配置文件來設置samba共享和用戶
若是不習慣使用配置文件,也可使用圖形界面
安裝Ubuntu samba圖形管理界面
#sudo apt-get install system-config-samba
啓動samba圖形管理界面
#sudo system-config-samba
也能夠選擇菜單: system->Administration->Samba
配置方法和RedHat9中同樣
選擇要共享的目錄 設置讀寫權限 設置訪問權限 添加samba用戶
配置完成後要重啓samba
#sudo /etc/init.d/smbd restart