SAMBA服務器

samba服務器是linux下合windows共享文件的一種解決方案,它可以通過wendows的網絡鄰居來和Linux共享文件夾,將linux僞裝成一個windows在網絡鄰居上。

那麼它是基於什麼原理實現的?

首先,我們要知道windows的網絡鄰居實現方式,它通過以下兩個協議來實現
NETBIOS     主機名解析
FILE sharing
通過NETBIOS可以在網絡鄰居上顯示出你的主機名,通過FILE share協議來共享文件。

而SAMBA模擬了這兩種實現方法,對應關係如下:
SMB (service message block)---- > NETBIOS
CIFS (common internet file system)----- > FILE share


下面來使用samba
(一)SAMBA服務器的安裝,簡單配置
1.通過yum安裝SAMBA服務器
# yum install samba

2.修改主配置文件,主配置文件位於/etc/samba/smb.cnf
# vim /etc/samba/smb.cmf
找到workgroup字段修改爲WORKGROUP
workgroup = WORKGROUP     //WORKGROUP是win能識別的網絡鄰居用戶組
開啓netbios name 選項,將前面的;去掉
netbios name = DEANHEHIEHEI    //後面就是你在windows網絡鄰居里顯示的主機名

3.開啓samba服務,注意使用前關閉selinux,避免影響使用samba
# setenforce 0
# service samba start

4.效果如下:

但是這個時候還只能用guest賬號訪問,不能建立文件


(二)配置一個共享的文件夾tools,並且配置一個賬戶slockware,可以創建文件 
1.修改主配置文件,增加字段[tools]

# vim /etc/samba/smb.conf
[tools]
        comment = My tools # comment是註釋信息
        path = /tools # 共享文件夾路徑,如果不存在需要手動建立
        browseable = yes # 是否允許瀏覽
        public = yes # 是否開啓來賓賬號
        write list = slockware # 指定只有slockware賬號有寫權限

2.添加用戶slockware,建立文件夾/tools  ,設置acl權限
# useradd slockware
# smbpasswd -a slockware
New SMB password:
Retype new SMB password:

# mkdir /tools
# setfacl -m u:slockware:rwx /tools    //必須設置了用戶讀寫權限

3.重啓samba服務,試下效果,輸入用戶名和密碼後,可以在tools裏創建文件了
# service samba restart


**4.實現用戶組mygrp的可讀寫:
增加用戶組mygrp,創建用戶gentoo,將gentoo和slockware添加到mygrp裏
# useradd gentoo
# smbpasswd gentoo
# groupadd mygrp
# usermod -aG gentoo mygrp
# usermod -aG slockware mygrp

在第1步的字段[tools]裏,將write list修改爲:
wreite list = +mygrp

修改/tools文件夾權限爲mygrp組可讀寫
# setfacl -m g:mygrp:rwx /tools

現在,使用gentoo和slockware登陸都可以創建文件了


其他補充:
smbpasswd 
-a   表示把此用戶加入到samba裏
-x   刪除用戶
-d   臨時性取消用戶

-e   啓用被臨時性取消的用戶

testparm      可以檢查語法錯誤

(三)linux下如何訪問samba共享文件夾
1.需要使用smbclinet命令,一般情況下,系統都默認安裝好了,首先查看服務器上的文件夾

smbclient -L 192.168.0.48 
Password:                       # 需要輸入密碼,直接回車,進入來賓目錄
Anonymous login successful
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.33-3.14.el5]


Sharename       Type      Comment
---------       ----      -------
homes           Disk      Home Directories
IPC$            IPC       IPC Service (DEANHELLO)
Server          Printer   Printing Server
想進入slockware用戶的目錄,需使用
# smbclient -L 192.168.0.48 -U slockware


2.根據看到的目錄,通過smbclinet訪問想要去的文件夾
# smbclient //192.168.0.48/tools -U slockware
Password: 
Domain=[DEANHEHIEHEI] OS=[Unix] Server=[Samba 3.0.33-3.14.el5]
smb: \> help              # 輸入help 可以看到能夠使用的命令,挺豐富的吧
?              altname        archive        blocksize      cancel         
case_sensitive cd             chmod          chown          close          
del            dir            du             exit           get            
getfacl        hardlink       help           history        lcd            
link           lock           lowercase      ls             mask           
md             mget           mkdir          more           mput           
newer          open           posix          posix_open     posix_mkdir    
posix_rmdir    posix_unlink   print          prompt         put            
pwd            q              queue          quit           rd             
recurse        reget          rename         reput          rm             
rmdir          showacls       setmode        stat           symlink        
tar            tarmode        translate      unlock         volume         
vuid           wdel           logon          listconnect    showconnect    
!    

如果出現如下錯誤

administrator@ubuntu:~$ smbclient //192.168.0.156/shared
Enter administrator's password: 
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.0.33-3.14.el5]
tree connect failed: NT_STATUS_BAD_NETWORK_NAME

解決方法:應該是/tools      主配置文件裏定義的[tools]那麼它對應的命令要是/tools,而不是你定義的路徑/shared

**3.通過掛載的方式來進入共享目錄
# mount -t cifs //172.16.100.1/tools /mnt -o username=slockware
Password: 
# cd /mnt
# ls
dd.txt  ss.txt

mount -o 指定用戶身份


(四)通過網頁來控制samba服務器----samba-swat的使用
samba-swat是一個圖形化管理samba服務器的軟件,功能非常豐富,我們現在來看看怎麼使用它
1.安裝samba-swat
# yum install samba-swat

2.修改配置文件:(samba-swat不屬於服務,它是一個非獨立守護進程,依賴於超級守護進程xinetd,xinetd管理的進程配置文件都存放在/etc/xinetd.d/目錄下)
# cd /etc/xinetd.d
# vim swat
service swat
{
        port            = 901               # 進程運行端口定義
        socket_type     = stream
        wait            = no
        only_from       = 192.168.0.0/24    # 指定運行訪問的網段或IP 
        user            = root  # 指定登陸用戶身份
        server          = /usr/sbin/swat   
        log_on_failure  += USERID            
        disable         = no                # 是否禁用,no開啓 
}


3.開啓swat,方式比較特殊
# service xineted start
# netstat -nltp           # 查看是否開啓901端口,沒有的話可能忘了設disable = no
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name       
tcp        0      0 0.0.0.0:901                 0.0.0.0:*                   LISTEN      3351/xinetd      


4.在瀏覽器裏輸入http://192.168.0.48:901  登陸管理頁面,需要注意的是root的密碼是操作系統的root密碼,所以登陸後我們要修改密碼,這樣下次登陸就是修改後的密碼,系統密碼不受影效。

點pssword標籤可以修改密碼:


主頁圖,功能很豐富,可以自己研究下



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章