簡單使用
服務器端
[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,默認都有讀權限