CentOS 8中Smaba服務的安裝與配置


開心一刻

       一家飛機上邊有100塊磚頭,扔下來一塊還有多少塊?
       答案:99塊。
       把大象塞進冰箱需要幾步?
       3步 1.打開冰箱門 2.把大象塞進去 3.把冰箱門關上。
       把長頸鹿塞進冰箱需要幾步?
       4步 1.把冰箱門打開 2.把大象撈出來 3.把長頸鹿塞進去 4.把冰箱門關上。
       動物之王老虎過生日,所有動物都去了,只有一個動物沒去,是誰?
       長頸鹿,在冰箱里呢。。
       一個老太太在鱷魚池里游泳,沒被鱷魚吃了,為什么?
       鱷魚去參加老虎的生日去了。
       為什么老太太又死了?
       被天上掉下來的磚頭砸死了。

寫在前面

       之前想要做到windows和linux系統之間文件共享,一個比較常用的方式是可以使用FTP,或者使用一些linux命令,例如scp、sftp、rz、sz等。后來發現一個我覺得更加好用的工具,就是Samba服務,同時我也嘗試在虛擬機上配置了一下,確實很好用,這里特別寫一篇博客記錄一下配置的過程,不同的linux發行版都大同小異,遇到問題上網搜索一下應該也都能夠解決。

Samba服務安裝及相關參數

在CentOS 8中已經使用dnf安裝軟件包了(yum仍可使用,實際上就是dnf的一個軟連接),所以我這里使用dnf安裝samba。

dnf install -y samba

Samba服務的配置文件在/etc/samba/smb.conf中,其中的一些常用參數記錄如下:

[global] 參數 作用
workgroup = SAMBA 工作組名稱
security = user 安全驗證的方式,就使用默認的user即可,較新的samba服務將share和server棄用了,具體可以查看/etc/samba/smb.conf.example的說明
passdb backend = tdbsam 定義用戶后台的類型,共有三種
printing = cups 設置Samba共享打印機的類型
printcap name = cups 在 UNIX System V 系統上自動獲取打印機列表
load printers = yes 設置smaba服務啟動時是否共享打印機設備
cpu options = raw 打印機選項
[homes] 共享參數名,名稱可隨意,設置好后在訪問時顯示的名稱即為該名稱
comment = Home Directories 描述信息,也是可隨意設置的,起到一個提示的作用
valid users = %S, %D%w%S 用來指定允許訪問該共享資源的用戶
browseable = No 指定共享信息是否在“網上鄰居”可見
read only = No 是否只讀
inherit acls = Yes 是否繼承上一級的acl
public = yes 是否公開(指明該共享資源是否能給游客帳號訪問)
guest ok = yes 與public意思相同
inherit owner = yes 上傳的文件繼承父目錄的所有者, 而不是使用登錄的賬號名。
create mask = 1600 創建或上傳文件時文件的權限
directory mask = 1777 創建或上傳目錄時目錄將被賦予的權限
force directory mode = 1000 為目錄加上sbit權限
writable = yes 是否可上傳文件
[printers] 打印機共享參數,不要共享打印機可以忽略這部分配置信息,甚至可以直接刪除
comment = Printer Drivers 說明信息,內容可隨意
path = /var/tmp 共享路徑

打印機的功能我也沒有使用過,還有一些相關參數我也不寫了。

Samba服務配置

這里是我自己的配置文件內容,我在修改的時候先用cp命令做了一下備份。

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

這里是我的配置文件信息:

[global]
        workgroup = SAMBA
        security = user

        passdb backend = tdbsam

        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw

[home]
        comment = Do not arbitrarily modify the file
        path = /home
        public = no
        writable = yes
        force directory mode = 1000

修改好后重啟samba服務,可以使用testparm命令檢查samba配置文件內容是否正確。

sudo systemctl restart smb
sudo systemctl enable smb #第一次使用可以將其加入到開機啟動項,讓其開機自動啟動。

samba設置賬戶密碼登錄

Samba中設置賬戶密碼訪問時要求使用系統中已存在的用戶,否則創建不成功。我這里使用的是我系統中的普通賬戶,然后共享目錄為家目錄,這樣只需要為每位用戶創建samba賬戶密碼,就可以直接訪問各自的家目錄,然后有什么需要上傳或者下載的文件就可以非常方便地完成。

我使用我自己的普通賬戶作為samba賬戶,使用以下命令設置,然后輸入密碼即可設置成功,samba賬戶的密碼與用戶密碼不沖突,不需要設置成一樣的。

pdbedit -au test

出現這樣的提示信息代表samba賬戶創建成功
image

防火牆開放samba服務

centOS8中使用firewalld服務作為默認的防火牆配置管理工具。只需要讓firewalld允許samba服務通過防火牆即可。

sudo firewall-cmd --zone=public --permanent --add-service=samba
sudo firewall-cmd --reload

如果使用的是圖形化界面,那么也可以使用firewall-config工具,效果與firewall-cmd相同,但是比firewall-cmd要好用,不過cnetOS8好像沒有默認裝firewall-config,可以使用sudo dnf install firewall-config安裝。

防火牆開放samba服務的命令執行后,可以使用以下命令查看是否成功

sudo firewall-cmd --zone=public --permanent --query-service=samba

出現success字樣說明啟動是成功的。

修改Selinux域策略

因為設置訪問家目錄,而linux中由於Selinux的存在,samba是無法訪問家目錄的(除非關閉Selinux)。不關閉Selinux的情況下,可以通過修改Selinux的域策略來允許通過Samba服務程序訪問普通用戶家目錄。

可以先使用下面的命令查看一下有那些samba相關的域策略

getsebool -a | grep samba

然后修改Selinux域策略

setsebool -P samba_enable_home_dirs on

成功設置后,可以找一台同一個局域網中的電腦,然后使用win+R組合鍵,在運行框中輸入\\samba服務器ip地址,然后回車,如果設置沒有問題,就會彈出一個要求輸入賬號密碼的對話框。

結語

       這篇博文介紹在CentOS8中配置samba服務程序,實現linux與windows之間文件的共享,samba服務配置成功后,訪問linux上的程序就像訪問windows一樣簡單,是一個非常使用的工具了。其他linux發行版大同小異,若是嫌麻煩,甚至可以直接關掉防火前和Selinux,只需要將samba配置文件設置好即可。_

文中都是我個人的理解,如有錯誤的地方歡迎下方評論告訴我,我及時更正,大家共同進步


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM