1. 程式人生 > >Centos 7 上安裝Samba的詳細步驟

Centos 7 上安裝Samba的詳細步驟

samba


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

1、使用yum安裝Samba

用以下命令安裝:

[[email protected] ~]# yum install -y samba samba-client

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

[[email protected] ~]# 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的配置文件

[[email protected] ~]# cp /etc/samba/smb.conf /etc/samba/smb.conf_backup


使用vi 編輯smb.conf文件

[[email protected] ~]# 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身份是登錄;


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

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


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

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

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

第四步:配置firewalld允許samba service

[[email protected] ~]# firewall-cmd --add-service=samba

創建一個user來訪問共享

[[email protected] ~]# adduser smbuser
[[email protected] ~]# smbpasswd -a smbuser
New SMB password:
Retype new SMB password:
Added user smbuser.

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

[[email protected] ~]# yum install -y samba-client
[[email protected] ~]# 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
--------- -------

[[email protected] ~]# 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安裝

[[email protected] ~]# yum install -y cifs-utils

再次嘗試進行掛載

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

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

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


本文出自 “不積跬步,無以至千裏” 博客,請務必保留此出處http://jiaxiaolei.blog.51cto.com/3117381/1949659

Centos 7 上安裝Samba的詳細步驟