簡述samba服務闰蚕,并實現(xiàn)samba配置

一栈拖、簡介

samba是在Linux和Unix系統(tǒng)上實現(xiàn)SMB協(xié)議的一個免費軟件,由服務器及客戶端程序構(gòu)成没陡。SMB協(xié)議是一種在局域網(wǎng)上共享文件和打印機的通信協(xié)議辱魁,它為局域網(wǎng)內(nèi)不同的計算機之間提供文件及打印機等服務。Samba服務監(jiān)聽著137/udp,138/udp139/tcp,445/tcp端口诗鸭,通過結(jié)合NetBIOS廣播協(xié)議及SMB協(xié)議,使得samba服務能夠?qū)崿F(xiàn)局域網(wǎng)內(nèi)的windowns参滴、Linux主機的文件共享强岸。

二、samba服務器的搭建

1砾赔、samba服務的安裝

首先安裝samba服務:

[root@samba ~]# yum install -y samba
.......
Installed:
  samba.x86_64 0:4.6.2-12.el7_4                                                                                                                           

Dependency Installed:
  avahi-libs.x86_64 0:0.6.31-17.el7              cups-libs.x86_64 1:1.6.3-29.el7                     libldb.x86_64 0:1.1.29-1.el7                        
  libtalloc.x86_64 0:2.1.9-1.el7                 libtdb.x86_64 0:1.3.12-2.el7                        libtevent.x86_64 0:0.9.31-2.el7_4                   
  libwbclient.x86_64 0:4.6.2-12.el7_4            pytalloc.x86_64 0:2.1.9-1.el7                       samba-client-libs.x86_64 0:4.6.2-12.el7_4           
  samba-common.noarch 0:4.6.2-12.el7_4           samba-common-libs.x86_64 0:4.6.2-12.el7_4           samba-common-tools.x86_64 0:4.6.2-12.el7_4          
  samba-libs.x86_64 0:4.6.2-12.el7_4            

Complete!

關(guān)閉firewalld及設置selinux為permissive蝌箍,避免它們對測試效果造成影響:

[root@samba ~]# systemctl stop firewalld 
[root@samba ~]# setenforce 0
2、samba服務的程序及配置文件

安裝完成后暴心,samba服務生產(chǎn)的相關(guān)的程序及配置文件如下:

主配置文件:/etc/samba/smb.conf
主程序:nmbd:NetBIOS name server 及smbd:SMB/CIFS services
Unit文件:smb.service和nmb.service

其主配置文件/etc/samba/smb.conf由samba-common程序包提供妓盲,主要包括以下幾個部分:

Global Settings
NetworkRelated Options
Logging Options
Standalone Server Options
Domain Members Options
Domain Controller Options
Browser Control Options
Printing Options
File System Options
Share Definitions

對于/etc/samba/smb.conf文件常見參數(shù)及分類如下:

  • 全局配置:
  [global]
    workgroup = MYGROUP  #工作組名
    server string = Samba Server Version %v  #服務器信息介紹
    netbios name = MYSERVER  #用netbios名來指定服務
    interfaces = [interface1 interface2...|address1 address2...]  #用于讓samba服務監(jiān)聽多個網(wǎng)絡接口或IP
    hosts allow = [address1 address2...]  #指定允許訪問的主機IP
    log file = /var/log/samba/log.%m  #指定日志存放路徑,%m為來訪的主機名
    max log size = 50  #定義日志文件最大容量為50K
    security=user  #設置samba服務的安全認證方式為user
    passdb backend=tdbsam  #定義用戶后臺的類型為tdbsam专普,其他類型還有smbpasswd悯衬、ldapsam
    load prints = yes  #  #設置是否共享打印機
    cups options = raw  #打印機選項
  • 共享文件系統(tǒng)配置的配置大體有三類:
  [homes]:為每個samba用戶定義其是否能夠通過samba服務訪問自己的家目錄;
  [printers]:定義打印服務檀夹;
  [shared_fs]:定義共享的文件系統(tǒng)筋粗;

其常用指令有:

comment=STRING:注釋;
path=/PATH/TO/FILENAME:當前共享所映射的文件系統(tǒng)路徑炸渡;
browseable=YES:是否可瀏覽娜亿,指是否可被用戶查看;
guest ok=YES:是否允許來賓賬號訪問蚌堵;
browseable = No:是否公開目錄
writable=YES:是否可寫买决;
read only = no|yes :是否為只讀
write list=/PATH/TO/user_list:擁有寫權(quán)限的用戶列表;

其它可用參數(shù)吼畏,可通過/etc/samba/smb.conf.example文件或命令man smb.conf來查看督赤。

此處對/etc/samba/smb.conf配置文件添加如下配置:

[root@samba ~]# vim /etc/samba/smb.conf
[shared_dir]
        comment=This is a new share directory
        path=/samba_dir
        writable=yes
[root@samba ~]# mkdir /samba_dir  #創(chuàng)建共享文件

配置完成后可使用testparm命令來校驗/etc/samba/smb.conf文件的配置是否正確:

[root@samba ~]# testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Processing section "[printers]"
Processing section "[print$]"
Processing section "[samba_dir]"
Processing section "[data]"
Loaded services file OK.
WARNING: 'workgroup' and 'netbios name' must differ.

Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

# Global parameters
[global]
    workgroup = SAMBA
    printcap name = cups
    security = USER
    idmap config * : backend = tdb
    cups options = raw


[homes]
    comment = Home Directories
    browseable = No
    inherit acls = Yes
    read only = No
    valid users = %S %D%w%S


[printers]
    comment = All Printers
    path = /var/tmp
    browseable = No
    printable = Yes
    create mask = 0600


[print$]
    comment = Printer Drivers
    path = /var/lib/samba/drivers
    create mask = 0664
    directory mask = 0775
    write list = root


[samba_dir]
    comment = This is a new share directory
    path = /samba_dir
    guest ok = Yes
    read only = No

samba服務默認的驗證模式為user,因此我們還需要創(chuàng)建用戶的數(shù)據(jù)庫宫仗。

3够挂、創(chuàng)建samba用戶數(shù)據(jù)庫

samba帳號必須要存在于Linux系統(tǒng)中(/etc/passwd),但其密碼的卻是單獨維護的藕夫。創(chuàng)建samba用戶數(shù)據(jù)庫需要使用命令pdbedit孽糖,pdbedit命令是用于管理smb服務的賬號信息數(shù)據(jù)庫其用法格式為:

pdbedit [options] account

常用選項有:

-a USERNAME:創(chuàng)建samba用戶枯冈;
-x:刪除samba用戶;
-L:列出samba用戶列表办悟;
-Lv:列出用戶詳細信息列表尘奏;

除了pdbedit命令之外,我們也可以使用smbpasswd命令來管理創(chuàng)建samba用戶病蛉,其語法格式如下:

smbpasswd [options] USERNAME

常用選項有:

-a:添加賬號
-x:刪除賬號
-d:禁用賬號
-e:啟用賬號

接著我們就來創(chuàng)建samba用戶:

[root@samba ~]# useradd samba
[root@samba ~]# pdbedit -a samba
new password:
retype new password:
Unix username:        samba
NT username:          
Account Flags:        [U          ]
User SID:             S-1-5-21-2841389940-495581649-2996202120-1000
Primary Group SID:    S-1-5-21-2841389940-495581649-2996202120-513
Full Name:            
Home Directory:       \\samba\samba
HomeDir Drive:        
Logon Script:         
Profile Path:         \\samba\samba\profile
Domain:               SAMBA
Account desc:         
Workstations:         
Munged dial:          
Logon time:           0
Logoff time:          Wed, 06 Feb 2036 10:06:39 EST
Kickoff time:         Wed, 06 Feb 2036 10:06:39 EST
Password last set:    Mon, 07 May 2018 07:34:53 EDT
Password can change:  Mon, 07 May 2018 07:34:53 EDT
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
[root@samba ~]# useradd magedu
[root@samba ~]# smbpasswd -a magedu
New SMB password:
Retype new SMB password:
Added user magedu.

4炫加、啟動smb服務,測試訪問

[root@samba ~]# systemctl start smb
在windows上輸入訪問連接

輸入賬號密碼后成功登陸

但是無法在samba_dir目錄下創(chuàng)建文件

由上圖所示铺然,samba用戶登錄后無法在samba_dir共享文件夾下創(chuàng)建目錄俗孝,這是因samba_dir共享目錄的屬主和屬組均為root,其他用戶沒有寫權(quán)限

[root@samba ~]# ll /samba_dir/ -d
drwxr-xr-x. 2 root root 6 May  7 07:19 /samba_dir/

我們將目錄的屬組改為samba魄健,并添加寫權(quán)限:

[root@samba ~]# usermod -G samba magedu  #將samba添加為magedu賬號的附加組
[root@samba ~]# chown :samba /samba_dir/  #修改共享目錄的屬組為samba
[root@samba ~]# chmod g+w /samba_dir/  #給samba增加寫權(quán)限
[root@samba ~]# ll -d /samba_dir/
drwxrwxr-x. 2 root samba 6 May  7 07:19 /samba_dir/
[root@samba ~]# systemctl restart smb

此時再次測試:


成功創(chuàng)建目錄

在Linux系統(tǒng)上掛載samba共享目錄:

[root@test ~]# mount -t cifs //192.168.0.84/samba_dir /mnt -o username=samba,password=123456  #掛載samba共享目錄
[root@test ~]# mount
......
//192.168.0.84/samba_dir on /mnt type cifs (rw,relatime,vers=1.0,cache=striorcegid,addr=192.168.0.84,unix,posixpaths,serverino,acl,rsize=1048576,wsiz
[root@test ~]# cd /mnt/
[root@test mnt]# ll
總用量 0
drwxr-xr-x. 2 1502 1502 0 5月   7 2018 magedu_test
[root@test mnt]# touch samba_files  #創(chuàng)建文件成功
[root@test mnt]# rm magedu_test/
rm: 無法刪除"magedu_test/": 是一個目錄
[root@test mnt]# rmdir magedu_test/  #刪除文件成功赋铝,
[root@test mnt]# ll
總用量 0
-rw-r--r--. 1 1501 1501 0 4月  24 15:16 samba_files

另外,在linux系統(tǒng)中訪問samba文件系統(tǒng)還可以使用smbclient命令工具:

[root@test ~]# yum install samba-client -y  #安裝smbclient命令工具
[root@test ~]# smbclient -L 192.168.0.84 -U samba  #查看samba服務器的共享情況
Enter SAMBA\samba's password: 
Domain=[SAMBA] OS=[Windows 6.1] Server=[Samba 4.6.2]

    Sharename       Type      Comment
    ---------       ----      -------
    print$          Disk      Printer Drivers
    samba_dir       Disk      This is a new share directory
    IPC$            IPC       IPC Service (Samba 4.6.2)
    samba           Disk      Home Directories
Domain=[SAMBA] OS=[Windows 6.1] Server=[Samba 4.6.2]

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

    Workgroup            Master
    ---------            -------
[root@test ~]# smbclient //192.168.0.84/samba_dir -U samba #交互式訪問samba共享目錄
Domain=[SAMBA] OS=[Windows 6.1] Server=[Samba 4.6.2]
smb: \> lcd /etc/
smb: \> put fstab  
putting file fstab as \fstab (75.7 kb/s) (average 75.7 kb/s)  #成功上傳文件
smb: \> ls
  .                                   D        0  Mon May  7 20:28:07 2018
  ..                                 DR        0  Mon May  7 19:19:53 2018
  samba_files                         N        0  Tue Apr 24 15:16:13 2018
  fstab                               A      465  Mon May  7 20:28:07 2018
  hello.txt                           A        0  Mon May  7 20:28:49 2018

        17811456 blocks of size 1024. 16554288 blocks available
smb: \> rm hello.txt   #成功刪除文件
smb: \> ls  
  .                                   D        0  Mon May  7 20:29:00 2018
  ..                                 DR        0  Mon May  7 19:19:53 2018
  samba_files                         N        0  Tue Apr 24 15:16:13 2018
  fstab                               A      465  Mon May  7 20:28:07 2018

        17811456 blocks of size 1024. 16554264 blocks available
smb: \> 

三沽瘦、綜合案例

1革骨、創(chuàng)建一個共享data,路徑為/var/ftp/data,要求僅centos和gentoo用戶能上傳析恋,此路徑對其他用戶不可見良哲;

[root@samba ~]# mkdir -pv /var/ftp/data
mkdir: created directory ‘/var/ftp’
mkdir: created directory ‘/var/ftp/data’
[root@samba ~]# vim /etc/samba/smb.conf
[global]
        workgroup = SAMBA
        security = user
        passdb backend = tdbsam
        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw
[data]
        comment=ftp
        path = /var/ftp/data
        browseable = No  #不公開data目錄
        writable=yes
        directory mask = 0775
        create mask = 0664
        write list=centos,gentoo  #設置只允許centos、gentoo訪問data共享目錄
[root@samba ~]# testparm  #運行testparm命令檢查/etc/samba/smb.conf配置文件是否有錯誤
[root@samba ~]# useradd centos -s /sbin/nologin 
[root@samba ~]# useradd gentoo -s /sbin/nologin 
[root@samba ~]# smbpasswd -a centos
New SMB password:
Retype new SMB password:
Added user centos.
[root@samba ~]# smbpasswd -a gentoo
New SMB password:
Retype new SMB password:
Added user gentoo.
[root@samba ~]# setfacl -m u:centos:rwx /var/ftp/data/  #設置用戶centos對/var/ftp/data的目錄權(quán)限為rwx
[root@samba ~]# setfacl -m u:gentoo:rwx /var/ftp/data/  #設置用戶gentoo對/var/ftp/data的目錄權(quán)限為rwx
[root@samba ~]# getfacl /var/ftp/data/
getfacl: Removing leading '/' from absolute path names
# file: var/ftp/data/
# owner: root
# group: root
user::rwx
user:centos:rwx
user:gentoo:rwx
group::r-x
mask::rwx
other::r-x
[root@samba ~]# systemctl restart smb
登錄samba服務器

data共享目錄沒有顯示出來
手動添加data路徑才能訪問
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末助隧,一起剝皮案震驚了整個濱河市筑凫,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌喇颁,老刑警劉巖漏健,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異橘霎,居然都是意外死亡蔫浆,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門姐叁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瓦盛,“玉大人,你說我怎么就攤上這事外潜≡罚” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵处窥,是天一觀的道長嘱吗。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么谒麦? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任俄讹,我火速辦了婚禮,結(jié)果婚禮上绕德,老公的妹妹穿的比我還像新娘患膛。我一直安慰自己,他們只是感情好耻蛇,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布踪蹬。 她就那樣靜靜地躺著,像睡著了一般臣咖。 火紅的嫁衣襯著肌膚如雪跃捣。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天夺蛇,我揣著相機與錄音枝缔,去河邊找鬼。 笑死蚊惯,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的灵临。 我是一名探鬼主播截型,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼儒溉!你這毒婦竟也來了宦焦?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤顿涣,失蹤者是張志新(化名)和其女友劉穎波闹,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體涛碑,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡精堕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了蒲障。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片歹篓。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖揉阎,靈堂內(nèi)的尸體忽然破棺而出庄撮,到底是詐尸還是另有隱情,我是刑警寧澤毙籽,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布洞斯,位于F島的核電站,受9級特大地震影響坑赡,放射性物質(zhì)發(fā)生泄漏烙如。R本人自食惡果不足惜么抗,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望厅翔。 院中可真熱鬧乖坠,春花似錦、人聲如沸刀闷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽甸昏。三九已至顽分,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間施蜜,已是汗流浹背卒蘸。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留翻默,地道東北人。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓修械,卻偏偏與公主長得像,于是被迫代替她去往敵國和親肯污。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 1. Samba簡介 Samba是在Linux和UNIX系統(tǒng)上實現(xiàn)SMB協(xié)議的一個免費軟件蹦渣,由服務器及客戶端程序構(gòu)...
    garyond閱讀 14,028評論 2 29
  • 1哄芜、第八章 Samba服務器2柬唯、第八章 NFS服務器3认臊、第十章 Linux下DNS服務器配站點锄奢,域名解析概念命令:...
    哈熝少主閱讀 3,707評論 0 10
  • 案例一美尸、公司現(xiàn)有一個工作組workgroup,需要添加samba服務器作為文件服務器斟薇,并發(fā)布共享目錄/home/s...
    SkTj閱讀 1,323評論 1 1
  • 1.SAMBA服務簡介 (1)SAMBA的功能: ? 共享文件和打印师坎,實現(xiàn)在線編輯? 實現(xiàn)登錄SAMBA用戶的身份...
    尛尛大尹閱讀 1,078評論 0 1
  • 1.Linux下如何用命令查看實時日志(完整命令) tail -f 路徑.log查看前多少行 tai-200f 路...
    qianyewhy閱讀 2,249評論 0 11