一.關於samba的介紹linux
1.Samba服務器的常見應用ios
(1)能夠提供用戶登陸samba主機時進行身份驗證。數據庫
(2)實現類unix機器與windows機器的文件共享。vim
2.Samba使用的協議windows
(1)NetBIOS over TCP/IP : 最先IBM開發NETBIOS的目的僅是要讓局域網內少數計算機進行網絡鏈接的一個通訊協議而已。而samba最先發展時,是想要讓linux系統能夠加入windows的系統當中來,共享彼此的文件數據,因此固然samba就架構在NetBIOS之上而發展起來,可是NetBIOS沒法跨路由,把NetBIOS實如今TCP/IP之上就能夠跨路由了服務器
3. Samba使用的服務網絡
smbd:這個服務主要的功能就是用來管理samba主機共享目錄,文件與打印機信息等架構
nmbd:它是用來管理羣主和NetBIOS Name解析的tcp
smb:tcp 139 445 處理samba的數據,實現共享ide
nmb:udp 137 138 可以實現經過FQDN的方式訪問samba共享
4. Samba 服務及配置文件相關介紹
(1)Samba
這個軟件主要包括了samba的主要服務(smbd,nmbd),samba的文件,與samba相關logrotate設置文件,及默認選項等
(2)samba-common
這個軟件提供了samba的主要配置文件(smb.conf)
(3)samba-Client
這個軟件提供了當linux做爲samba Client端時,所須要的工做指令
(4)# vim /etc/samba/smb.conf
57 [global] //全局配置的訪問控制
74 workgroup = MYGROUP ///工做組的名稱
75 server string = Samba Server Version %v //主機的簡易說明
77 ; netbios name = MYSERVER //主機的NetBIOS名稱
79 ; interfaces = lo eth0 192.168.12.2/24192.168.13.2/24
// 監聽的網卡,能夠是網卡的名字,也能夠是網段
80 ; hosts allow = 127. 192.168.12. 192.168.13. //容許哪些網段
101 security = user //samba的共享的驗證方式:share:客戶端使用samba共享不須要 密碼,user :客戶端使用samba共享須要輸入用戶名和密碼
102 passdb backend = tdbsam
// tdbsam:/etc/samba/下生成一個數據庫文件,用來保存建立的samba用戶和密碼
248 [homes] // 共享名,每一個samba用戶,都有權力去訪問本身的家目錄,samba用戶的前身,必須是系統的普通用戶
249 comment = Home Directories //描述信息
250 browseable = no //目錄瀏覽權限
251 writable = yes //是否可寫(建立文件或目錄)
252 ; valid users = %S
253 ; valid users = MYDOMAIN\%S
用戶的我的設置:
282 ; [public] //共享名
283 ; comment = Public Stuff //描述信息
284 ; path = /home/samba //真正的共享目錄位置
285 ; public = yes //是否能夠匿名訪問
286 ; writable = yes //能夠訪問的用戶是否有寫入權限,要與文件權限配合使用
287 ; printable = no //若是yes 那麼這個目錄就被認爲是一個打印機,因此通常咱們設置成 printables = no
288 ; write list = +staff //容許寫入權限的用戶列表
二.Samba的基本配置
(1)安裝
[root@tx1 ~]# yum install samba -y
簡單定義一個屬於本身的共享目錄
[root@tx1 ~]# vim /etc/samba/smb.conf
[root@tx1 ~]# useradd t2
[root@tx1 samba]# smbpasswd -a t2
New SMB password:
Retype new SMB password:
Added user t2.
[root@tx1 samba]# /etc/init.d/smb start
Starting SMB services: [ OK ]
Starting NMB services: [ OK ]
(2)設置共享路徑
[root@tx1 samba]# mkdir /tmp/samba -pv
mkdir: created directory `/tmp/samba'
[root@tx1 samba]# chmod 1757 /tmp/samba
注意權限設置好哦!
[root@tx1 samba]# /etc/init.d/smb restart
(3)linux客戶端測試
客戶端查看服務器有哪些共享信息:
掛載使用:
[root@tx2 ~]# mount //192.168.8.70/public /mnt -o user=t2
Password:
或者
[root@tx2 ~]# mount //192.168.8.70/public /mnt -o user=t2,password=123
[root@tx2 ~]# cd /mnt/
[root@tx2 mnt]# touch tx
返回到服務端查看:
[root@tx1 samba]# cd /tmp/samba/
[root@tx1 samba]# ls
tx
(4)Windos端測試:
(5)客戶端實現開機自動掛載
[root@tx2 ~]# vim /etc/fstab
三.Samba的訪問控制
(1)ip方式
[root@tx1 samba]# vim /etc/samba/smb.conf
79 ; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
80 ; hosts allow = 127. 192.168.12. 192.168.13.
打開這兩行的註釋,把容許的網段或ip寫進去就好了。
(2)匿名用戶
[root@tx1 samba]# vim /etc/samba/smb.conf
101 security = share
289 [public]
290 comment = Public Stuff
291 path = /tmp/samba
292 writable = yes
293 public = yes //這個地方不要忘了哦!
[root@tx1 samba]# /etc/init.d/smb restart
用戶名和密碼都不用輸入,直接回車就能夠了
(3)服務器方面控制用戶的讀寫
valid users = 有效的用戶
valid users = user1 user(用戶) @user3(組)
writable = yes/no 可寫/不可寫
write list = user1user2 @user3可寫的用戶/組的列表
read only = yes/no 可讀/不可讀
read list = user1 user2 user3 可讀的用戶列表
例:@1
user1只讀,其餘的用戶都是能夠讀寫的
[root@tx1 samba]# vim /etc/samba/smb.conf
101 security = user
289 [share]
290 comment = my samba
291 path = /tmp/samba
292 writable = yes
293 read list = user1
[root@tx1 samba]# vim /etc/samba/smb.conf
[root@tx1 samba]# useradd user1
[root@tx1 samba]# cd /etc/samba/
[root@tx1 samba]# smbpasswd -a user1
New SMB password:
Retype new SMB password:
Added user user1.
[root@tx1 samba]# /etc/init.d/smb restart
測試:
Permission denied
例@2
sa1用戶能夠讀寫,其餘的用戶只讀
read only = yes
write list = sa1
例@3
sa1用戶能夠讀寫,sa2用戶能夠讀,其餘的用戶不能夠訪問
valid users = sa1 sa2
write list = sa1
這裏就不作測試了,用戶的權限能夠本身定義,另外要注意得和實際的權限相符!