一.samba介紹
1.提供cifs協定實作共享檔案,主要用于windows與linux的網絡檔案系統
二.搭建環境安裝服務
1.配置yum倉庫
2.關閉防火牆
systemctl stop firewalld
3.安裝軟體,設定開機自動啟動
yum install samba samba-common samba-client -y
systemctl start smb 開啟samba服務
systemctl enable smb 設定開機自動啟動
(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值(否則無法看到檔案)
[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.匿名使用者通路
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可以通路