1. 程式人生 > >Linux學習筆記之smb文件共享

Linux學習筆記之smb文件共享

不可見 應用 type 失敗 tex 文件中 ima rec 51cto

SMB文件共享服務:SMB協議是建立在NetBIOS協議之上的應用協議,是基於TCP138、139兩個端口的服務,NetBIOS出現之後,Microsoft就使用NetBIOS實現了一個網絡文件/打印服務系統。這個系統基於NetBIOS設定了一套文件共享協議,Microsoft稱之為SMB(Server Message Block) 協議,這個協議被用於Lan Manager和Windows服務器系統中,實現不同計算機之間共享 打印機和文件等。因此,為了讓Windows和Unix/Linux計算機相集成,最好的辦法就是在 Unix/Linux計算機中安裝支持SMB協議的軟件。這樣使用Windows的客戶端不需要更改設置, 就能像使用Windows NT或Windows 2000服務器一樣,使用Unix/Linux計算機上的共享資源了。
1,smb服務的安裝及配置
yum install samba-client samba-common.x86_64 samba.x86_64 -y ##安裝smb服務
systemctl start smb ##開啟smb服務
systemctl stop firewalld.service ##關閉防火墻
setsebool -P samba_enable_home_dirs on ##關閉selinux對家目錄共享的限制
getsebool -a | grep samba
smbpasswd -a student ##student必須是本機存在的用戶pdbedit -L ##查看用戶
技術分享圖片
pdbedit -x student ##刪除用戶
測試:smbclient -L //172.25.254.120 -U student ##查看
技術分享圖片
smbclient //172.25.254.120/student -U student ##登陸
技術分享圖片
mount -o username=xin,password=1 //172.25.254.153/xin /media ##掛載(掛載到其他目錄下,在這個目錄下寫入文件就會自動儲存到共享目錄中。)
技術分享圖片
技術分享圖片
技術分享圖片
在目錄中,可以創建文件,創建目錄,刪除文件,刪除目錄。------針對掛載情況
對於登陸模式,之可以創建目錄和刪除文件,也可以上傳文件(只針對本地文件 通過"!ls"命令進行查看);不可以刪除目錄,也不可以創建目錄
這是因為selinux為警告模式,或者samba_enable_home_dirs,功能是開啟的。

技術分享圖片
在服務端查看
技術分享圖片

2.samba共享目錄
mkdir westos
touch westos/westosfile{1..5}
vim /etc/samba/smb.conf
321 [westos] ##共享名稱
322 comment = local directory westos ##共享說明
323 path = /westos ##共享目錄路徑
技術分享圖片
systemctl restart smb.service
semanage fcontext -a -t samba_share_t ‘/westos/(/.*)?‘
restorecon -FvvR /westos/
共享目錄自建立目錄上需要修改selinux屬性,此方式修改只針對修改目錄
測試:smbclient //172.25.254.120/westos -U student
技術分享圖片
3.samba匿名訪問
vim /etc/samba/smb.conf
125 map to guest = bad user ##把匿名用戶映射成guest
321 [westos]
322 comment = local directory westos
323 path = /westos
324 guest ok = yes
技術分享圖片
systemctl restart smb.service
測試:smbclient //172.25.254.120/westos
技術分享圖片
匿名掛載:
技術分享圖片
4,用戶登陸後看到的域名的修改及用戶黑白名單的建立
1,修改登陸之後,用戶看到的域名
服務端:
1.修改配置文件/etc/samba/smb.conf,在配置文件中,修改文件的第89行的‘‘workgroup",可以改變域名。並重啟服務
技術分享圖片
技術分享圖片
測試:
技術分享圖片
技術分享圖片
2.用戶白名單的建立
服務端:
修改配置文件/etc/samba/smb.conf,在配置文件中,在文件的第96行加入:hosts allow=IP,來允許該IP登陸,並重啟服務。主機名"server.example.com"的IP為"172.25.254.183",主機名"client.example.com"的IP為‘‘172.25.254.133‘‘,主機名"foundation83.ilt.example.com"的IP為‘‘172.25.254.83‘‘。
技術分享圖片
技術分享圖片
技術分享圖片
測試:
技術分享圖片
ip為172.25.254.183成功登陸
技術分享圖片
ip為172.25.254.133成功登陸
技術分享圖片
IP為172.25.254.83的登陸失敗
3.用戶黑名單的建立
修改配置文件/etc/samba/smb.conf,在配置文件中,在文件的第97行加入:hosts deny=IP,來允許該IP登陸,並重啟服務。主機名"server.example.com"的IP為"172.25.254.183",主機名"client.example.com"的IP為‘‘172.25.254.133‘‘,主機名"foundation83.ilt.example.com"的IP為‘‘172.25.254.83‘‘。
技術分享圖片
技術分享圖片
技術分享圖片
測試:
技術分享圖片
IP為172.25.254.183的主機登陸失敗
技術分享圖片
IP為172.25.254.83的主機登陸成功
4.samba共享目錄的管理參數
[westos]
comment = local directory westos
path = /westos
guest ok = yes
1.writable = yes 共享目錄可寫
2.write list = +test 指定xx可寫(+,@表用戶組可寫)
3.valid users = test 指定用戶對共享目錄可以掛載
4.valid users = @test 指定共享目錄用戶可以掛載(+,@表用戶組可寫)
5.browseable = no 共享目錄不可見,但共享目錄仍然實際存在並能使用
6.admin users = test 指定test用戶在共享目錄中為root用戶
測試:
1:技術分享圖片
2:技術分享圖片
3,4:技術分享圖片
5:技術分享圖片
6:技術分享圖片
5.smb多用戶掛載及開機自動掛載
如下圖所示,以root用戶掛載一個共享目錄,但是切換到普通用戶kiosk,發現這個普通用戶也可以看到裏面的文件,這顯然是很不安全的,也不合理,所以需要對客戶端的用戶進行權限管理。即客戶端的其他用戶需要進行認證才可以查看掛載內容。
技術分享圖片

1,yum insatll cifs-utils ##在客戶端上,管理的軟件是"cifs-utils"。
安裝完這個軟件之後,不用打開服務就可以直接使用
在客戶端,將允許匿名用戶登陸的代碼註釋
技術分享圖片
2,"vim /root/smbpasswd"。在這個文件中寫入SAMBA服務上真實存在的用戶和密碼,文件名稱可以自行編輯(該文件中書寫不能加空格),完成後為了安全給予600權限。
技術分享圖片
技術分享圖片
技術分享圖片
3,mount -o credentials=/root/smbpasswd,sec=ntlmssp,multiuser //172.25.254.183/xin /media"。(可以通過man mount.cifs來查看幫助)如下圖所示,以此命令進行掛載,掛載後student用戶無法看到掛載目錄的文件。此時,root用戶使用的身份是服務端的xin(/root/smbpasswd中所編輯的)

其中:credentials=/root/smbpasswd文件指定用戶名和密碼;sec=ntlmssp是認證方式(因為下載的samba是4.1的,所以認證方式是ntlmssp,查詢方式rpm -qa | grep samba);multiuser為多用戶掛載。
技術分享圖片
技術分享圖片
客戶端:看到root用戶所使用的身份是1001(其實就是服務端xin用戶)
技術分享圖片
服務端:
技術分享圖片
技術分享圖片

  1. 如果student用戶需要看到裏面的文件,則需要進行用戶身份驗證,student用戶輸入"cifscreds add -u chen 172.25.254.183"輸入密碼後即可完成認證,認證可以輸入SAMBA服務中的任意一個真實存在的用戶。
    為了後續實驗,在服務端,再添加一個samba用戶
    技術分享圖片
    cifscreds add -u chen 172.25.254.183
    cifscreds clearall
    cifscreds add -u chen
    touch studentfile(可以看到是服務端的用戶chen(uid = 1002;gid = 1002)創建的)
    客戶端:
    技術分享圖片
    服務端:
    技術分享圖片
    +++++++++++++++++++++++++++++++++++++++++++++
    開機自動掛載
    編輯/etc/fstab,在該文件中,最後一行,加入下面的內容
    技術分享圖片

Linux學習筆記之smb文件共享