Samba是在Linux和UNIX系統上實現SMB協議的一個免費軟件,由服務器及客戶端程序構成。
SMB(Server Messages Block,信息服務塊)是一種在局域網上共享文件和打印機的一種通訊協議,它爲局域網內的不一樣計算機之間提供文件及打印機等資源的共享服務。
SMB協議是客戶機/服務器型協議,客戶機經過該協議能夠訪問服務器上的共享文件系統、打印機及其餘資源。
samba監聽端口linux
TCP——13九、445,tcp端口相對應的服務是smbd服務,其做用是提供服務器中文件、打印資源的共享訪問;
UDP——13七、138,udp端口相對應的服務是nmbd服務,起做用是提供基於NetBOIS主機名稱的解析。ios
samba進程:數據庫
進程 | 對應 |
---|---|
nmbd | 對應netbios |
smbd | 對應cifs協議 |
winbindd + ldap | 對應Windows AD 活動目錄 |
samba用戶:vim
賬號 密碼 安全
都是系統用戶/etc/passwd Samba服務自有密碼文件經過smbpasswd -a USERNAME命令設置bash
賬號 | 密碼 |
---|---|
都是系統用戶/etc/passwd | Samba服務自有密碼文件經過smbpasswd -a USERNAME命令設置 |
1. smbpasswd :服務器
**重點:** ** -a 添加用戶 -d 禁用用戶 -e 啓用用戶 -x 刪除用戶 只是把smb裏面的這個用戶刪除,不是把普通用戶刪掉 [root@wlw ~]# yum install -y samba* [root@wlw ~]# useradd www [root@wlw ~]# id www uid=1001(www) gid=1002(www) 組=1002(www) [root@wlw ~]# smbpasswd -a www New SMB password: Retype new SMB password: Added user www.**
Samba安全級別:
Samba服務器的安全級別有三個,分別是user,server,domainapp
安全級別 做用dom
user 基於本地的驗證tcp
server 由另外一臺指定的服務器對用戶身份進行認證
domain 由域控進行身份驗證
安全級別 | 做用 |
---|---|
user | 基於本地的驗證 |
server | 由另外一臺指定的服務器對用戶身份進行認證 |
domain | 由域控進行身份驗證 |
之前的samba版本支持的安全級別有四個,分別是share,user,server,domain
share是用來設置匿名訪問的,但如今的版本已經不支持share了,可是仍是能夠實現匿名訪問的 只是配置方式變了
samba配置文件:
/etc/samba/smb.conf(主配置文件)
samba三大組成 做用
[global] 全局配置,此處的設置項對整個samba服務器都有效
[homes] 宿主目錄共享設置,此處用來設置Linux用戶的默認共享,對應用戶的宿主目錄。當用戶訪問服務器中與本身用戶名同名的共享目錄時,經過驗證後將會自動映射到該用戶的宿主目錄中
[printers] 打印機共享設置
samba三大組成 | 做用 |
---|---|
[global] | 全局配置,此處的設置項對整個samba服務器都有效 |
[homes] | 宿主目錄共享設置,此處用來設置Linux用戶的默認共享,對應用戶的宿主目錄。當用戶訪問服務器中與本身用戶名同名的共享目錄時,經過驗證後將會自動映射到該用戶的宿主目錄中 |
[printers] | 打印機共享設置 |
經常使用配置文件參數:
都在兩個文件裏
[root@wlw ~]# vim /etc/samba/smb.conf smb.conf smb.conf.example [root@wlw ~]# vim /etc/samba/smb.conf.example
參數 | 做用 | |
---|---|---|
workgroup | 表示設置工做組名稱 | |
server string | 表示描述samba服務器 | |
security | 表示設置安全級別,其值可爲share、user、server、domain | |
passdb backend | 表示設置共享賬戶文件的類型,其值可爲tdbsam(tdb數據庫文件)、ldapsam | (LDAP目錄認證)、smbpasswd(兼容舊版本samba密碼文件) |
comment | 表示設置對應共享目錄的註釋,說明信息,即文件共享名 | |
browseable | 表示設置共享是否可見 | |
writable | 表示設置目錄是否可寫 | |
path | 表示共享目錄的路徑 | |
guest ok | 表示設置是否全部人都可訪問共享目錄 | |
public | 表示設置是否容許匿名用戶訪問 | |
write list | 表示設置容許寫的用戶和組,組要用@表示,例如 write list = root,@root | |
valid users | 設置能夠訪問的用戶和組,例如 valid users = root,@root | |
hosts deny | 設置拒絕哪臺主機訪問,例如 hosts deny = 192.168.72.1 | |
hosts allow | 設置容許哪臺主機訪問,例如 hosts allow = 192.168.72.2 | |
printable | 表示設置是否爲打印機 |
測試配置文件是否有語法錯誤,以及顯示最終生效的配置:使用testparm命令 [root@wlw ~]# testparm Load smb config files from /etc/samba/smb.conf rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) Processing section "[homes]" Processing section "[printers]" Processing section "[print$]" Processing section "[wlw]" set_variable_helper(yes #是否全部人瀏覽): value is not boolean! Error loading services.
測試配置文件是否有語法錯誤,以及顯示最終生效的配置:使用testparm命令
環境說明:
服務器IP | 客戶機IP |
---|---|
192.168.66.128 | 192.168.66.130 |
//交互式數據訪問
smbclient -L HOST -U USERNAME
smbclient //SERVER/shared_name -U USERNAME
//在客戶端安裝samba-client包
[root@wan ~]# yum install -y samba-client #客戶端只須要下個 samba-客戶端就行
//查看samba服務器有哪些資源共享
[root@wan ~]# smbclient -L 192.168.66.128 -U www 或者[root@wan ~]# smbclient //192.168.66.128/www -U www #這是兩種方法 Enter SAMBA\www's password: Domain=[WLW] OS=[Windows 6.1] Server=[Samba 4.6.2] Sharename Type Comment --------- ---- ------- print$ Disk Printer Drivers wlw Disk IPC$ IPC IPC Service (Samba 4.6.2) www Disk Home Directories Domain=[WLW] OS=[Windows 6.1] Server=[Samba 4.6.2] Server Comment --------- ------- Workgroup Master --------- ------- SAMBA WLW [root@wan ~]# smbclient //192.168.66.128/www -U www Enter SAMBA\www's password: Domain=[WLW] OS=[Windows 6.1] Server=[Samba 4.6.2] smb: \> ls . D 0 Thu Mar 26 15:12:13 2020 .. D 0 Thu Mar 26 15:12:13 2020 .bash_logout H 18 Wed Mar 8 00:13:45 2017 .bash_profile H 193 Wed Mar 8 00:13:45 2017 .bashrc H 231 Wed Mar 8 00:13:45 2017 17811456 blocks of size 1024. 15534504 blocks available smb: \> quit
基於掛載的方式訪問
mount -t cifs //SERVER/shared_name /掛載到本地的什麼目錄 -o username=USERNAME,password=PASSWORD
[root@wan ~]# mkdir /w [root@wan ~]# mount -t cifs //192.168.66.128/www /w -o username=www,password=w [root@wan ~]# df -h 文件系統 容量 已用 可用 已用% 掛載點 /dev/mapper/rhel-root 17G 1.7G 16G 10% / devtmpfs 901M 0 901M 0% /dev tmpfs 912M 0 912M 0% /dev/shm tmpfs 912M 8.9M 903M 1% /run tmpfs 912M 0 912M 0% /sys/fs/cgroup /dev/sda1 1014M 143M 872M 15% /boot tmpfs 183M 0 183M 0% /run/user/0 /dev/sr0 3.8G 3.8G 0 100% /mnt //192.168.66.128/www 17G 2.2G 15G 13% /w
/etc/fstab寫法
//SERVER/shared_name /掛載到本地的什麼目錄 cifs defaults,username=USERNAME,password=PASSWORD 0 0
[root@wan ~]# vim /etc/fstab //192.168.66.128/www /w cifs defaults,username=www,password=w 0 0
服務端: [root@wlw ~]# systemctl stop firewalld [root@wlw ~]# systemctl disable firewalld [root@wlw ~]# vim /etc/selinux/config 把裏面的改爲SELINUX=disabled [root@wlw ~]# setenforce 0 [root@wlw ~]# yum install -y samba* [root@wlw ~]# systemctl start smb nmb [root@wlw ~]# ss -antl //看有沒有139和445這兩個samba的端口 State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 50 *:139 *:* LISTEN 0 64 *:41771 *:* LISTEN 0 128 *:111 *:* LISTEN 0 128 *:20048 *:* LISTEN 0 128 *:22 *:* LISTEN 0 100 127.0.0.1:25 *:* LISTEN 0 50 *:445 *:* LISTEN 0 64 *:2049 *:* LISTEN 0 128 *:56458 *:* LISTEN 0 50 :::139 :::* LISTEN 0 128 :::111 :::* LISTEN 0 128 :::20048 :::* LISTEN 0 128 :::41940 :::* LISTEN 0 128 :::22 :::* LISTEN 0 100 ::1:25 :::* LISTEN 0 50 :::445 :::* LISTEN 0 64 :::2049 :::* LISTEN 0 64 :::43753 :::* [root@wlw ~]# mkdir /wan [root@wlw ~]# useradd www [root@wlw ~]# vim /etc/samba/smb.conf #在最下面本身添加 [www] path = /wan #共享什麼文件 guest ok = yes #是否全部人瀏覽 browseable = yes #打開讀的功能 writable = yes #打開寫的功能 write list = www #指定哪一個用戶能寫 hosts allow =192.168.66.130 #只容許這個ip訪問 [root@wlw ~]# smbpasswd -a www New SMB password: Retype new SMB password: Added user www. #出現Added user www.就表明成功了
[root@wan ~]# systemctl stop firewalld [root@wan ~]# systemctl disable firewalld [root@wan ~]# vim /etc/selinux/config 把裏面的改爲SELINUX=disabled [root@wan ~]# setenforce 0 [root@wan ~]# yum install -y samba-client #客戶端只須要下個 samba-客戶端就行 [root@wan ~]# smbclient -L 192.168.66.128 -U www 或者[root@wan ~]# smbclient //192.168.66.128/www -U www #這是兩種方法 Enter SAMBA\www's password: Domain=[WLW] OS=[Windows 6.1] Server=[Samba 4.6.2] Sharename Type Comment --------- ---- ------- print$ Disk Printer Drivers wlw Disk IPC$ IPC IPC Service (Samba 4.6.2) www Disk Home Directories Domain=[WLW] OS=[Windows 6.1] Server=[Samba 4.6.2] Server Comment --------- ------- Workgroup Master --------- ------- SAMBA WLW [root@wan ~]# smbclient //192.168.66.128/www -U www Enter SAMBA\www's password: Domain=[WLW] OS=[Windows 6.1] Server=[Samba 4.6.2] smb: \> ls . D 0 Thu Mar 26 15:12:13 2020 .. D 0 Thu Mar 26 15:12:13 2020 .bash_logout H 18 Wed Mar 8 00:13:45 2017 .bash_profile H 193 Wed Mar 8 00:13:45 2017 .bashrc H 231 Wed Mar 8 00:13:45 2017 17811456 blocks of size 1024. 15534504 blocks available smb: \> quit [root@wan ~]# mkdir /w [root@wan ~]# mount -t cifs //192.168.66.128/www /w -o username=www,password=w [root@wan ~]# df -h 文件系統 容量 已用 可用 已用% 掛載點 /dev/mapper/rhel-root 17G 1.7G 16G 10% / devtmpfs 901M 0 901M 0% /dev tmpfs 912M 0 912M 0% /dev/shm tmpfs 912M 8.9M 903M 1% /run tmpfs 912M 0 912M 0% /sys/fs/cgroup /dev/sda1 1014M 143M 872M 15% /boot tmpfs 183M 0 183M 0% /run/user/0 /dev/sr0 3.8G 3.8G 0 100% /mnt //192.168.66.128/www 17G 2.2G 15G 13% /w [root@wan ~]# vim /etc/fstab //192.168.66.128/www /w cifs defaults,username=www,password=w 0 0 [root@wan ~]# df -h 文件系統 容量 已用 可用 已用% 掛載點 /dev/mapper/rhel-root 17G 1.7G 16G 10% / devtmpfs 901M 0 901M 0% /dev tmpfs 912M 0 912M 0% /dev/shm tmpfs 912M 8.9M 903M 1% /run tmpfs 912M 0 912M 0% /sys/fs/cgroup /dev/sda1 1014M 143M 872M 15% /boot tmpfs 183M 0 183M 0% /run/user/0 /dev/sr0 3.8G 3.8G 0 100% /mnt [root@wan ~]# mount -a mount.nfs: access denied by server while mounting 192.168.66.128:/nfs [root@wan ~]# df -h 文件系統 容量 已用 可用 已用% 掛載點 /dev/mapper/rhel-root 17G 1.7G 16G 10% / devtmpfs 901M 0 901M 0% /dev tmpfs 912M 0 912M 0% /dev/shm tmpfs 912M 8.9M 903M 1% /run tmpfs 912M 0 912M 0% /sys/fs/cgroup /dev/sda1 1014M 143M 872M 15% /boot tmpfs 183M 0 183M 0% /run/user/0 /dev/sr0 3.8G 3.8G 0 100% /mnt //192.168.66.128/www 17G 2.2G 15G 13% /w
[root@wlw ~]# yum install -y samba* [root@wlw ~]# mkdir /opt/zxc [root@wlw ~]# chmod 777 /opt/zxc [root@wlw ~]# ll /opt/ 總用量 6 drwxrwxrwx. 2 root root 6 3月 26 18:25 zxc [root@wlw ~]# cat >> /etc/samba/smb.conf <<EOF > [wan] > comment = wan > path = /opt/zxc > browseable = yes > guest ok = yes > writable = yes > public = yes > EOF [root@wlw ~]# tail -7 /etc/samba/smb.conf [wan] comment = wan path = /opt/zxc browseable = yes guest ok = yes writable = yes public = yes [root@wlw ~]# systemctl start smb
客戶端:
[root@wan ~]# smbclient -L 192.168.66.128 -U 'Bad User' Enter SAMBA\Bad User's password: OS=[Windows 6.1] Server=[Samba 4.6.2] Sharename Type Comment --------- ---- ------- print$ Disk Printer Drivers wan Disk wan IPC$ IPC IPC Service (Samba 4.6.2) OS=[Windows 6.1] Server=[Samba 4.6.2] Server Comment --------- ------- Workgroup Master --------- ------- SAMBA WLW [root@wan ~]# mount -t cifs //192.168.66.128/wan /opt/wan/ -o username='Bad User' [root@wan ~]# df -h 文件系統 容量 已用 可用 已用% 掛載點 /dev/mapper/rhel-root 17G 1.7G 16G 10% / devtmpfs 901M 0 901M 0% /dev tmpfs 912M 0 912M 0% /dev/shm tmpfs 912M 8.9M 903M 1% /run tmpfs 912M 0 912M 0% /sys/fs/cgroup /dev/sda1 1014M 143M 872M 15% /boot tmpfs 183M 0 183M 0% /run/user/0 /dev/sr0 3.8G 3.8G 0 100% /mnt //192.168.66.128/wan 17G 2.2G 15G 13% /opt/wan