一、安裝samba服務以及samba用戶端
yum list samba
yum install samba samba-client
安裝好samba軟體包以後,在系統中會添加名為smb和nmb的标準系統服務,管理者可以通過service(centos6)或systemctl(centos7)工具來控制Samba服務的啟動與終止。
其中smbd程式負責監聽TCP協定的139端口(SMB協定)、445端口(CIFS協定),而nmbd服務程式負責監聽UDP協定的137、138端口(NetBIOS協定)。
netstat -anput | grep mbd
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
vim /etc/samba/smb.conf
使用如下配置:
# 全局設定:這部配置設定置項的内容對整個samba伺服器都有效。
[global]
workgroup = SAMBA
# share:允許任何匿名使用者通路
# user:預設、每一個使用者通路時都需要提供賬号密碼
# domain/server:第三方集中認證
security = user
passdb backend = tdbsam
log file = /var/log/samba/log.%m
printing = cups
printcap name = cups
load printers = yes
cups options = raw
[homes]
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes
#列印機共享設定:若需要共享列印機裝置,可以在這部分進行配置。
#[printers]
# comment = All Printers
# path = /var/tmp
# printable = Yes
# create mask = 0600
# browseable = No
[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = @printadmin root
force group = @printadmin
create mask = 0664
directory mask = 0775
[wxzy_app]
# 共享描述
comment = app share
# 設定共享檔案夾的路徑
path = /home/app_smb
# 允許該指定共享目錄可浏覽
browseable = yes
# 設定是否允許匿名通路
public = no
# 允許通路共享目錄的使用者
valid users = @smb
# 讀寫控制共享目錄的使用者組
write list = app_admin
# 預設建立檔案權限 rw_rw___
force create mode = 0660
# 預設建立目錄權限 rwxrwxr__
force directory mode= 2770
# 設定強制設定建立檔案所屬使用者
force user = app
# 設定強制設定建立檔案所屬使用者組
force group = smb
# 該指定共享資源可使用
available = yes
unix charset = UTF-8
dos charset = cp936
[wxzy_app_admin]
# 共享描述
comment = app share admin
path = /samba/app_admin
browseable = yes
read only = no
force create mode = 0660
force directory mode = 2770
valid users = app_admin
二、建立samba使用者和使用者組
添加共享使用者組:
groupadd -r smb
useradd -s /sbin/nologin -G smb app_smb
useradd -M -d /samba/app -s /sbin/nologin -G smb app
useradd -M -d /samba/app_admin -s sbin/nologin -G smb app_admin
-M 不建立使用者的home目錄
-d 手動設定使用者目錄
-s /usr/sbin/nologin – 禁止使用者shell登入
-G admin将使用者加入到app_admin使用者組.
smbpasswd -a app
New SMB password:[email protected]
smbpasswd -a app_admin
New SMB password:admin
smbpasswd -e app
smbpasswd -e app_admin
三、建立samba共享目錄以及檔案夾權限設定
添加共享路徑:
cd /
mkdir samba
cd samba
mkdir app
mkdir app_admin
chown -R app:smb app
chown -R app_admin:smb app_admin
chmod 770 /samba/app
chmod 770 /samba/app_admin
重新開機
sambda:systemctl restart smb
四、使用samba進行檔案共享
方式1:檔案夾挂載
1、安裝cifs-utils軟體包以支援samba的挂載(否則即使挂載沒有報錯也無法正常使用)
yum install cifs-utils
2、建立挂載點
mkdir /mnt/smbmount
3、進行條目挂載或把挂載條目寫入/etc/fstab以使開機自動挂載
mount -t cifs -o username=app_admin //172.16.137.236/wxzy_app_admin /mnt/smbmount
-o username –通路共享檔案夾時候的使用者
//172.16.137.236/wxzy_app_admin – 共享檔案夾的共享位址
/mnt/smbmount –本地挂載映射路徑
如果需要開機自動挂載
Vim /etc/fstab
在最後一行添加
//172.16.137.236/wxzy_app_admin /mnt/smbmount cifs default,username=app_admin,password=123 0 0
如果需要針對多使用者挂載參考:https://blog.csdn.net/kangvcar/article/details/76093904?depth_1-utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-3&utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-3
方式2:使用samba-client
smbclient //172.16.137.236/wxzy_app -U app
五、關于samba的權限控制
samba的權限由兩方面構成:一是目錄本身的權限,二是samba的配置權限。最終權限定義是兩者的最小交集。
在smb.conf中通過一下幾個配置項配置sambe的權限
# 允許該指定共享目錄可浏覽
browseable = yes
# 設定是否允許匿名通路
public = no
# 允許通路共享目錄的使用者
valid users = @smb
# 讀寫控制共享目錄的使用者組
write list = app_admin