一、基礎信息
用Internet文件系統(CIFS)也稱爲服務器信是適用於MicrosoftWindows服務器和客戶端的標準文件和打印機共享系統息塊(SMB)
Samba服務可用於將Linux文件系統作爲CIFS/SMB網絡文件共享進行共享,並將Linux打印機作爲CIFS/SMB打印機共享進行共享
軟件包:
Samba-common ##Samba 的支持文件
Samba-client ##客戶端應用程序
Samba ##服務器應用程序
服務名稱:smb、nmb
服務端口:通常使用TCP/445進行所有連接。還使用UDP137、UDP138和TCP/139進行向後兼容
主配置文件:/etc/samba/smb.conf
二、存儲分離
服務端:
[root@route ~]# iptables -F ##刷空iptables策略
[root@route ~]# iptables -nL ##查看
安裝需要的軟件
[root@route ~]# yum install samba-common.x86_84 samba.x86_64 samba-client -y
[root@route ~]# systemctl start smb ##開啓
[root@route ~]# id student ##samba用戶必須是系統存在用戶
[root@route ~]# smbpasswd -a student ##設置samba用戶登陸密碼
[root@route ~]# smbclient -L //172.25.254.124 -U student ##列出samba共享用戶信息,登陸student
[root@route ~]# smbclient -L //172.25.254.124 ##登陸匿名用戶,並列出信息
這裏匿名用戶的Samba登陸密碼爲空,按下回車即可
[root@route ~]# getsebool -a | grep samba ##查看狀態
永久打開samba_enable_home_dirs(-P表示永久)
[root@route ~]# setsebool-Psamba_enable_home_dirs on
[root@route ~]# smbclient //172.25.254.124/student -U student ##查看共享信息
三、修改workgroup的名稱
[root@route ~]# vim /etc/samba/smb.conf ##如下,已經改爲Linux
[root@route ~]# systemctl restart smb ##重啓服務
如下,修改成功!!!
四、創建一個共享目錄並修改相關信息
強制性狀態
[root@route ~]# vim /etc/samba/smb.conf
共享名稱爲DATA、共享描述爲qq data,共享路徑爲/westos
[root@route ~]# systemctl restart smb
[root@route ~]# smbclient -L //172.25.254.124
效果如下:
創建/westos目錄
[root@route ~]# mkdir /westos/
修改安全上下文
[root@route ~]# semanage fcontext -a -t samba_share_t '/westos(/.*)?'
[root@route ~]# restorecon -FvvR /westos/
[root@route ~]# smbclient //172.25.254.124/DATA -U student
效果如下:
在服務器主機上的/westos新建文件
[root@route ~]# touch /westos/file{1..3}
可以看到成功共享
五、允許匿名登陸
思想:把匿名用戶映射爲guset,以此讓匿名用戶可以登陸
[root@route ~]# vim /etc/samba/smb.conf ##添加匿名用戶身份guest
[root@route ~]# systemctl restart smb
客戶端測試:
注意,匿名用戶的密碼爲空
[root@node86-12 ~]# smbclient //172.25.254.124/DATA username=guest,password=""
開機自動掛載:
[root@node86-12 ~]# vim /etc/fstab
//172.25.254.124/DATA /mnt cifs defaults,username=guest,password="" 0 0
[root@node86-12 ~]# mount -a
六、對DATA可進行操作
可掛載前提下的操作
(1)任何smb用戶都可以新建刪除
服務端:
[root@route ~]# vim /etc/samba/smb.conf
[root@route ~]# systemctl restart smb
客戶端:
[root@node86-12 ~]# mount -o username=student,password=123 //172.25.254.124/DATA /mnt/
此時,是文件系統拒絕被寫,則需要修改服務器的目標目錄/westos權限
[root@route ~]# setfacl -m u:student:rwx /westos/
客戶端再次訪問時,對其可寫了
(2)只允許student用戶新建刪除
服務端:
[root@route ~]# vim /etc/samba/smb.conf
[root@route ~]# systemctl restart smb
新建系統用戶以及samba用戶xixi
[root@route ~]# useradd xixi
[root@route ~]# smbpasswd -a xixi
New SMB password:
Retype new SMB password:
Added user xixi.
客戶端:
可以看到xixi用戶不可寫,只有student用戶可以寫
(3)只允許student用戶組下的用戶新建刪除
服務端:
[root@route ~]# vim /etc/samba/smb.conf
注:+或@表示組的含義
[root@route ~]# systemctl restart smb
把/westos的組改爲student
[root@route ~]# setfacl -m g:student:rwx /westos/
把用戶xixi歸屬於student
[root@route ~]# usermod -G student xixi
客戶端:
(4)賦予用戶admin,使其對文件系統/westos/具有超級用戶admin身份,進行新建刪除
[root@route ~]# vim /etc/samba/smb.conf
[root@route ~]# systemctl restart smb
添加系統用戶以及samba用戶
[root@route ~]# useradd admin
[root@route ~]# smbpasswd -a admin
查看用戶
客戶端:
七、掛載問題
1、no表示隱藏DATA,但是仍然可以掛載
服務端:
[root@route ~]# vim /etc/samba/smb.conf
[root@route ~]# systemctl restart smb
客戶端:
可以看到DATA已經隱藏,但是仍然可以掛載
2、DATA隱藏後,只有student用戶可以掛載
服務端:
[root@route ~]# vim /etc/samba/smb.conf
[root@route ~]# systemctl restart smb
客戶端:達到預期效果
3、DATA隱藏後,只有student用戶組可以掛載
服務端:+或@表示組的意思
[root@route ~]# vim /etc/samba/smb.conf
[root@route ~]# systemctl restart smb
客戶端:admin用戶不是student組,故不能掛載
八、安全性
多用戶管理,多用戶掛載,並且該用戶是通過安全認證的
客戶端:
[root@fundation86 ~]# yum install cifs-utils -y
在root下新建smbfile以保存用戶信息
[root@fundation86 ~]# vim /root/smbfile
[root@fundation86 ~]# chmod 600 /root/smbfile ##改其權限
掛載的同時,以student身份通過認證
[root@fundation86 ~]# mount -o credentials=/root/smbfile,multiuser,sec=ntlmssp //172.25.254.124/DATA /mnt/
[root@fundation86 ~]# exit ##切換到kiosk用戶(此時kiosk未認證,即沒有權限)
以服務器主機smb用戶xixi的身份通過認證
[kiosk@fundation86 ~]$ cifscreds add -u xixi 172.25.254.124
加以驗證:
此時kiosk新建三個目錄
[kiosk@fundation86 ~]$ mkdir /mnt/kiosk{1..3}
服務端:很清楚
0 0