Samba伺服器基礎設定(Linux)
前言: |
Samba
被各大平台廣泛使用是基於分享的通用性,可以在Windows
,Linux
,MacOS
等系統間相互分享彼此資源。所以學習
Samba
伺服器基礎設定也是有其必要性。
目錄內容: |
操作步驟: |
所有設定基於"Ubuntu 20.04.4 LTS
" 系統。
便於操作,轉換到root
管理帳號
sudo -i
安裝Samba
軟件
apt update && apt install samba -y
免密碼的分享設定 |
建立分享目錄
mkdir -p /srv/samba/public
并允許目錄的所有存取權限
chmod 777 /srv/samba/public
新增分享目錄參數到 smb.conf 設定檔
cat >> /etc/samba/smb.conf << EOF
[Public]
comment = Public Folder without Password
browseable = yes
path = /srv/samba/public/
read only = no
security = share
guest ok = yes
EOF
參數 | 說明 |
---|---|
[Public] | 分享名稱 |
comment = | 分享說明 |
browseable = yes | 讓使用者看到這個分享目錄 |
path = | /srv/samba/public 是linux 內的目錄路徑 |
read only = no | 可以寫入 |
security = share | 免帳號密碼 登入分享目錄 |
guest ok = yes | 允許賓客 |
檢驗設定檔 smb.conf 的語法正確與否
testparm
重新啟動 Samba
服務以使設定生效
systemctl restart smbd.service
systemctl restart nmbd.service
查看執行狀態
systemctl status smbd.service
在Windows 的執行開啟分享目錄
\\10.0.0.74\Public
可以查看到免密分享的目錄權限是
使用者: nobody
群組: nogroup
需帳號密碼的分享設定 |
假設分享目錄為多使用者共享存取,而且要指定的使用者+密碼才可以進入到目錄讀寫資源。
建立分享目錄
mkdir -p /srv/samba/share
- 以
users
為共享群組,因為需要分享目錄為多位使用者存取,所以將目錄加入 共享群組users
chgrp users /srv/samba/share/
查看目錄權限
ll -d /srv/samba/share
drwxr-xr-x 2 root users 4096 Apr 28 09:26 /srv/samba/share/
設定共享群組的目錄權限
設定目錄SGID標籤,讓加入 users
群組的所有使用者在該目錄下均具有讀寫的權限。
chmod 2775 /srv/samba/share/
查看SGID權限
ll -d /srv/samba/share
drwxrwsr-x 2 root users 4096 Apr 28 09:26 /srv/samba/share/群組的x變為s
建立3個用戶,名稱分別為 client01
, client02
, client03
,且均加入 users
為次要群組。
useradd -G users client01
useradd -G users client02
useradd -G users client03
id
指令用於顯示用戶的ID
,以及所屬群組的ID
id client01
uid=1001(client01) gid=1001(client01) groups=1001(client01),100(users)
id client02
uid=1002(client02) gid=1002(client02) groups=1002(client02),100(users)
id client03
uid=1003(client03) gid=1003(client03) groups=1003(client03),100(users)
設定每位使用者的Samba
的帳號密碼
smbpasswd -a client01
New SMB password:
Retype new SMB password:
Added user client01.
smbpasswd -a client02
New SMB password:
Retype new SMB password:
Added user client02.
smbpasswd -a client03
New SMB password:
Retype new SMB password:
Added user client03.
查看Samba
建立的帳號清單
pdbedit -L
client01:1001:
client03:1003:
client02:1002:
新增分享目錄參數到Samba
的設定檔 smb.conf
cat >> /etc/samba/smb.conf << EOF
[Share]
comment = Share with Multiple Users
browseable = yes
path = /srv/samba/share
read only = no
security = user
create mask = 0775
directory mask = 0775
write list = @users
EOF
參數 | 說明 |
---|---|
[Share] | 分享名稱 |
comment = | 分享說明 |
browseable = yes | 讓使用者看到這個分享目錄 |
path = | /srv/samba/share 是linux 內的目錄路徑 |
read only = no | 可以寫入 |
security = user | 需要帳號+密碼 才可以存取分享目錄 |
create mask = 0775 | 使用者建立文件的預設權限 |
directory mask = 0775 | 使用者建立目錄的預設權限 |
write list = @users | 指加入該群組(users )的使用者均可取得使用的權限! |
檢驗設定檔 smb.conf
的語法正確與否
testparm
重新啟動 Samba 服務以使設定生效
systemctl restart smbd.service
systemctl restart nmbd.service
查看服務運行狀態
systemctl status smbd.service
連入Samba伺服器測試
範例中在Windows使用帳號為client01的使用者。
可以成功連入到伺服器及建立文件(讀寫)
查看使用者client01
在該分享目錄的權限。
ll /srv/samba/share/
可以看到文件的擁有者為client01
,群組的所屬為users
同樣,client02
建立文件的擁有者為client02
,群組的所屬為users
其他使用者也可刪除client01
建立的文件及內容
客戶端(Linux)掛載分享目錄設定 |
安裝軟件包,用於掛載及使用SMB功能
apt install cifs-utils -y
手動掛載 Samba(SMB) 分享目錄
建立掛載目錄
mkdir -p /mnt/linux02
手動掛載
mount -t cifs -o username=client02 //10.10.10.54/share /mnt/linux02/
Password for client02@//10.10.10.54/share: *******
在-o
參數中,指定使用者為client02
進入到目錄建立文件
cd /mnt/linux02/
touch files{1..50}.txt
可以看到已經成功掛載分享目錄及讀寫文件。
系統引導時自動掛載 Samba(SMB) 分享目錄
首先建立憑證檔案,用於掛載時讀取使用者名稱及密碼 (或者連網域)
vim /root/smb.cred
username=指定使用者為client03
password=密碼是123456
#domain=domain_name (註解)
基於安全,設定只有憑證檔案擁有者才可以讀寫
chmod 600 /root/smb.cred
將開機掛載指命添加到/etc/fstab
檔案
當系統啟動的時候,系統會自動地從這個文件讀取信息,並且會自動將此文件中指定的文件系統掛載到指定的目錄。
vim /etc/fstab
//10.10.10.54/share /mnt/linux02 cifs credentials=/root/smb.cred 0 0
即時查看/etc/fstab
檔案是否設定正確
sudo mount -a
重新開機後系統引導時就會自動掛載分享目錄。
結語: |
Samba
是Linux
的標準程式套件。Samba
為所有支持SMB
/CIFS
協議的客戶提供安全,穩定檔案分享和列印服務(CPUS
),例如所有版本的Windows
,macOS
,Linux
和Andorid
等許多其他系統間相互分享資源。* 基於安全性,建議不要使用免密碼的分享設定,而且
Windows10
/11
開始不再支援SMB1.0
(不能連入無密碼的Samba
伺服器)。
參考資料: |