對于linux與windows共享,和平共處,我們可以用Samba軟件Samba是一套免費的開源軟件,可以在linux或其他類unix操作系統(tǒng)上實現windows域控制器,文件服務,打印服務等。Samba實現了windows系統(tǒng)所使用的核心網絡協(xié)議:SMB(Server Message Block)
Samba可以提供如下功能:活動目錄服務(Active Directory Server, ADS)主域控制器(Primary Domain Controller, PDC)共享目錄共享打印機
Samba是一個高性能的服務軟件,只需要更低的硬件就可以實現windows server相同的性能。
一、安裝Sambasudo apt-get install samba
安裝完成之后,在windwos上訪問(我的linux server ip:192.168.1.66):輸入\192.168.1.66 如圖:
通過標題欄可以看出已經可以訪問了,但里面沒有共享資源
二、Samba的配置Samba的配置文件是/etc/samba/smb.conf,它所使用的語法和windows的.ini文件差不多。注:在修改配置練習時,請備份原配置文件
最簡單的配置[global]security=share
[linux_share]path=/home/linux/sharepublic=yes
這個配置分成兩段:第一段:global第二段:linux_share 這是一個自己定義的名字,當從windows訪問時,就可以看到這個共享文件夾的名稱
security=share, 表示安全等級為share,這樣用戶不需要經過密碼驗證了。
path定義了共享的文件夾的路徑
public=yes 表示公開給所有人訪問
配置完成時,檢查一下配置文件的語法: 用testparm命令
如圖:
重啟Samba生效sudo /etc/init.d/smbd restart
現在通過windows訪問可以看到我們創(chuàng)建的共享文件夾了
三、Samba的安全認證Samba提供了安全認證等級,分4個級別:share : 不需要輸入用戶名和密碼user : 需要輸入用戶名,密碼, Samba對用戶進行認證server : 認證工作由另一臺Samba服務器或者Windows server負責domain : 指定一臺windowsserver來進行用戶認證
其中user是Samba的默認安全認證級別,也就是說在/etc/samba/smb.conf配置文件中,將security一行改為security=user,那么用戶在瀏覽共享內容前,就必須輸入用戶名和密碼。
現在把安全級別提升為usersudo vim /etc/samba/smb.conf
[global]security=user
[linux_share]path=/home/linux/sharevalid users=cdyemail #指定有效的用戶,多個用可訪問用逗號隔開public=no #公開訪問為否
重啟samba服務:sudo /etc/init.d/smbd restart
通過windows訪問如圖:
現在要密碼了,但是輸入linux的用戶名和密碼無法通過認證,如果想讓Samba通過認證,需要以下幾點:(1)、在ubuntu系統(tǒng)中創(chuàng)建用戶(2)、在Samba中創(chuàng)建該用戶(3)、在windows中創(chuàng)建相同的用戶(和Samba用戶密碼相同)
1、在Ubuntu中創(chuàng)建用戶如果要將某個資源共享給新用戶,必須先用adduser命令向Ubuntu中添加該用戶。如:我們打算將某個資源共享給一個叫做cdyemail的用戶,首先要做的就是在Ubuntu系統(tǒng)中創(chuàng)建這個用戶sudo useradd cdyemail這樣,系統(tǒng)中就有了cdyemail這個用戶了。

2、在Samba中創(chuàng)建用戶Ubuntu系統(tǒng)中的用戶,和Samba用戶是兩回事,要將資源共享給某個系統(tǒng)中的用戶,必須將該用戶添加到Samba中。添加方法:sudo smbpasswd -a cdyemail#smbpasswd是命令, -a表示add user , cdyemail表示用戶名這樣cdyemail的認證信息就被寫入到Samba中了。重啟Samba生效
添加完用戶和密碼后,現在可以在windows中通過這個用戶名和密碼進行訪問了。
3、在windows中創(chuàng)建相同的用戶在windows客戶端中,我們需要創(chuàng)建與samba中完全相同的用戶名和密碼,這樣才能通過Samba的認證,我們在windows客戶端上打開Samba共享資源時,Samba會自動將windows環(huán)境中的用戶信息傳遞到服務器上進行驗證,因此如果登錄的windows用戶和Samba用戶名相同的話(密碼也相同),就不需要輸入密碼了,自動就能通過認證。
我在測試中通過,相當給力!!
4、Samba用戶密碼修改
如果修改密碼了,則windows與Samba都要同步修改。在Samba中修改的方法如下:sudo smbpasswd cdyemail #cdyemail為要修改的用戶名如果windows不修改,則要手動輸入Samba修改后的用戶名和密碼,windows修改后要求注銷一下(重登錄)
三、共享權限的控制
目錄我們只要以訪問文件的內容,但沒有權限修改文件,也無法向共享目錄添加新文件。
1、添加文件寫入權限[global]security=user
[linux_share]path=/home/linux/sharevalid users=cdyemailwriteable=yes #添加一句,表示具有寫權限了public=no
重啟samba服務 sudo /etc/init.d/smbd restart,之后就可以寫文件了,但要求服務器上的目錄本身有這個權限。我測試時用rwx權限測試成功。
對于服務器目錄權限的測試:由于我共享的是share目錄,創(chuàng)建時用root,所以在默認的情況下,即使開了writeable也沒有權限寫,因為服務器目錄的本身權限有問題。(1)先修改用戶所屬sudo chown cdyemail:cdyemail(2)只保留cdyemail用戶有權限訪問這個目錄sudo chmod u+rwx,g-rwx,o-rwx share(3)訪問,測試寫文件測試成功,cdyemail用戶有權限寫。
*********未完************由于現在要在命令行下進行數據共享的工作,所以先記錄到這兒,有時間再記錄其它的功能訪問服務器的共享資源:服務器配置如下,一個要求用戶認證的共享,一個大眾都可能訪問的。[global]security=user[share_resource]path=/home/linux/sharevalid users=shareuserwriteable=yespublic=no
[public]path=/home/linux/publicwriteable=yespublic=yes
客戶機訪問如下:安裝:smbclient , smbfssmbclient可以查看資源,下載資源等,這里用mount掛載遠程的共享目錄sudo mount -t smbfs -o username=shareuser,passwd=*****//192.168.1.66/share_resource /mnt/data#smbfs是文件系統(tǒng)類型#share_resource就是在samba中定義的共享名稱,掛載到/mnt/data目錄上*************************
愛華網



