Samba服務器創建與使用

簡單使用

服務器端

[root@centos7 ]# yum install samba -y
[root@centos7 ]# useradd smbuser -s /sbin/nologin #samba用戶必須是Linux用戶
[root@centos7 ]# smbpasswd -a smbuser #添加samba用戶
[root@centos7 ]# systemctl start smb

客戶端

[root@centos7 ]# yum install samba-client -y
[root@centos7 ]# smbclient -L 192.168.6.6 -U smbuser%123456 #查看服務器共享目錄
Domain=[SAMBA] OS=[Windows 6.1] Server=[Samba 4.4.4]

    Sharename       Type      Comment
    ---------       ----      -------
    centos          Disk      centos7
    print$          Disk      Printer Drivers
    IPC$            IPC       IPC Service (Samba 4.4.4)
Domain=[SAMBA] OS=[Windows 6.1] Server=[Samba 4.4.4]

    Server               Comment
    ---------            -------
    DATACENTER           Samba 4.6.2
    SHARE                Samba 4.4.4

    Workgroup            Master
    ---------            -------
    SAMBA                DATACENTER
    WORKGROUP            ROUSI
[root@centos7 ]# smbclient //192.168.6.6/centos -U smbuser%123456
Domain=[SAMBA] OS=[Windows 6.1] Server=[Samba 4.4.4]
smb: \> 

默認進入登錄用戶家目錄

Samba高級設置詳解

SAMBA服務器配置

全局設置:
[global] 服務器通用或全局設置的部分
特定共享設置:
[homes] 用戶的家目錄共享
[printers] 定義打印機資源和服務
[sharename] 自定義的共享目錄配置
其中: #和;開頭的語句爲註釋,大小寫不敏感

配置文件裏的宏定義

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

SAMBA服務器全局配置

workgroup 指定工作組名稱
server string 主機註釋信息
netbios name 指定NetBIOS名
interfaces 指定服務偵聽接口和IP
hosts allow 可用“,” ,空格,或tab分隔,默認允許所有主機訪問, 也可在每個共享獨立配置,如在[global]設置將應用並覆蓋所有共享設置
IPv4 network/prefix: 172.25.0.0/24 IPv4前綴: 172.25.0.
IPv4 network/netmask: 172.25.0.0/255.255.255.0
主機名: desktop.example.com
以example.com後綴的主機名: .example.com
示例:

hosts allow = 172.25.  #172.25這個網段
hosts allow = 172.25. .example.com

hosts deny 拒絕指定主機訪問
config file=/etc/samba/conf.d/%U 用戶獨立的配置文件
Log file=/var/log/samba/log.%m 不同客戶機採用不同日誌
max log size=50 日誌文件達到50K,將輪循rotate,單位KB
Security三種認證方式:
share:匿名(CentOS7不再支持)
user: samba用戶(採有linux用戶, samba的獨立口令)
domain:使用DC(DOMAIN CONTROLLER)認證
passdb backend = tdbsam 密碼數據庫格式

Samba配置目錄共享選項解釋

每個共享目錄應該有獨立的[ ]部分
[共享名稱] 遠程網絡看到的共享名稱
comment 註釋信息
path 所共享的目錄路徑
public 能否被guest訪問的共享,默認no,是否能匿名登錄

smbclient //192.168.6.7/centos  #直接敲回車即可登錄,在不設置其他登錄權限下

browsable 是否允許所有用戶瀏覽此共享,默認爲yes

    Sharename       Type      Comment
    ---------       ----      -------
    centos          Disk      centos7  <--
    print$          Disk      Printer Drivers
    IPC$            IPC       IPC Service (Samba 4.4.4)
是否能看到共享目錄

writeable=yes 可以被所有用戶讀寫,默認爲no
read only=no 和writable=yes等價,如與以上設置衝突,放在後面的設置生效,默認只讀
write list 三種形式:用戶, @組名, +組名,用,分隔如writable=no,列表中用戶或組可讀寫,不在列表中用戶只讀
valid users 特定用戶才能訪問該共享,如爲空,將允許所有用戶,用戶名之間用空格分隔

管理SAMBA用戶

添加samba用戶
smbpasswd -a
pdbedit -a -u
修改用戶密碼
smbpasswd
刪除用戶和密碼:
smbpasswd –x
pdbedit –x –u
查看samba用戶列表:
/var/lib/samba/private/passdb.tdb
pdbedit –L –v
查看samba服務器狀態
smbstatus

掛載Samba共享

手動掛載

mount -t cifs -o user=smbuser,password=123456,sec=ntlmssp //192.168.6.6/home/smbuser /mnt/smb

自動掛載

cat /etc/fstab 可以用文件代替用戶名和密碼的輸入
//192.168.6.6/home/smbuser /mnt/smb cifs credentials=/etc/smb.txt,sec=ntlmssp 0 0
cat /etc/smb.txt
username=smbuser
password=123456
chmod 600 /etc/smb.txt

注:如果掛載出錯,提示找不到mount.cifs,可以安裝軟件包cifs-utils,sec=ntlmssp設置密碼hash格式,如果不寫會報 mount error(13): Permission denied 錯誤

NetBIOS名稱解析

[global]
workgroup = SAMBA
security = user
passdb backend = tdbsam
printing = cups
printcap name = cups
load printers = no
cups options = raw
netbios name = share  #名稱解析,可以通過這個名字訪問Samba服務器
log file = /var/log/samba/log.%I #日誌文件帶訪問客戶端IP,每個IP一個日誌文件
log level = 2 #日誌記錄級別

[root@centos7 ]# systemctl start nmb
[root@centos7 ]# systemctl restart smb

訪問

[root@centos7 ]# smbclient //share/centos -U smbuser%123456

不同用戶通過同一個UNC路徑訪問不同目錄

服務器端

useradd -s /sbin/nologin smb1
useradd -s /sbin/nologin smb2
smbpasswd -a smb1
smbpasswd -a smb2
mkdir /etc/samba/conf.d
vi /etc/samba/smb.conf
[global]
    config file = /etc/samba/conf.d/%U #添加一行
vi /etc/samba/conf.d/smb1
[centos]
     comment = smb1
     path = /home/smb1
vi /etc/samba/conf.d/smb2
[centos]
     comment = smb2
     path = /home/smb2  

touch /home/smb2/smb2.txt
touch /home/smb2/smb2.txt

客戶端

smbclient -L 192.168.6.7 -U smb1%123456
smbclient //192.168.6.7/centos -U smb1%123456
切換用戶,可以看到所進入的目錄不同

多用戶掛載(centos7支持)

服務器端

mkdir /multiuser
vim /etc/samba/smb.conf
[smbshare]
path=/multiuser
writable=no
write list= @admins

useradd –s /sbin/nologin smbuser
smbpasswd –a smbuser
useradd –s /sbin/nologin –G admins haha
smbpasswd –a haha
useradd –s /sbin/nologin xixi
smbpasswd –a xixi

setfacl –m u:haha:rwx /testdir/multiuser
setfacl –m g:admins:rwx /testdir/multiuser

客戶端

yum -y install cifs-utils
mkdir /mnt/smb
echo 'username=smbuser' >/etc/multiuser #創建的用戶在服務器上要有
echo 'password=centos' >>/etc/multiuser
chmod 600 /etc/multiuser
以多用戶方式掛載:
vim /etc/fstab
//smbserver/smbshare /mnt/smb cifs credentials=/etc/multiuser,multiuser,sec=ntlmssp 0 0
mount -a

在samba客戶端實現多用戶訪問

useradd haha
useradd xixi
用root訪問
ls /mnt/smb
touch /mnt/smb/root.txt
用haha訪問
cifscreds add –u haha smbserver
touch /mnt/smb/haha.txt
用xixi訪問
cifscreds add –u xixi smbserver
touch /mnt/smb/xixi.txt #沒有寫權限(對目錄、服務沒有寫權限),只能查看

注:當沒有寫權限是記得把共享目錄權限設成777,打開writeable,默認都有讀權限

發佈了86 篇原創文章 · 獲贊 39 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章