cifs------网络文件系统(1)
SMB文件共享
SMB(Server Message Block)通信協(xié)議是微軟(Microsoft)和英特爾(Intel)在1987年制定的協(xié)議,主要是作為Microsoft網(wǎng)絡(luò)的通訊協(xié)議。SMB 是在會話層(session layer)和表示層(presentation layer)以及小部分應(yīng)用層(application layer)的協(xié)議。
SMB使用了NetBIOS的應(yīng)用程序接口 (Application Program Interface,簡稱API)。另外,它是一個開放性的協(xié)議,允許了協(xié)議擴展——使得它變得更大而且復(fù)雜;大約有65個最上層的作業(yè),而每個作業(yè)都超過120個函數(shù),甚至Windows NT也沒有全部支持到,最近微軟又把 SMB 改名為 CIFS(Common Internet File System),并且加入了許多新的特色。
SMB協(xié)議是基于TCP-NETBIOS下的,一般端口使用為139,445
運行環(huán)境:
主機:?????? ip 172.25.254.1??? 172.25.1.250??????? [root@foundation1 ~]#
虛擬機:??? (服務(wù)器端): ip? 172.25.1.1??????????????????[root@server1 ~]#??????
??????????????????? (客戶端):? ip? 172.25.1.2???????????????? [root@server1 ~]#
Samba 服務(wù)的組成部分
Samba的支持文件:Samba-common
客戶端應(yīng)用程序:Samba-client
服務(wù)器應(yīng)用程序:Samba
服務(wù)名稱:smb nmb
主配置文件:/etc/samba/smb.conf
服務(wù)器端:
[root@server1 ~]# systemctl start smb?????????? //開啟smb服務(wù)
[root@server1 ~]# systemctl enable smb?????? //設(shè)置smb為開機自啟
[root@server1 ~]# systemctl stop firewalld???? //關(guān)閉防火墻
[root@server1 ~]# systemctl disable firewalld?????? //設(shè)置防火墻為開機不自啟
[root@server1 ~]# netstat -antlp | grep smb????????? //查看smb的服務(wù)端口,進行共享所用的端口是 139 和 445
samba用戶及密碼的設(shè)置
// 因這里沒有Samba密碼服務(wù)器,所以必須在本地計算機上創(chuàng)建身份驗證數(shù)據(jù)。使用smbpasswd創(chuàng)建samba賬戶和密碼
//smb用戶必須是本地已經(jīng)存在的用戶添加 smb 用戶
smb 用戶必須是本地用戶
添加用戶 student,westos
smbpasswd 常用參數(shù)
-a username: 添加用戶為 samba 用戶
-d username:禁用 samba 用戶 username
-e username: 啟用 samba 用戶 username
-x username: 刪除 samba 用戶 username
pdbedit 常用參數(shù)
–a username:新建 Samba 賬戶。
–x username:刪除 Samba 賬戶。
–L:列出 Samba 用戶列表,讀取 passdb.tdb 數(shù)據(jù)庫文件。
–Lv:列出 Samba 用戶列表的詳細(xì)信息。
–c “[D]” –u username:暫停該 Samba 用戶的賬號。
–c “[]” –u username:恢復(fù)該 Samba 用戶的賬號。
[root@server1 ~]# useradd westos
 [root@server1 ~]# id westos
 uid=1001(westos) gid=1001(westos) groups=1001(westos)
[root@server1 ~]# id student
 uid=1000(student) gid=1000(student) groups=1000(student)
[root@server1 ~]# smbpasswd -a student???????? //給samba添加用戶student,并設(shè)置密碼,為方便記憶,我在這里設(shè)置密碼為redhat
[root@server1 ~]# smbpasswd -a westos????????? //同樣,添加用戶westos并設(shè)置密碼,這里設(shè)置為redhat
[root@server1 ~]# pdbedit -L??????????? //查看samba用戶有哪些
[root@server1 ~]# pdbedit -x westos????????? //刪除samba用戶
 [root@server1 ~]# pdbedit -L??????? //再次查看時只有一個用戶
 student:1000:
 [root@server1 ~]# smbpasswd -a westos?????????? 再次添加,添加成功
客戶端:
[root@server2 ~]# yum install -y samba-client???????? //下載所需服務(wù)
[root@server2 ~]# smbclient -L //172.25.1.1?????????? //列出服務(wù)器端samba服務(wù)的文件系統(tǒng) ,,,這里輸密碼時直接回車就好,因為這里沒有具體指定用戶
[root@server2 ~]# smbclient? //172.25.1.1/student -U student??????????? //指定用戶student登陸文件系統(tǒng)
//此時用ls命令訪問的話可能出現(xiàn)被拒的現(xiàn)象,可能原因為: selinux 拒絕訪問
smbclient(選項)(參數(shù))
?????????????????????? -L:顯示服務(wù)器端所分享出來的所有資源
?????????????????????? -U <用戶名稱>:指定用戶名稱
服務(wù)器端:
[root@server1 ~]# getsebool -a | grep samba??????????? //查看布爾值允許本地目錄作為 cifs 文件共享的相關(guān)主目錄
其中:
samba_enable_home_dirs?????????????? //布爾值允許本地Linux主目錄作為CIFS文件共享導(dǎo)出至其他系統(tǒng)
use_samba_ home_dirs???????????? ? ? ? //布爾值允許掛載遠(yuǎn)程CIFS文件共享并將其用作本地Linux主目錄
samba_share_t????????????????????????????????? //smb共目錄的selinux安全上下文
samba_export_all _ro 和 samba_export_all_rw?????????? //共享系統(tǒng)目錄時要打開
[root@server1 ~]# setsebool -P samba_enable_home_dirs on
 此時,客戶端訪問就不會再被拒了
客戶端:
[root@server2 ~]# smbclient //172.25.1.1/student -U student???????????? //ls可以正常訪問
smb掛載
1、文件的上傳:
只能上傳當(dāng)前所在目錄下的文件,上傳的文件在服務(wù)端的 student 用戶的家目錄
客戶端:
首先找到客戶端所需上傳的文件所在目錄,并切換到相應(yīng)目錄,再進行登陸;例:上傳目錄為/etc,上傳文件為 /etc/passwd
[root@server2 ~]# cd /etc
[root@server2 etc]# smbclient //172.25.1.1/student -U student???????? //輸入之前設(shè)置的密碼
smb: \> !ls? ???????????? //?? !ls? 即可列出本地文件及目錄
??????????????????? ......??? //前面太多故省略
hosts.allow?? ??? ? profile.d?? ??? ??? yum.conf
 hosts.deny?? ??? ? protocols?? ??? ??? yum.repos.d
 httpd?? ??? ??? ? python
 idmapd.conf?? ??? ? qemu-ga
smb: \> put passwd???????? //上傳文件passwd成功
服務(wù)器端:
在服務(wù)器端查看,客戶端已將文件上傳至服務(wù)器端 的用戶家目錄內(nèi)
[root@server1 ~]# cd /home/student/
[root@server1 student]# ls
//這種登陸方式登陸,不能執(zhí)行新建文件、目錄等操作///
2、臨時掛載(手動掛載)
客戶端:
[root@server2 etc]# mount //172.25.1.1/student /mnt/ -o username=student,password=redhat???????? //掛載成功
這樣服務(wù)器端的用戶家目錄就掛載到了客戶端的/mnt下面去
客戶端執(zhí)行:
[root@server2 mnt]# touch file{1..5}????????????????? //這種方式可以新建/刪除目錄、文件等
 [root@server2 mnt]# ls
 file1? file2? file3? file4? file5? passwd
[root@server2 mnt]# cd ..
 [root@server2 /]# umount /mnt/????????? //取消掛載
此時,服務(wù)器端:
3、永久掛載(只需掛在一次)
方式一:如果服務(wù)沒開,會影響系統(tǒng)啟動,易損壞系統(tǒng)
客戶端:
[root@server2 /]# vim /etc/fstab
//172.25.1.1/student /mnt cifs defaults,username=student,password=redhat 0 0
[root@server2 /]# mount -a?????????????? //df查看是否掛載成功
方式二:在所有服務(wù)啟動后,初始化的時候開始執(zhí)行,因此不會影響系統(tǒng)啟動(推薦使用)
前提是將第一種方法注釋或者刪除 :??
???????? 1.??? 編輯/etc/fstab???????? //刪掉剛加上的行
???????? 2.?? [root@server2 /]# umount /mnt/??????? //取消掛載
??????? 3.??? [root@server2 /]# df????????? //查看是否還掛載,確保不再掛載
客戶端:
[root@server2 /]# vim /etc/rc.d/rc.local
mount //172.25.2.1/student /mnt -o username=student,password=redhat
[root@server2 /]# chmod +x /etc/rc.d/rc.local?????????? //給予執(zhí)行權(quán)限
[root@server2 /]# reboot
[root@server2 /]# df???????????? //查看,此時掛載成功
//172.25.1.1/student?? 17811456 1229488? 16581968?? 7% /mnt
總結(jié)
以上是生活随笔為你收集整理的cifs------网络文件系统(1)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Linux之redhat7系统结构
- 下一篇: cifs------网络文件系统(2)
