samba

一、samba簡介

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 :服務器

  1. -L 本地模式(必須是第一選項)
  2. -h 打印此用法消息
  3. -s 使用stdin進行密碼提示
  4. -c smb.conf 文件使用smb.conf文件的給定路徑
  5. -D LEVEL 調試級別
  6. -r MACHINE 遠程機器
  7. -U USER 遠程用戶名(例如SAM /用戶)
  8. 在root或本地模式下運行時的額外選項:
  9. -a 添加用戶
  10. -d 禁用用戶
  11. -e 啓用用戶
  12. -i 域間信任賬戶
  13. -m 機器信託賬戶
  14. -n 設置無密碼
  15. -W 使用stdin ldap管理員密碼
  16. -w PASSWORD ldap管理員密碼
  17. -x 刪除用戶
  18. -R ORDER名稱解析順序
**重點:**
  ** -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命令

2.samba訪問

環境說明:

服務器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
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息