一、samba簡介
sabma是一個跨平臺共享文件及打印機等資源的共享服務,它是由SMB協議實現的,工作於C/S模型,通過NetBIOS協議可以實現Windows與Linux平臺共享資源。
CIFS是CommonInternet File System即Internet文件系統是在Windows主機之間進行網絡文件共享的一個服務,監聽在137/udp,138/udp,139/tcp,445/tcp,其中137、138是NetBIOS在Windows中基於主機實現互相通信的機制。
二、在Linux使用Windows共享的文件
1、在Windows系統中創建一個或幾個共享的用戶
此次實驗使用的是Windows 7的系統,創建用戶的方法右擊“計算機”---管理------本地用戶和組----用戶,在用戶列表的空白區域右擊選擇新用戶。根據需要創建用戶即,這裏創建一個linux的用戶,密碼同用戶名。
2、選擇在Windows中共享的目錄
在確認要共享的目錄之後,右擊目錄選擇屬性,在屬性對話框中選擇共享選項,選擇共享按鈕即可共享此目錄,在文件共享對話框中選擇要共享的用戶,在用戶列表下拉表中選擇剛纔創建的linux用戶,在權限級別中選擇“讀取/寫入”權限,點擊共享。也可以選擇高級共享對共享的權限等操作。
3、在Linux中查看Windows的共享
格式:smbclient -L HOST -U USERNAME
指定主機IP和用戶名
[root@stu09 ~]# smbclient -L 172.16.9.7 -Ulinux Enter linux's password: Domain=[ZHENGHONG-PC] OS=[Windows 7Ultimate 7600] Server=[Windows 7 Ultimate 6.1] Sharename Type Comment --------- ---- ------- ADMIN$ Disk 遠程管理 C$ Disk 默認共享 D$ Disk 默認共享 E$ Disk 默認共享 F$ Disk 默認共享 G$ Disk 默認共享 H$ Disk 默認共享 I$ Disk 默認共享 IPC$ IPC 遠程 IPC J$ Disk 默認共享 K$ Disk 默認共享 test Disk #即爲我們剛纔共享的目錄 Users Disk session request to 172.16.9.7 failed(Called name not present) session request to 172 failed (Called namenot present) session request to *SMBSERVER failed(Called name not present) NetBIOS over TCP disabled -- no workgroupavailable
4、smbclient命令交互式
可以使用smbclinet交互式的登錄指定要共享的目錄中進行操作,刪除、創建、上傳等,不過要根據用戶的權限來進行的。
[root@stu09 ~]# smbclient //172.16.9.7/test-U linux Enter linux's password: Domain=[ZHENGHONG-PC] OS=[Windows 7Ultimate 7600] Server=[Windows 7 Ultimate 6.1] smb: \> ls . D 0 Fri May 15 22:04:53 2015 .. D 0 Fri May 15 22:04:53 2015 46084blocks of size 1048576. 41421 blocks available smb: \> lcd /etc #切換本地的目錄至/etc smb: \> put fstab #上傳fstab文件 putting file fstab as \fstab (147.3 kb/s)(average 147.3 kb/s) smb: \> put issue putting file issue as \issue (33.5 kb/s)(average 109.4 kb/s) smb: \> ls #查看文件 . D 0 Fri May 15 22:05:17 2015 .. D 0 Fri May 15 22:05:17 2015 fstab A 905 Fri May 15 22:05:11 2015 issue A 103 Fri May 15 22:05:17 2015 46084blocks of size 1048576. 41421 blocks available
注意:可以輸入help來獲取smbclinet交互式的幫助信息
5、在Linux掛載Windows共享的目錄
格式:mount-t cifs //SERVER/shared_name/mount_point -o username=USERNAME,password=PASSWORD
[root@stu09 ~]# mount -t cifs//172.16.9.7/test /mnt -o username=linux,password=123456 [root@stu09 ~]# mount|tail -1 //172.16.9.7/test on /mnt type cifs (rw)
三、在Windows中使用Linux共享的文件
1、安裝samba程序
安裝samba直接使用yum安裝即可
yum -yinstall samba
安裝完之後生成的服務腳本文件/etc/rc.d/init.d/nmb和/etc/rc.d/init.d/smb文件,主配置文件爲/etc/samba/smb.conf文件,samba使用的是賬號爲Linux的系統用戶,密碼是samba服務自己的密碼文件,使用smbpasswd命令爲賬號生成密碼。
2、smb的配置文件
配置文件分成全局設定和某特定共享的設備,其中特定的共享設備可以是私有家目錄,打印機共享,自定義共享。
3、共享/shared/test目錄
(1)創建/shared/test目錄
[root@stu09 ~]# mkdir -p /shard/test
(2)創建共享認證的用戶名及設置密碼
[root@stu09 ~]# useradd smbtest [root@stu09 ~]# smbpasswd -a smbtest New SMB password: Retype new SMB password: Added user smbtest.
(3)更改共享目錄的權限
在訪問共享目錄的權限是由samba的權限加系統的權限的交集所決定的。
[root@stu09 ~]# setfacl -m u:smbtest:rwx/shared/test [root@stu09 ~]# getfacl /shared/test getfacl: Removing leading '/' from absolutepath names # file: shared/test # owner: root # group: root user::rwx user:smbtest:rwx group::r-x mask::rwx other::r-x
(4)配置smb.conf配置文件
通用自定義的選項來實現:
選項格式說明:
[shared_name]
path = /path/to/share_directory #共享目錄
commnet = Commnet String #備註信息
guest ok = {yes|no} #是否允許來賓用戶訪問
public = {yes|no} #是否公開
writable = {yes|no} #是否可寫
read only = {yes|no} #是否可讀
write list = +staff #可寫用戶列表,“+”表示組名
更改[global]爲workgroup =WORKGROUP,然後在文件尾部添加如下內容
[shared] comment = My shard testing path = /shared/test guest ok = yes writable = yes
(5)啓動samba服務
(1)配置文件語法檢查
在啓動服務之前可以使用testparm命令進行配置文件語法檢測
[root@stu09 ~]# testparm Load smb config files from/etc/samba/smb.conf rlimit_max: increasing rlimit_max (1024) tominimum Windows limit (16384) Processing section "[homes]" Processing section "[printers]" Processing section "[shared]" Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your servicedefinitions #需要按下回車才能出現以下內容 [global] serverstring = Samba Server Version %v logfile = /var/log/samba/log.%m maxlog size = 50 idmapconfig * : backend = tdb cupsoptions = raw [homes] comment= Home Directories readonly = No browseable= No [printers] comment= All Printers path= /var/spool/samba printable= Yes printok = Yes browseable= No [shared] comment= My shard testing path= /shared/test readonly = No guestok = Yes
(2)啓用samba服務
[root@stu09 ~]# service nmb start;servicesmb start Starting NMB services: [ OK ] Starting SMB services: [ OK ]
(6)在Windows訪問共享目錄
在Windows的資源管理器中的地址欄輸入服務器的地址,格式 如下:
\\SERVER_IP\
後會出現登錄提示對話框,輸入用戶名和密碼即可登錄查看共享的目錄。就可以進行文件的創建、刪除等操作。
四、samba的圖形界面
samba的圖形界面需要安裝samba-swat程序,圖形化samba是Web頁面界面,它是瞬時守護進程,由超級守護進程xintetd代爲管理。在圖形界面中可以對samba的配置文件進行管理操作,圖形界面是通過網頁的形式,此圖形界面功能強大。
(1)安裝samba-swat程序
yum install samba-swat -y
(2)配置/etc/xinetd.d/swat文件
根據需要進行修改
service swat { port = 901 socket_type = stream wait = no only_from = 172.16.0.0/16 #只允許172.16.0.0/16的網絡訪問 user = root server = /usr/sbin/swat log_on_failure += USERID disable = no #開啓服務 }
(3)啓動xinetd服務
[root@stu09 ~]# service xinetd start Starting xinetd:
(4)訪問samba的圖形界面
要訪問samba的圖形界面只需要在瀏覽器輸入http://SERVER_IP:901。
在第一次使用samba的圖形界面時需要輸入操作系統root賬號和密碼,推薦登錄後更改登錄的用戶名和密碼。第一次登錄建議使用本地進行登錄,更改密碼之後在進行遠程登錄配置samba服務。