Samba(跨平臺的共享服務)使用以及配置案例:
實驗一:
工作組爲Tarena
將目錄 /usr/src 共享給所有人
共享名設爲 tools
允許所有人訪問、無需密碼驗證
訪問權限爲只讀
實驗步驟:
配置服務端與客戶端的ip地址,保證連通
通過yum安裝samba-client服務
安裝:samba-commonsamba-client完成後,進行主配置文件修改來配置共享
[root@localhost samba]# vim smb.conf
74 workgroup = Tarena工作組名
76 server string = Samba Server Version %v版本註釋
102 security =share訪問用戶可爲user(需本機用戶)可爲share(共用的)
222 loadprinters = yes是否顯示共享虛擬打印機
290 [tools]共享名
291 comment = Tools Public對此共享的文字說明
292 path= /usr/src共享目錄的實際位置
293 public = yes是否都所有人可用
294 readonly = yes 只讀,與writeable相反
保存主配置文件後退出。啓動並設置開機自啓服務
[root@localhost samba]# testparm查看共享目錄
進入win7客戶機輸入//192.168.1.1/tools訪問
進入linux客戶機訪問
[root@localhost ~]# yum -y install samba-client安裝客戶端samba
[root@localhost ~]# smbclient -L 192.168.10.10 查看共享
[root@localhost ~]# smbclient //192.168.10.10/tools 連接到共享
Password:
Domain=[TARENA] OS=[Unix] Server=[Samba3.0.33-3.39.el5_8]
Server not using user level security and no passwordsupplied.
smb: \> pwd
Current directory is \\192.168.1.1\tools\
可不輸入密碼直接訪問服務端共享
將共享文件掛載到客戶機目錄下的/data/smb
[root@localhost ~]# mkdir -p /data/smb 創建掛載點
[root@localhost ~]# mount -t cifs//192.168.10.10/tools /data/smb/ 掛載
[root@localhost ~]# grep smb /etc/fstab 開機自動掛載
//192.168.10.10/tools /data/smb cifs defaults 0 0
測試客戶端對共享的權限
在服務端新建文件/usr/src/1.txt
登錄到客戶端掛載點/data/smb
複製文件1.txt到本地
[root@localhostsmb]# ls掛載點目錄
1 1.txt debug file.txt kernels vmware-tools-distrib
[root@localhost smb]# cp 1.txt / 將共享文件1.tx.t複製到本地根下
[root@localhost smb]# ls / 客戶端/目錄下文件
1 boot home misc root tftpboot
123 data lib mnt sbin tmp
1.txt dev lib64 net selinux usr
可看到文件1.txt從服務器下載到了客戶端。說明客戶端對共享具有讀取的權限
在共享的掛載點創建文件123.txt
[root@localhost smb]# touch 123.txt
touch: 無法觸碰“123.txt”: 權限不夠
可看出客戶端對共享不具備寫入權限
試驗二Samba用戶驗證
修改原有的 [tools] 匿名共享設置
1.不再允許所有人訪問,拒絕其他用戶或匿名訪問
2.只允許nick讀取、tom寫入
3.上傳文件的權限爲644
4.上傳目錄的權限爲755
創建本地用戶tom,jack併爲其設置samba密碼(本地用戶在客戶端通過samba訪問共享,需用戶通過samba獨立密碼訪問),通過命令pdbedit -a [用戶名]設置獨立密碼
服務端修改主配置文件:
74 workgroup = Tarena工作組名
102 security = user 默認使用安全級別
291 comment = Tools Public 對共享的描述
292 path = /usr/src 共享目錄
293 public = no 是否對所有人可用
294 readonly = yes 只讀
295 write list = tom tom可寫
296 directory mask = 0755新建目錄權限
297 create mask = 0644 新建文件權限
298 valid users = tom,jack 允許訪問用戶
保存退出重啓服務後並設置用戶tom對/usr/src目錄的讀寫權限
[root@localhost 1]# setfacl -m u:tom:rwx /usr/src/
1.新建用戶yeyue,tom,jack
[root@localhost tom]# smbclient -U yeyue//192.168.1.1/tools
Password:
Domain=[LOCALHOST] OS=[Unix] Server=[Samba3.0.33-3.39.el5_8]
tree connect failed: NT_STATUS_ACCESS_DENIED
用戶yeyue不可訪問,tom,jack允許訪問(valid users = tom,jack生效)
2.進入客戶端分別對用戶tom,jack測試
通過jack登錄將共享掛載
[root@localhost~]#mount -o username=jack //192.168.1.1/tools /data/jack/
[root@localhost jack]# cp 1.txt /root
[root@localhost jack]# ls /root
1.txt anaconda-ks.cfg Desktop file.txt install.log install.log.syslog
證明jack擁有讀取權限
[root@localhost jack]# touch 11.txt
touch: 無法觸碰“11.txt”: 權限不夠
證明jack沒有寫入權限
卸載共享的掛載後通過tom登錄掛載共享
[root@localhost ~]# umount /data/jack
[root@localhost ~]# mount -o username=tom//192.168.1.1/tools /data/tom
[root@localhost tom]# cp file.txt /root
[root@localhost tom]# ls /root
1.txt anaconda-ks.cfg Desktop file.txt install.log install.log.syslog
證明用戶tom擁有讀取權限
[root@localhost tom]# touch 11.txt
[root@localhost tom]# ls
1 11.txt 1.txt debug file.txt kernels vmware-tools-distrib
證明了用戶tom擁有對共享的寫入權限
3.用戶擁有上傳文件644權限
[root@localhost tom]# touch file1.txt
[root@localhost tom]# ls -ld file1.txt
-rw-r--r-- 1 root root 17 06-15 16:03 file1.txt
4.用戶擁有上傳文件夾755權限
[root@localhost tom]# mkdir ceshi
[root@localhost tom]# ls -ld ceshi/
drwxr-xr-x 2 500 500 0 06-15 20:26 ceshi/
試驗三Samba賬戶別名與訪問地址控制
1.把普通帳戶nick設置別名爲kaka
1.修改samba用戶別名文件
[root@localhost ~]# cat /etc/samba/smbusers
# Unix_name = SMB_name1 SMB_name2 ...
root = administrator admin
nobody = guest pcguest smbguest
tom = kaka增加別名,用戶tom可通過別名kaka登錄
在主配置文件中增加
77 usernamemap = /etc/samba/smbusers啓用別名映射文件
驗證:在客戶端可通過別名登錄
[root@localhost tom]# smbclient -U kaka //192.168.1.1/tools
Password:
Domain=[LOCALHOST] OS=[Unix] Server=[Samba3.0.33-3.39.el5_8]
smb: \>
2.設置只允許192.168.1.2地址訪問
在主配置文件添加
299 hosts allow = 192.168.1.2允許訪問的主機
驗證:
通過192.168.1.2客戶機登錄
[root@localhost tom]# ifconfig eth0 | head -2 | tail-1
inetaddr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
[root@localhost tom]# smbclient -U kaka//192.168.1.1/tools
Password:
Domain=[LOCALHOST] OS=[Unix] Server=[Samba3.0.33-3.39.el5_8]
smb: \>
驗證結果:客戶機192.168.1.1可登錄訪問
通過客戶機192.168.1.3登錄
[root@localhost tom]# ifconfig eth0 | head -2 | tail-1
inetaddr:192.168.1.3 Bcast:192.168.1.255 Mask:255.255.255.0
[root@localhost tom]# smbclient -U jack//192.168.1.1/tools
Password:
Domain=[LOCALHOST] OS=[Unix] Server=[Samba 3.0.33-3.39.el5_8]
tree connect failed: NT_STATUS_ACCESS_DENIED