Centos 7 上安裝Samba的詳細步驟


    爲了實現Windows主機與Linux服務器之間的資源共享,Linux操作系統提供了Samba服務,Samba服務爲兩種不同的操作系統架起了一座橋樑,使Linux系統和Windows系統之間能夠實現互相通信,爲廣泛的Linux愛好者提供了極大方便。本文簡要介紹如何在Linux操作系統上搭建Samba服務器的簡單配置,留作以後參考。

 

1、使用yum安裝Samba 

  用以下命令安裝:

[root@node02 ~]# yum install -y samba samba-client

安裝完成後,使用命令rpm -qa | grep samba進行查詢,發現搭建samba服務器所依賴的所有服務都已經安裝好了即可。

[root@node02 ~]# rpm -qa | grep samba
samba-common-4.4.4-14.el7_3.noarch
samba-client-libs-4.4.4-14.el7_3.x86_64
samba-client-4.4.4-14.el7_3.x86_64
samba-libs-4.4.4-14.el7_3.x86_64
samba-common-libs-4.4.4-14.el7_3.x86_64
samba-common-tools-4.4.4-14.el7_3.x86_64
samba-4.4.4-14.el7_3.x86_64

2、配置samba service

    Samba的配置文件一般就放在/etc/samba目錄中,主配置文件名爲smb.conf,文件中記錄着大量的規則和共享信息,所以是samba服務非常重要的核心配置文件,完成samba服務器搭建的大部分主要配置都在該文件中進行。

    Samba服務器的工作原理是:客戶端向Samba服務器發起請求,請求訪問共享目錄,Samba服務器接收請求,查詢smb.conf文件,查看共享目錄是否存在,以及來訪者的訪問權限,如果來訪者具有相應的權限,則允許客戶端訪問,最後將訪問過程中系統的信息以及採集的用戶訪問行爲信息存放在日誌文件中。 

第一步:修改配置文件

     首先備份一下samba的配置文件

[root@node02 ~]# cp /etc/samba/smb.conf /etc/samba/smb.conf_backup


 使用vi 編輯smb.conf文件

[root@node02 ~]# vi /etc/samba/smb.conf

然後我們把這段寫入smb.conf中 

[global]
workgroup = SambaGroup
netbios name = node02
server string = Linux Samba test
security = user
        
[samba]
path = /opt/samba
writeable = yes
browseable = yes
guest ok = yes

------------------------

[global]這段是全局配置,是必段寫的。其中有如下的幾行;

workgroup 就是Windows中顯示的工作組;在這裏我設置的是SAMBAGROUP (用大寫);
netbios name 就是在Windows中顯示出來的計算機名;
server string 就是Samba服務器說明,可以自己來定義;這個不是什麼重要的;
security 這是驗證和登錄方式,這裏我們用了user 。驗證方式有多種,這是其中一種;另外一種常用的是share的驗證方式;如果用share呢,就是不用設置用戶和密碼了,但是貌似新版本中share已經被棄用了,在網上看到一種解決方式如下,有興趣的可以驗證下

把
        security = share
改爲
	security = user
	map to guest = Bad User

[samba]這個在Windows中顯示出來是共享的目錄;
path = 可以設置要共享的目錄放在哪裏;
writeable 是否可寫,這裏我設置爲可寫;
browseable 是否可以瀏覽,可以;可以瀏覽意味着,我們在工作組下能看到共享文件夾。如果您不想顯示出來,那就設置爲 browseable=no

guest ok 匿名用戶以guest身份是登錄;


第二步:建立相應目錄並授權; 

[root@node02 ~]# mkdir /opt/samba
[root@node02 ~]# id nobody
uid=99(nobody) gid=99(nobody) groups=99(nobody)
[root@node02 ~]# chown -R nobody:nobody /opt/samba/


關於授權nobody,我們先用id命令查看了nobody用戶的信息,發現他的用戶組也是nobody,我們要以這個爲準。有些系統nobody用戶組並非是nobody ; 

 

 第三步:啓動smb並設置開機自啓動

[root@node02 ~]# systemctl start smb
[root@node02 ~]# systemctl enable smb
Created symlink from /etc/systemd/system/multi-user.target.wants/smb.service to /usr/lib/systemd/system/smb.service.
[root@node02 ~]#

第四步:配置firewalld允許samba service

[root@node02 ~]# firewall-cmd --add-service=samba

創建一個user來訪問共享

[root@node02 ~]# adduser smbuser
[root@node02 ~]# smbpasswd -a smbuser
New SMB password:
Retype new SMB password:
Added user smbuser.

第五步:在node01上安裝samba-client,驗證samba共享服務

[root@node01 ~]# yum install -y samba-client
[root@node01 ~]# smbclient -L node02.lab.example.com -U%


Domain=[SAMBAGROUP] OS=[Windows 6.1] Server=[Samba 4.4.4]

        Sharename       Type      Comment
        ---------       ----      -------
        samba           Disk     
        IPC$            IPC       IPC Service (Linux Samba test)
Domain=[SAMBAGROUP] OS=[Windows 6.1] Server=[Samba 4.4.4]

        Server               Comment
        ---------            -------

        Workgroup            Master
        ---------            -------

[root@node01 ~]# mount -t cifs //node02.lab.example.com/samba /mnt

報錯啦...
mount: wrong fs type, bad option, bad superblock on //node02.lab.example.com/samba,
       missing codepage or helper program, or other error
       (for several filesystems (e.g. nfs, cifs) you might
       need a /sbin/mount.<type> helper program)

       In some cases useful info is found in syslog - try
       dmesg | tail or so.


samba 掛載使用的type是 cifs,用mount掛載時報錯,這是因爲沒有安裝cifs-utils,使用yum安裝

[root@node01 ~]# yum install -y cifs-utils

再次嘗試進行掛載

[root@node01 ~]# mount -t cifs -o user=smbuser,pass=redhat //node02.lab.example.com/samba /mnt

用df確認下,發現我們已經mount成功了

[root@node01 ~]# df -h | grep mnt
//node02.lab.example.com/samba   17G  1.7G   16G  10% /mnt
[root@node01 ~]#


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