linux中Samba服務器配置

一、Samba的簡介

    Samba是在Linux和UNIX系統上實現SMB協議的一個免費軟件,由服務器及客戶端程序構成。

    SMB(Server Messages Block,信息服務塊)是一種在局域網上共享文件和打印機的一種通信協議,它爲局域網內的不同計算機之間提供文件及打印機等資源的共享服務。SMB協議是客戶機/服務器型協議,客戶機通過該協議可以訪問服務器上的共享文件系統、打印機及其他資源。通過設置“NetBIOS over TCP/IP”使得Samba不但與局域網絡主機分享資源,還能與全世界的電腦分享資源。

二、Samba服務配置

1、安裝軟件

yum -y install samba   安裝samba包

image.png

2、啓動服務

systemctl restart smb

image.png

3、Samba賬號的管理

    Samba用戶:

         (1)提前建立同名的系統用戶,可不設置密碼

         (2)採用獨立於系統的密碼

    管理工具:pdbedit

           pdbedit -a   添加用戶

           pdbedit -L   查詢用戶

           pdbedit -x   刪除用戶

useradd -s /sbin/nologin smb1  創建用戶,並設置shell
useradd -s /sbin/nologin smb2
useradd -s /sbin/nologin smb3
pdbedit -L    查看已存在的smb賬號

image.png

smbpasswd -a smb1   設置密碼  已存在的系統用戶通過smbpasswd命令設置爲smb用戶
smbpasswd -a smb2
smbpasswd -a smb3

image.png

image.png

pdbedit -L     再次查看smb賬號    設置smb賬號已添加

image.png

image.png

systemctl stop firewalld.service       清除防火牆
systemctl disable firewalld.service
iptables -L      查看防火牆策略

image.png

4、同臺機器不同終端測試

ifconfig ens34   查詢ens34 的ip地址

image.png

smbclient -L //192.168.230.131   客戶端測試

image.png

smbclient -L //192.168.230.131 -U smb1%centos   smbclient只用於測試,實際生產過程中並不常用

image.png

5、windows系統測試

image.png

image.png

    可以看到其家目錄文件

image.png

6、配置文件及參數

vim /etc/samba/smb.conf    Samba服務的配置文件

image.png

image.png

    宏定義
    %m :客戶端主機的NetBIOS名
    %H :當前用戶家目錄路徑
    %g :當前用戶所屬組
    %L :samba服務器的NetBIOS名
    %T :當前日期和時間
    %M :客戶端主機的FQDN
    %U :當前用戶用戶名
    %h :samba服務器的主機名
    %I :客戶端主機的IP
    %S :可登錄的用戶名

image.png

systemctl restart smb  重啓smb服務   (只要修改過配置文件就要重啓服務)

image.png

7、測試前的環境準備

mkdir /app/gongxiang   創建共享目錄/app/gongxiang
cd /app/gongxiang/     進入該目錄
cp /etc/issue .        將/etc/issue 文件複製到本地
setenforce 0           關閉selinux
iptables -F            關閉防火牆

image.png

chmod 775 gongxiang   其他人的權限至少爲5

image.png

setfacl -m u:smb1:rwx gongxiang     爲該文件設置特殊權限

image.png

8、上傳文件(客戶端)

ssh 172.18.251.127  遠程連接工具

image.png

ifconfig ens33  查詢ens33網卡的地址

image.png

smbclient //172.18.251.86/gongxiang -U smb1   用另一臺機器當作客戶端進行測試,ip爲服務器地址

image.png

vim /etc/fstab  增加一行內容

image.png

mkdir /app/gongxiang1       創建目錄   (爲測試環境做準備)
mount -a             新寫入/etc/fstab文件中的掛載內容,通過mount -a 可實現自動掛載
df           查看掛載情況    可看到已自動掛載

image.png

su - smb2     切換到用戶smb2,進行各項測試

image.png

三、Samba配置參數小總結

[global]
    netbios name = HARDY            設置服務器的netbios名字
    server string = my server          對samba服務器的描述
    workgroup = DEBIAN_FANS     samba服務器屬於哪個工作組名或域名
    encrypt passwords = yes          密碼需要加密
    message command = /bin/sh -c 'xedit %s ; rm %s' &       當winpopup向網絡用戶發消息時,此參數可用來接收消息,可惜沒有發送
    security = user                          用於登陸域,或用戶驗證登陸
    wins support = yes                   設置本地爲wins服務器,當WINS SERVER沒有啓動,SAMBA利用廣播來進行名字解析,而WINS SERVER是通過udp協議來進行包的傳送和不同網絡中的路由.因此在不同的網絡中進行NETbios解析,要打開wins server
    remote browse sync                 用來和遠程的local master browser進行信息的同步
    name resolve order = wins lmhosts hosts bcast # 解析netbios的順序 (lmhosts-lan manager file)(hosts-unix的/etc/hosts,dns,nis)(wins)(bcast,廣播) 
    wins server = 192.168.0.22       指定wins服務器的網絡地址
    wins proxy =  yes                     如果指定的wins服務器在不同的網斷,就需要打開
    dns proxy = yes                       當wins服務器在wins中找不到名字的話,就會查找dns
    admin users = hardy                samba的管理用戶,默認是root
    add user script = /usr/sbin/useradd -d /dev/null -g 100 -s /bin/false  %u         代替手工的添加計算機賬號(看pdc配置文件)
    prefered master = yes             強制使samba成爲local master
    local master = yes                   使nmbd試着在子網中成爲master browse(儲存子網中所有的netbios name 所對應ip的列表)
    domain master = yes              使nmbd成爲廣域網的netbios name 所對應ip的列表,任務是同步所有子網中local master的列表。因此使各終端得到整個域的瀏覽列表,如果設置了domain logons = yes 那麼domain master默認是yes
    os level = 33                            操作系統級別,winNT4.0服務器-33  如果數值高於33,samba就成爲local master browers不管網絡中是否存在winNT4.0
                                            winNT3.51服務器-32
                                            winNT4.0客戶機-17
                                            winNT3.51客戶機-16
                                            win98 - 2
                                            win95 - 1
                                            win3.1- 1 
    time server  = yes                  nmbd將會告知windows的客戶端自己是作爲smb的時間服務器,可以用net time /yes /set 來同步時間
    domain logons = yes            設置samba爲win98/95所登陸的域服務器
    printer admin = hardy
    username map = /etc/samba/smbusers               用戶別名文件
    logon path =                         看[profiles]的說明
    logon drive = Z:                    把用戶的home目錄映射成z:盤,只適用於NT
    logon home =             指定客戶端登陸的home目錄的位置,當然[homes]目錄需要定義,爲了同時支持9x和nt登陸.該項要設置成爲, 並且指定logon path =  
    socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192       據說可以提高samba性能
    password server =                其他的NT 服務器,或samba服務器但security=server或domain 的ntbios 名字
    hosts allow = 192.168.0.         指定那些主機或網絡段可以訪問
    hosta deny =  192.168.8.        指定那些主機或網絡段不可以訪問
    interfaces = 192.168.0.100/255.255.255.0               設置samba將對哪些網絡接口進行服務
    bind interface only = yes                     如果設置成是,samba只對這幾個網絡接口服務
    socket address = 192.168.0.10                 強制samba只在該端口監聽
    netbios aliases = yao xiao ping                設置3個samba虛擬服務器
    include = /etc/samba/smb.conf.another         包括另外的samba配置文件
    show add printer wizard= yes         當用戶添加打印機時,顯示安裝嚮導 
    printcap name = /etc/printcap
    load printers = yes
    log file = /var/log/samba/%m.log              日誌文件
    max log size = 0                                  日誌文件的大小
    log level = 0                                  日誌級別 0 表示沒有,3 一般比較合理
    syslog = 2                                     syslog的日誌級(0,err)(1,warning)(2,notice)(3,ifno)(4或以上,debug)
    syslog only = yes                             只使用系統日誌,關閉samba日誌
    smb passwd file = /etc/samba/smbpasswd
    unix password sync = yes                      當用戶改變samba加密的密碼時,SAMBA會試着更新UNIX用戶密碼
    passwd program = /usr/bin/passwd %u            指定更改密碼的命令
    passwd chat = *New*password* %n\n *Retype*new*password* %n\n *passwd:*all*authentication*tokens*updated*successfully*    更改密碼時的對話
    password level = "數字" 在win9x下密碼最多出現大寫字母的個數,因爲9X是使用平文傳送密碼的。
    null password = yes           是否允許空密碼
    pam password change = no         爲samba打開pam改變密碼控制機制的支持
    obey pam restrictions = no     當encrypt passwords = yes 時,samba 會忽略pam的驗證,因爲pam不支持(挑戰/回答)驗證機制,他只用來做平文密碼的驗證
    nt acl support = yes           允許NT用戶修改unix文件的屬性
    announce as = NT             告訴客戶端,samba是以winNT的身份來運行的
    announce version = 4.0     告訴客戶端,samba是以4.0版本來運行的
    remote announce = 192.168.33.33/DEBIAN_FANS         子網和工作組,允許SAMBA和子網同步瀏覽(local master)
    browse list = yes                samba將在服務器上生成瀏覽列表
    remote browse sync = 192.168.222.22 # samba         將會同步在其他子網(local master)的列表,但子網的(LOCAL MASTER)必須是SAMBA服務器
    unix realname                   在客戶端是否採用unix全文件名
    nis homedir = yes             SAMBA 採用NIS的/etc/nsswitch.conf 文件,而不用/etc/passwd,來找用戶的home目錄
    logon script = %U.bat          指定客戶端登陸文件名
[netlogon]
    path = /home/samba/netlogon                  該目錄中存放用戶登陸腳本(logon script = %U.bat)
    writable = no
    guest ok = yes
    share modes = no                  打開dos的鎖全文件的方式,在比較繁忙的服務器上關閉它,會提高性能
    ;write list = hardy,root             指定哪些用戶可以在該只讀共享文件上有寫的權限
[profiles]                           設置每個登陸用戶的環境,包括桌面的屬性,開始菜單上應用程序,以及其他項目。它是儲存在服務器的
    path = /home/samba
    writable = yes                允許寫操作
    browsable = yes              允許該目錄被顯示在系統資源中
    create mask = 0600
    directory mask = 0700
[printers]
    path = /var/spool/samba
    guest ok = yes
    browseable = yes
    printable = yes
    read only = yes
[cdrom]
    path = /mnt/cdrom
    read only = yes
    gue  st ok = yes
    locking = no          由於是隻讀文件
    public = yes
    preexec = /bin/mount /dev/cdrom                在鏈接共享文件之前,要執行的命令
    postexec = /bin/umount /dev/cdrom            在斷開共享文件之前,要執行的命令  但我不知道什麼時候纔算斷開 
[homes]
   comment = Home
   magic script = hardy.sh                    當用戶打開該共享文件hardy.sh將被執行,結果將被重定向到客戶端
   magic output = /var/log/magicoutput                指定結果輸出到該文件
   volume = user-at-home                                        dos的盤符卷標
   read list = badguy                                                 限制這些用戶在可寫文件上的些操作權限
   valid users = %S                                 可登陸用戶
   invalid users = root                            不可登陸用戶
   max connections = 0                         最大連接數
   read only = no
   writable = yes
   create mode = 0777
   directory mode = 0775
   browseable = no
[public]
   path = /var/ftp
   dont descend = etc bin lib             指定這些在/var/ftp目錄下的目錄是不可訪問的 
   follow symlinks = yes                     指定是否允許文件的鏈接
   wide links = yes                             指定是否可以鏈接到/var/ftp以外的文件或目錄
   hide dot files = yes                        是否隱藏點文件
   hide files = /*.java/*.cpp/               隱藏指定文件
   veto files = /*config/*secret/         完全隱藏文件,比隱藏要強硬。重要文件使用
   delete veto files = no                     當用戶刪除有veto files的目錄時, 是否允許刪除veto files以及目錄 
   delete readonly = no                      是否允許dos用戶刪除只讀文件
   security mask = 0777                     0 表示允許修改,1 表示不允許
   create mask = 0777                        如果上面的(security mask)沒設,則按照這個模式
   force security mode = 0                 當修改文件的屬性,指定哪些模式必須設置
   force create mode = 0                   如果上面的(force security mode)沒設,則按照這個模式的設置
   directory security mask = 0777     目錄,同上
   directory mask = 0777
   force directory security mode = 0777
   force directory mode =0777
   case sensitive = no                       是否區分文件名的大小寫(windows 是不區分的)
   default case = upper/lower          設置默認的是大寫還是小寫
   preserve case = yes                    不進行大小寫的轉換,不轉換成默認(default case)
   short preserve case = yes            將文件名轉成8.3的dos端文件名
   locking = yes                              由於文件只能同時被打開一次,當文件打開時,samba會自動讓其他訪問守候,爲了文件不被破壞
   oplocks = no                               本地緩存,如果設置成yes,會提高samba的速度,據說在linux-2.5以前的版本有bug,所以在2.4中還是設置成no
   level2 oplocks = no                    同上

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