@import url(http://www.shnenglu.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
一. samba的安裝:
sudo apt-get insall samba // (sudo get temp root auth)
sudo apt-get install smbfs //舊版本
sudo apt-get install cifs-utils //新版本
上面的命令將會(huì)安裝Samba和其他相關(guān)的工具。在舊版的Ubuntu中,你可能需要使用 smbfs替代 cifs-utils。
sudo apt-get install samba-common
二. 創(chuàng)建共享目錄:
1、系統(tǒng)用戶home目錄下:
mkdir /home/john/share //如果配置的共享目錄不存在則創(chuàng)建
chown -R nobody. /home/john/share //設(shè)置共享目錄歸屬為 nobody
sudo chmod 777 /home/john/share //將共享目錄屬性設(shè)置為 777
說明:john為你的ubuntu的用戶名;share你可以隨便起個(gè)名字做為共享文件夾
2、普通目錄下:
如創(chuàng)建/mydir/private 和 /mydir/public 目錄 ( 注意權(quán)限問題,不然導(dǎo)致不能訪問)
mkdir -p /mydir/{private,public}
chown -R nobody.nogroup /mydir
chmod -R 777 /mydir
三. 創(chuàng)建Samba配置文件:
1. smb.conf部分配置說明
[global]
server string = Samba Server Version %v
passdb backend = tdbsam
cups options = raw
security = user //認(rèn)證模式為User
map to guest = bad user //這個(gè)很關(guān)鍵,實(shí)現(xiàn)匿名無須交互輸入用戶名和密碼就靠它了
guest account = guest //匿名用戶映射為guest用戶
[myshare]
comment = My share
path = /home/public //共享路徑
browseable = Yes //可以被瀏覽,就是在網(wǎng)絡(luò)鄰居中能看到共享名
read only = No //可讀寫
guest ok = Yes //允許匿名訪問,這個(gè)也需要設(shè)置,否則匿名無法訪問
valid users = samba liuag guest //有效的用戶和組
invalid users = liuben //無效用戶和組
read list = samba //只讀用戶和組(如果read only = No,只讀用戶需要在此設(shè)置)
write list = liuag //可讀寫用戶和組(如果read only = Yes,可讀寫用戶需要在此設(shè)置)
allow hosts = 192.168.100.236 //允許訪問主機(jī)列表,支持通配符
deny hosts = 192.168.100.0/24 //禁止訪問主機(jī)列表,支持通配符
示例:
[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
[code]
comment = code //comment是對(duì)該共享的描述,可以是任意字符串。
path = /home/songyd/code
writable = yes
browseable = yes
available = yes
2. 保存現(xiàn)有的配置文件
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
3.修改現(xiàn)配置文件
sudo gedit /etc/samba/smb.conf
在smb.conf最后添加
示例一:
[share]
path = /home/john/share
available = yes
browseable = yes
public = yes
writable = yes
valid users = myname
create mask = 0700
directory mask =0700
force user =nobody
force group = nogroup
說明:valid users = myname 這個(gè)myname是自己起的,后面在添加用戶名時(shí)就是添加的這個(gè);
另外這個(gè) [share] 名字也是可以隨便起的,這個(gè)是你在windows下訪問時(shí)顯示的名字;
在windows下 \\162.168.160.11\share就可以訪問linux下/home/god/ code目錄下的內(nèi)容了;
其中162.168.160.11是你linux的IP地址,用ifconfig就可以查看到。
示例二:
[www]
path = /home/test/www
available = yes
browseable = yes
public = yes //允許匿名用戶登錄
writable = yes
說明:public 指明該共享資源是否能給游客帳號(hào)訪問,這個(gè)開關(guān)有時(shí)候也叫g(shù)uest ok,所以有的配置文件中出現(xiàn)guest ok = yes其實(shí)和public = yes是一樣的。
然后順便把這里改一下,找到[global]把 workgroup = MSHOME改成 :(注意,這里的WORKGROUP是共享中的工作組名稱) 代碼:(如果沒有也可加上去)
workgroup = WORKGROUP
display charset = UTF-8
unix charset = UTF-8
dos charset = cp936
后面的三行是為了防止出現(xiàn)中文目錄亂碼的情況。
四. 創(chuàng)建samba帳戶 :
現(xiàn)在要添加 myname這個(gè)網(wǎng)絡(luò)訪問帳戶。如果系統(tǒng)中當(dāng)前沒有這個(gè)帳戶(也可以用系統(tǒng)中己存在的賬戶如root,god),那么代碼:
sudo useradd myname
上面只是增加了 myname這個(gè)系統(tǒng)用戶,卻沒有給用戶賦予本機(jī)登錄密碼。所以這個(gè)用戶將只能從遠(yuǎn)程訪問,不能從本機(jī)登錄。而且samba的登錄密碼可以和本機(jī)登錄密碼不一樣。這個(gè)你可以在重啟機(jī)器時(shí)看到這個(gè)你添加的用戶,但是你卻用它登陸不了系統(tǒng),因?yàn)闆]有賦予本機(jī)登錄密碼。
sudo touch /etc/samba/smbpasswd
sudo smbpasswd -a myname
(如果你直接用系統(tǒng)中的賬號(hào),這里myname就是你系統(tǒng)中的賬戶即可)然后會(huì)要求你輸入samba帳戶的密碼,這個(gè)密碼不是開機(jī)登錄時(shí)候用的,是你要訪問WIN共享文件或者WIN共享文件訪問你的時(shí)候要填的密碼。
刪除網(wǎng)絡(luò)使用者的帳號(hào)的命令把上面的 -a 改成 -x 即: sudo smbpasswd -x myname
smbpasswd 命令的用法
smbpasswd -a 增加用戶(要增加的用戶必須以是系統(tǒng)用戶)
smbpasswd -d 凍結(jié)用戶,就是這個(gè)用戶不能在登錄了
smbpasswd -e 恢復(fù)用戶,解凍用戶,讓凍結(jié)的用戶可以在使用
smbpasswd -n 把用戶的密碼設(shè)置成空.
要在global中寫入 null passwords -true
smbpasswd -x 刪除用戶
五. 用戶賬號(hào)映射 :
samba的用戶帳號(hào)信息是保存在smbpasswd文件中滴,而且可以訪問samba服務(wù)器的帳號(hào)也必須對(duì)應(yīng)一個(gè)同名的系統(tǒng)帳號(hào)。基于這 一點(diǎn),所以,對(duì)于一些hacker來說,只要知道samba服務(wù)器滴samba帳號(hào),就等于是知道了Linux系統(tǒng)帳號(hào),只要crack其samba帳號(hào)密碼加以利用就可以攻擊samba服務(wù)器。所以我們要使用用戶帳號(hào)映射這個(gè)功能來解決這個(gè)問題。
用戶帳號(hào)映射這個(gè)功能需要建立一個(gè)帳號(hào)映射關(guān)系表,里面記錄了samba帳號(hào)和虛擬帳號(hào)的對(duì)應(yīng)關(guān)系,客戶端訪問samba服務(wù)器時(shí)就使用虛擬來登錄。
1)編輯主配置文件vi /etc/samba/smb.conf
在global下添加一行字段username map = /etc/samba/smbusers開啟用戶帳號(hào)映射功能。
2)編輯 vi /etc/samba/smbusers
smbusers文件保存帳號(hào)映射關(guān)系,其有固定滴格式:
samba帳號(hào) = 虛擬帳號(hào)(映射帳號(hào))
myname = networkusername
帳號(hào)myname就是我們上面建立的samba帳號(hào)(同時(shí)也是Linux系統(tǒng)帳號(hào)),networkusername就是映射的帳號(hào)名(虛擬帳號(hào)),帳號(hào) myname在我們?cè)L問共享目錄時(shí)只要輸入networkusername就可以成功訪問了,但是實(shí)際上訪問samba服務(wù)器的還是我們的myname帳號(hào),這樣一來就解決了安全問題。
3)重啟samba服務(wù):service smbd restart
4)驗(yàn)證效果
輸入我們定義的映射帳號(hào)networkusername,注意我們沒有輸入帳號(hào)myname,映射帳號(hào)networkusername的密碼和myname帳號(hào)一樣,現(xiàn)在就可以通過映射帳號(hào)瀏覽共享目錄了。
六. 重啟samba服務(wù)器 :
sudo testparm 驗(yàn)證一下配置參數(shù)有沒有問題,如果有問題在回去修改
sudo /etc/init.d/samba restart (不知為什么,我的這個(gè)目錄下就是沒有這個(gè),用這個(gè)命令總是報(bào)錯(cuò))
service samba restart
service smbd restart
七. 測(cè)試:
smbclient -L //localhost/share 或者
smbclient -L \\127.0.0.1 -U myname //這時(shí)輸入的密碼就是你剛才設(shè)置的samba密碼
八. 使用 :
可以到windows下輸入ip使用了,在文件夾處輸入 "\\" + "Ubuntu機(jī)器的ip或主機(jī)名" + "\\" + "share";
我的即為:\\162.168.160.11\share(share就是剛才smb.conf中的[share])第一次進(jìn)入時(shí)要輸入用戶名和密碼,這個(gè)就是你在第四步中設(shè)置的用戶名和密碼。
九. samba的卸載:
dpkg -l |grep samba
dpkg -l |grep smbfs
dpkg -l |grep smb
apt-get remove samba\smbfs\smb
ubuntu12.04samba服務(wù)器配置
系統(tǒng)平臺(tái):VMware Workstation9.0 + ubuntu12.04
首先要解決windows和linux網(wǎng)絡(luò)連接問題:
在VMware Workstation9.0 “設(shè)置” 選項(xiàng)中,設(shè)置"網(wǎng)絡(luò)"
網(wǎng)絡(luò)連接1 選中“啟用網(wǎng)絡(luò)連接” 方式:NAT
網(wǎng)絡(luò)連接2 選中“啟用網(wǎng)絡(luò)連接” 方式:Bridged Adapter
啟動(dòng)ubuntu,查看IP地址: #ifconfig eth0
注:你的LINUX里面可能有兩塊網(wǎng)卡eth0和eth1,分別看一下他們的IP地址,有一個(gè)是和你的WINDOWS本地連接IP地址在一個(gè)網(wǎng)段的(以后就使用這個(gè)IP地址登錄samba,也是掛載NFS服務(wù)器的IP)
再說一下關(guān)于IP地址的配置(以我自己的電腦舉例):
我是用ADSL拔號(hào)上網(wǎng),windows本地連接的IP地址是自動(dòng)獲取的,IP為:192.168.1.45
查一下linux下eth0的IP為:10.0.2.15;eth1的IP為192.168.1.42
那eth1即為linux的本地連接的IP地址,也就是samba服務(wù)器的IP地址
關(guān)閉LINUX防火墻命令: #ufw disable
注:ufw是linux下的防火墻操作命令,相關(guān)的操作可以查看命令幫助
然后就在windows下ping一下linux的IP,如果能ping通,就可以繼續(xù)下面的內(nèi)容,如果ping不通就再找找原因
注:ubuntu 12.04已經(jīng)安裝了最新版本的samba服務(wù)器,無需安裝。如果使用12.04以前的版本,最好是按下邊的方法升級(jí)一下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服務(wù)器:
sudo apt-get install samba
sudo apt-get install smbfs
開始配置:
samba配置文件: /etc/samba/smb.conf
可以修改配置文件來設(shè)置samba共享和用戶
如果不習(xí)慣使用配置文件,也可以使用圖形界面
安裝Ubuntu samba圖形管理界面
#sudo apt-get install system-config-samba
啟動(dòng)samba圖形管理界面
#sudo system-config-samba
也可以選擇菜單: system->Administration->Samba
配置方法和RedHat9中一樣
選擇要共享的目錄 設(shè)置讀寫權(quán)限 設(shè)置訪問權(quán)限 添加samba用戶

配置完成后要重啟samba
#sudo /etc/init.d/smbd restart
----------------------------------------------------------------------
- 當(dāng)我們?cè)陂_發(fā)時(shí)會(huì)將虛擬機(jī)里的ubuntu映射到windows中來,想必這個(gè)大家都知道怎么做
1.在ubuntu中選擇要共享到windows中的文件夾右鍵->Sharing Options->[如果提示需要安裝samb的就點(diǎn)install,安裝完成后,重新右鍵]勾選所以選擇框->Create Share->Add the permissisons automatically
2.查看ubuntu網(wǎng)絡(luò)地址,ifconfig(VMware 網(wǎng)絡(luò)適配器選擇NAT模式)
3.在windows中打開映射網(wǎng)絡(luò)驅(qū)動(dòng)器->按照示例填寫文件夾->勾選下面兩個(gè)單選框-> 完成->輸入網(wǎng)絡(luò)密碼(需要輸入ubuntu里的用戶帳號(hào)密碼)->等待連接進(jìn)去
注意:在輸入網(wǎng)絡(luò)密碼時(shí)可能會(huì)出現(xiàn)不能登錄的情況,這時(shí)可以輸入windows的用戶名和密碼也能映射成功,或者不勾選實(shí)用其他憑據(jù)連接。雖然這樣可以映射進(jìn)去,并且也可以互相交換文件,但是是有問題的,兩個(gè)系統(tǒng)間不能相互修改。
- 看到上面那張圖,那么問題來了,當(dāng)從windows放something進(jìn)linux里時(shí),用戶變成nobody,linux里面就被上鎖了,權(quán)限肯定是有問題的,windows里操作linux里共享的文件時(shí)也是不能寫的。怎么破?
對(duì)于這種情況,可以通過如下操作來解決。
1.設(shè)置ubuntu用戶的samb密碼
hunter@ubuntu:~$ sudo smbpasswd -a hunter
2.在/etc/samba/smbusers中添加 Hunter = "Samba user."
hunter@ubuntu:~$ sudo vim /etc/samba/smbusers
添加: Hunter = "Samba user." (Hunter為ubuntu用戶名,區(qū)分大小寫)
注意:這里設(shè)置的密碼是用于samb登錄的密碼,不是ubuntu登錄時(shí)的密碼
3.編輯配置文件/etc/samba/smb.conf
為了避免修改后有其他問題,先備份:hunter@ubuntu:~$ sudo cp /etc/samba/smb.conf smb.conf.backup
修改文件:hunter@ubuntu:~$ sudo vi /etc/samba/smb.conf
<1>.搜尋這一行文字代碼:
# security = user
用下面這兩行取代
security = user
username map = /etc/samba/smbusers
<2>.在最后一行添加:
[devshare]
comment = Shared Folder with username and password
path = /opt/smbshare
public = yes
writable = yes
valid users = dev
create mask = 0777
directory mask = 0777
force user = nobody
force group = nogroup
available = yes
browseable = yes
4.重啟smbd
hunter@ubuntu:~$ sudo service smbd restart
按照上面步驟完成后,再去重新映射,不出意外的話,就可以達(dá)到期望的結(jié)果。哈哈。
要是還是不行,可以參考:Ubuntu Server 12.04 配置Samba
posted on 2016-07-01 16:58
聶文龍 閱讀(260)
評(píng)論(0) 編輯 收藏 引用