一.samba介紹linux
1.提供cifs協議實現共享文件,主要用於windows與linux的網絡文件系統ios
二.搭建環境安裝服務vim
1.配置yum倉庫windows
2.關閉防火牆安全
systemctl stop firewalld服務器
3.安裝軟件,設置開機自動啓動網絡
yum install samba samba-common samba-client -y ide
systemctl start smb 開啓samba服務測試
systemctl enable smb 設置開機自動啓動spa
(samba-common samba的支持文件);(samba-client 客戶端應用程序);(samba 服務器的應用程序)
三.添加smb用戶
1.smb用戶必須是本地用戶
smbpasswd -a student (添加student用戶)
New SMB password: 輸入smb當前用戶密碼
Retype new SMB password: 確認密碼
pdbedit -L 查看smb用戶信息
pdbedit -x smb用戶 刪除smb用戶
2.查看selinux的狀態,若是是enforencing,修改samba服務的sebool值,而且打開家目錄的訪問權限。
getenforce 查看selinux的狀態
setsebool -P enable_samba_home_dirs on(selinux是enforce的狀態下)
3.以student用戶的身份(客戶端)去訪問samba服務共享出來的student用戶的家目錄。
smbclient //172.25.254.124/student -U student 訪問student用戶的家目錄
Enter student's password: 輸入該用戶的密碼
四.設定共享目錄
1.基本配置
編輯配置文件 vim /etc/samba/smb.conf
workgroup mkdir= westos 工做組的名稱
[DATA] 共享目錄的名稱
comment = local directory 對共享目錄的描述
path= /westos 共享目錄的路徑
查看建立的共享目錄 smbclient -L //172.25.254.124 -U student
2.當共享目錄爲用戶本身創建的目錄時,須要修改新建目錄的安全上下文(不然沒法在共享目錄中看到文件)
mkdir /westos 創立共享目錄
touch /westos/linuxfile{1..3} 創建文件
ls -lZd /westos/ 查看目錄的安全上下文
semanage fcontext -a -t samba_share_t '目錄名稱(/.*)?' (/.*)?表示匹配目錄及目錄如下全部文件
restorecon -RvvF 目錄名稱 刷新目錄裏內容的安全上下文
3.當共享目錄爲系統級目錄,爲了避免影響修改安全上下文對別的服務的影響,修改selinux中的sebool值(不然沒法看到文件)
編輯配置文件 vim /etc/samba/smb.conf
[CONFIG] 共享目錄的名稱
comment = config directory 對共享目錄的描述
path= /mnt 共享目錄的路徑
以student身份查看共享的系統目錄 smbclient //172.25.254.124/CONFIG -U student
ls 沒法查看到文件
getsebool -a | grep samba 過濾出samba服務的sebool值
setsebool -P samba_export_all_ro on#只讀共享
setsebool -P samba_export_all_rw on#讀寫共享
4.再次以student用戶的身份去訪問samba服務共享的文件
smbclient //172.25.254.124/CONFIG -U student
ls 能夠看到目錄下文件
五.samba的配置參數
1.匿名用戶訪問
編輯配置文件 vim /etc/samba/smb.conf
guest ok = yes
map to guest = bad user
2.訪問控制
hosts deny = ip 只拒絕該主機訪問
hosts allow = ip 只容許該主機訪問
valid users = 用戶 當前共享有效的用戶
valid users = @student 當前共享的有效用戶爲student組
valid users = +student 當前共享的有效用戶爲student組
3.讀寫控制
服務端:
全部用戶都可寫
chmod o+w /mnt 給其餘用戶/mnt目錄寫權限
setsebool -P samba_export_all_rw on 改變selinux中sebool值,打開讀寫權限
vim /etc/samba/smb.connf
writable = yes 打開配置文件中的寫權限
客戶端:
mount -o username=student,password=redhat //172.25.254.124/CONFIG /mnt/ 以student身份將172.25.254.124共享的CONFIG掛載到/mnt上
測試讀寫權限
4.設定指定用戶可寫
編輯配置文件 vim /etc/samba/smb.conf
write list = student 可寫用戶
用student用戶掛載目錄,能夠進行寫操做;用lu用戶掛載目錄,沒有權限進行寫操做
weite list = +student 可寫用戶組
write list = @student 可寫用戶組(兩種方式都表示組用戶可寫)
六.smb多用戶掛載
1.在客戶端安裝cifs-utils軟件
2.建立訪問時所須要的用戶名和密碼
vim /root/westos (建立身份認證文件)
username=student
password=redhat (格式)
chmod 600 /root/westos 只有root擁有讀寫權限
3.多用戶掛載
mount -o credentials=/root/westos,multiuser,sec=ntlmssp //172.25.254.124/CONFIG /mnt/
credentials=/root/westos 指定掛載時用到的用戶身份認證文件
multiuser 支持多用戶認證
sec=ntlmssp 認證方式爲smb認證
4.測試
su - kiosk
ls /mnt
ls: cannot access /mnt: Permission denied#由於沒有作smb的認證因此沒法訪問smb共享
(沒有做smb的認證因此沒法訪問smb共享)
cifscreds add -u student 172.25.254.124 爲用戶tom認證
Password: smb用戶student的密碼
ls /mnt 能夠看到/mnt目錄下的文件
cifscreds clear -u student 172.25.254.124 清除認證後,用戶lu沒法訪問
cifscreds add -u student 172.25.254.124 student認證後tom能夠訪問