Samba-上課內容

CIFS通常用於Windows之間的共享,Windows、Linux之間共享。

NFS通常用於Unix、Linux之間數據共享


SMB提供CIFS文件系統

文件共享使用端口:tcp139,445(服務名:smb)

名稱解析使用端口:udp137,138(服務名:nmb)



smbclient -L //172.17.8.74 -U administrator     #查看SMB共享

如果不指定用戶名,就是匿名登錄,Linux支持匿名登錄,Windows不支持匿名。

[root@rh1 ~]# smbclient -L //172.17.8.74 -U administrator
Enter administrator's password: 
Domain=[WIN-3F7Q3K0ONCA] OS=[Windows Server 2008 R2 Datacenter 7600] Server=[Windows Server 2008 R2 Datacenter 6.1]

	Sharename       Type      Comment
	---------       ----      -------
	ADMIN$          Disk      遠程管理
	C$              Disk      默認共享
	D$              Disk      默認共享
	IPC$            IPC       遠程 IPC
	oms             Disk      
	暫存          Disk      
Connection to 172.17.8.74 failed (Error NT_STATUS_RESOURCE_NAME_NOT_FOUND)
NetBIOS over TCP disabled -- no workgroup available


/etc/samba/smb.conf   配置文件

        workgroup = MYGROUP
        server string = Samba Server Version %v   #Samba版本,此處建議修改,避免露出。
        
;       netbios name = MYSERVER
#此處的名字是在網上鄰居里面看到的名字,如果用;註釋了,默認使用計算機名。

;       interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
#代表Samba監聽在哪些接口上,;註釋之後默認監聽所有。

;       hosts allow = 127. 192.168.12. 192.168.13.
#代表允許哪些主機訪問,;註釋之後默認允許所有

;       max protocol = SMB2    #協議版本

用戶認證相關

        security = user
        passdb backend = tdbsam   #密碼存放方式

user:代表訪問需要身份驗證

share:代表不需要身份驗證,相當於Windows的guest賬號

用戶需要從本地用戶中添加,如何把本地用戶添加到Samba:

[root@rh1 ~]# id user1
uid=1001(user1) gid=1001(user1) groups=1001(user1)
[root@rh1 ~]# smbpasswd -a user1
New SMB password:
Retype new SMB password:
Added user user1.

查看Samba用戶有哪些:

[root@rh1 ~]# pdbedit -L
user1:1001:


[mytmp]     #共享名
#       comment = All Printers           #添加註釋
        path = /data/tmp                 #共享文件路徑
        writable = no                    
        #此項默認爲no,不添加默認爲no
        write list = user1
        #表示只有添加了的用戶纔有寫的權限。
        valid users = user1
        #有效的用戶,表示只有添加了的用戶纔有權限訪問此共享。
        browseable = yes        #是否可以看到此共享。
        #此項默認爲yes,不添加默認爲yes
        hosts deny = 10.42.1.26
        hosts allow = 10.42.1.26
        #當二者添加的IP衝突,allow優先!
        public = yes       #是否允許匿名登錄,不寫默認爲no
        #public允許的時候,valid user需要註釋掉,匿名才能訪問。
        hosts deny = 10.42.1.0/24
        hosts allow = 10.42.1.26
        #此網段僅26號可以訪問。但是其它網段默認都allow!!
        #Samba的規則是儘可能允許!


testparm   語法檢測命令

用Linux掛載

客戶端需要安裝cifs-utils這個包,否則掛載會報錯,注意!

[root@rh2 ~]# mount -t cifs //10.42.1.27/mytmp /data/ -o username=user1

setsebool -P samba_enable_home_dirs 1

chcon -t samba_share_t /data/tmp/ -R

登錄到共享目錄,如果不指定用戶名,則爲匿名登錄

[root@rh2 ~]# smbclient //10.42.1.27/mytmp
Enter root's password: 
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls
  .                                   D        0  Tue Oct 13 16:19:28 2015
  ..                                  D        0  Mon Oct 12 17:56:14 2015
  inter.txt                           N        0  Mon Oct 12 17:56:27 2015
  11                                  N        0  Tue Oct 13 16:19:28 2015
  新建文本文檔.txt              A        0  Tue Oct 13 14:27:27 2015

		58929 blocks of size 1048576. 51134 blocks available


添加子配置文件,在全局設置部分裏面添加

        workgroup = MYGROUP
        server string = Samba Server Version %v
        config file = /etc/samba/%U.conf        
        #添加此行,並在samba目錄中爲單獨用戶名添加配置文件。


添加到fstable文件,開機掛載

UUID=1d3ca96b-b587-4c99-8237-06f5c315a252 swap                    swap    defaults        0 0

//10.42.1.27/mytmp                        /data                   cifs    defaults,credentials=/etc/samba/cred.txt        0 0

創建/etc/samba/cred.txt這個文件,添加用戶名,密碼

username=user1

password=redhat



目前客戶端只有root才能在掛載的cifs目錄下進行寫操作。其它的用戶沒有權限,如何添加:

在客戶端fstable文件中添加掛載選項 

defaults,credentials=/etc/samba/cred.txt,multiuser,sec=ntlmssp

然後su到一個非root用戶,運行命令

[chomperwu@rh2 data]$ cifscreds add -u user1 10.42.1.27

輸入服務端user1用戶的密碼就ok了

如果要清除這個用戶的權限,運行命令

[chomperwu@rh2 data]$ cifscreds clearall

但是運行之後,權限並沒有被清除,還是可以寫???





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章