1. 程式人生 > >13-安裝與配置Samba服務器

13-安裝與配置Samba服務器

lis owa list sbin glob 創建文件夾 自己 重命名 name

零、實驗環境
SambaServer:192.168.80.100/24
SambaClient:192.168.80.110/24
WinXP:192.168.80.120/24

一、安裝
1、安裝Samba服務

yum install samba

2、查看相關軟件包

rpm -qa | grep samba

samba4-libs-4.2.10-12.el6_9.x86_64
samba-winbind-3.6.23-45.el6_9.x86_64
samba-client-3.6.23-45.el6_9.x86_64
samba-3.6.23-45.el6_9.x86_64
samba-winbind-clients-3.6.23-45.el6_9.x86_64
samba-common-3.6.23-45.el6_9.x86_64

3、查看Samba相關配置文件

rpm -qc samba

/etc/logrotate.d/samba
/etc/pam.d/samba
/etc/samba/smbusers

4、查看Samba主配置文件

cat /etc/samba/smb.conf

5、設置開機自動啟動samba服務

chkconfig smb on

6、啟動samba服務

service smb start

二、配置防火墻規則
1、檢查防火墻是否啟動,是否開機啟動

service iptables start
chkconfig iptables on

2、添加防火墻規則,允許客戶端訪問共享文件夾

iptables -I INPUT -p tcp --dport 139 -j ACCEPT
iptables -I INPUT -p tcp --dport 445 -j ACCEPT
iptables -I INPUT -p udp --dport 137 -j ACCEPT
iptables -I INPUT -p udp --dport 138 -j ACCEPT

3、保存防火墻規則

/sbin/service iptables save

4、查看防火墻配置

iptables -L

三、Samba服務器的配置文件
1、查看Samba主配置文件

cat /etc/samba/smb.conf

2、重命名配置文件

mv /etc/samba/smb.conf /etc/samba/smb.conf.bak

3、去掉註釋行並產生新的配置文件

grep -v "#" /etc/samba/smb.conf.bak >/etc/samba/smb.conf

4、測試配置文件是否正確

testparm -v

四、設置允許匿名用戶訪問的Samba服務器
1、創建文件夾

mkdir /data

2、修改權限

chmod 777 /data

3、設置配置文件

vi /etc/samba/smb.conf

[smb.conf]
①將[global]中security改為 = share
②在後邊添加以下內容

[data]
        comment = dataFile #設置共享的說明信息(描述)
        path = /data #指定共享目錄的路徑
        browseable = yes #所有samba用戶都可以看到該目錄(是否可見)
        read only = no #允許只讀(NO,可讀寫)
        public = yes #是否允許匿名用戶訪問
        create mode =0664 #與create mask參數意思相同,在主目錄中建立一個文件的默認權限
        directory mode =0775 #與directory mask參數意思相同,在主目錄中建立一個目錄時的默認權限
        writable = yes #用戶對共享目錄可寫

4、重啟Samba服務

service smb restart

5、驗證:在XP上訪問Samba服務器
①在瀏覽器中輸入\192.168.80.100
②上傳測試文件
③查看權限

ll /data/

總用量 8
-rw-rw-r-- 1 nobody nobody   23 1月  25 21:22 test.txt 664
drwxrwxr-x 2 nobody nobody 4096 1月  25 21:24 zhang 775

6、減少在Windows中打開Samba服務器的等待時間

vi /etc/hosts
[hosts]
127.0.0.1  SambaServer #寫自己的計算機名
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

五、創建需要登錄的Samba服務器
1、修改Samba配置文件來支持驗證

vi /etc/samba/smb.conf
[smb.conf]
security = user #修改

2、關於samba用戶密碼的文件
存放samba用戶密碼的文件有兩種類型
數據庫文件

/var/lib/samba/private/passdb.tdb

密碼文件

/var/lib/samba/private/smbpasswd

3、創建Linux用戶並設置密碼

useradd zhang
useradd wang
passwd zhang
passwd wang

4、將Linux用戶添加到Samba用戶並設置密碼

smbpasswd -a zhang
smbpasswd -a wang

5、查看有幾個Samba用戶

pdbedit -L

PS:
Smbpasswd:主要作用是為系統創建用戶創建samba用戶
-a 新建用戶
使用的時候創建的samba用戶必須在系統用戶中存在。否則samba找不到系統用戶則創建失敗
-d 凍結用戶,就是這個用戶不能在登錄了
-e 恢復用戶,解凍用戶,讓凍結的用戶可以在使用
-n 把用戶的密碼設置成空.
-x 刪除用戶

pdbedit:管理samba 用戶數據庫的一個工具
pdbedit -a -u username 增加一個samba用戶
pdbedit -x samba_user 刪除用戶
pdbedit -L查看創建的samba用戶


6、驗證:在WindowsXP訪問並進行上傳修改操作,在Linux上用ll 對應目錄 可以查看文件所有者。
PS:如想快速切換用戶可以在CMD中用net use * /del 刪除訪問憑證。

六、更改samba用戶密碼文件
1、修改配置文件

vi /etc/samba/smb.conf

在[global]中修改 passdb backend =為 smbpasswd,保存並重啟。
2、查看用戶數據庫文件夾中有沒有密碼文件

ll /var/lib/samba/private/

3、查看Samba用戶的狀態

pdbedit -L

回車後為空,需要創建賬戶
4、將Linux用戶添加到Samba用戶並設置密碼

smbpasswd -a zhang
smbpasswd -a wang

5、再次查看

pdbedit -L

zhang:500:
wang:501:

6、查看Samba賬戶密碼文件

cat /var/lib/samba/private/smbpasswd

zhang:500:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:3DBDE697D71690A769204BEB12283678:[U          ]:LCT-5A69E386:
wang:501:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:5A420E7750B39BE09FA29D314FA4B51C:[U          ]:LCT-5A69E38C:

7、驗證:再次在WindowsXP訪問

七、設置Samba服務器網絡安全
1、網絡訪問控制
①設置Samba服務允許通過哪個地址或哪個網卡來訪問(根據實際情況設置)

vi /etc/samba/smb.conf

[smb.conf]


;       interfaces = lo eth1 #尋找這個,根據你的實際情況設置,可使用ifconfig查看
        interfaces = 192.168.80.100/24  #添加    
        bind interfaces only = YES #強制綁定

重啟服務,在Windows客戶端中檢查可否訪問

service smb restart

②設置那些網段能夠訪問Samba服務器

vi /etc/samba/smb.conf
;       interfaces = lo eth0
        interfaces = 192.168.80.222/24
        bind interfaces only = YES

        hosts allow = 127. 192.168.80.0/24 EXCEPT 192.168.80.130 ,192.168.80.131 #允許那個網段訪問,EXCEPT排除那個訪問
        hosts deny = 192.168.80.140

PS:
a.等價某一個網段寫法:
例如:
192.168.80.X等價於 192.168.80.0/24等價於 192.168.80.0/255.255.255.0
b.在Samba服務器中允許優先
③設置文件夾允許那些網段訪問
客戶端必須先通過全局網絡設置允許訪問Samba服務才可以,以下設置data文件夾只允許192.168.80.10和192.168.80.20訪問。
vi /etc/samba/smb.conf
[data]
comment = dataFile
path = /data
browseable = yes
read only = no
public = yes
create mode =0444
directory mode =0775
writable = yes
hosts allow = 192.168.80.10 192.168.80.20
④設置哪些用戶能夠訪問共享文件夾
invalid users 是合法用戶,valid users 是不合法用戶。這兩個參數分別設置允許訪問文件夾和不允許訪問文件夾的用戶列表。一個用戶同時出現在兩個列表中的時候,不允許註冊優先。列表中的用戶名可以用逗號隔開。@表示組,代表組中全部成員。
例如:

valid users = @managers
invalid users = wang,zhang

a.創建組,並將用戶添加到組,授權某個組能夠訪問共享文件夾

groupadd managers #創建組
usermod -G managers zhang #將zhang加入組
usermod -G managers wang #將wang加入組

b.更改samba配置文件

vi /etc/samba/smb.conf

修改以下配置:

[data]
        comment = dataFile
        path = /data
        browseable = yes
        valid users = @managers #允許那個組訪問
        invalid users = wang #不合法用戶(拒絕優先)
;       valid users = zhang,wang #合法用戶

        read only = no
;       public = yes
        create mode =0444
        directory mode =0775
        writable = yes

;       hosts allow = 192.168.80.10 192.168.80.20

④設置用戶訪問共享文件夾權限
a.設置文件夾默認的訪問權限

read only = no
writeable = yes

b.指定用戶對共享文件夾的訪問

write list = zhang
read list = wang

這兩個參數分別指定只允許對一個服務進行只讀訪問或同時有"寫"權限的主機列表,這裏,如果一個主機同時在兩個列表裏,則"寫"優先。
c.在Windows中刪除訪問共享文件夾憑證的命令

net use * /del

d.修改配置文件來實現功能

vi /etc/samba/smb.conf
[data]
        comment = dataFile
        path = /data
        browseable = yes
        valid users = @managers
;       invalid users = wang
  read only = yes #默認情況下只讀
        write list = zhang #特定用戶寫入
        read list = wang #特定用戶只讀
;       public = yes
        create mode =0444
        directory mode =0775
        writable = yes

⑤設置共享文件夾是否可見
browsable #可見
browseable #隱藏
這兩個功能相同的參數控制該段是否在瀏覽列表中列出。瀏覽列表列出的是可獲得的共享列表。一般[home]段禁止瀏覽,以提高安全性。
必須輸入共享名才能訪問隱藏的共享。
可以修改配置文件

[data]
        comment = dataFile
        path = /data
        browseable = yes
        valid users = @managers
;       invalid users = wang
        read only = yes
        write list = zhang
        read list = wang
;       public = yes
        create mode =0444
        directory mode =0775
        writable = yes
  browsable = no
;       hosts allow = 192.168.80.10 192.168.80.20

驗證後發現輸入共享名才能訪問。

八、將Windows用戶映射到samba用戶
1、編輯名稱映射文件

vi /etc/samba/smbusers

[smbusers]

# Unix_name = SMB_name1 SMB_name2 ...
root = administrator admin
nobody = guest pcguest smbguest
 #當Windows用戶輸入等號後邊的用戶名等價於前邊的Linux用戶

2、編輯配置文件,添加一行,指定映射文件位置和名稱

vi /etc/samba/smb.conf

[smb.conf]

      security = user
        passdb backend = smbpasswd
#添加一行,用戶映射文件
username map = /etc/samba/smbusers

3、將root用戶添加到samba用戶

smbpasswd -a root

4、驗證:在WindowsXP上使用administrator訪問,可以看到使用root用戶連接到了samba。

九、在Linux上訪問Samba服務器
1、使用smbclient(192.168.80.110)在zhang用戶來查看Samba服務器有那些共享

smbclient -L 192.168.80.100 -U zhang

2、使用smbclient(192.168.80.110)命令訪問共享文件夾

smbclient //192.168.80.100/data -U zhang

3、輸入?可查看smbclient所有可用命令

Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-45.el6_9]
smb: \> ?
?              allinfo        altname        archive        blocksize      
cancel         case_sensitive cd             chmod          chown          
close          del            dir            du             echo           
exit           get            getfacl        geteas         hardlink       
help           history        iosize         lcd            link           
lock           lowercase      ls             l              mask           
md             mget           mkdir          more           mput           
newer          open           posix          posix_encrypt  posix_open     
posix_mkdir    posix_rmdir    posix_unlink   print          prompt         
put            pwd            q              queue          quit           
readlink       rd             recurse        reget          rename         
reput          rm             rmdir          showacls       setea          
setmode        stat           symlink        tar            tarmode        
timeout        translate      unlock         volume         vuid           
wdel           logon          listconnect    showconnect    ..             
!              
smb: \> 
smb: \> get wang.txt #下載文件
smb: \> q #退出

4、查看下載的文件

ls
anaconda-ks.cfg  install.log  install.log.syslog  wang.txt

5、這麽下載是很不方便的,所以我們可以將samba服務器共享文件夾掛在到本地

mkdir /mnt/data
mount -t cifs -o username=zhang //192.168.80.100/data /mnt/data/
Password:
#輸入密碼

6、使用smbclient(192.168.80.110)在Linux訪問WindowsXP共享文件夾
①在Windows設置共享策略和共享文件夾並關閉防火墻(如沒有賬號可在CMD中用net user 用戶名 密碼 /add來創建用戶)

mkdir /mnt/winxp
mount -t cifs -o username=zhangyujia //192.168.80.120/winxp /mnt/winxp
Password: 
#輸入密碼

②創建文件測試

touch /mnt/winxp/test.txt

歡迎關註
新浪微博:https://weibo.com/yougazhang0506
微信公眾平臺:張雨嘉
技術分享圖片
我的網站:http://www.zhangyujia.cn
51CTO博客:http://blog.51cto.com/11099293
CSDN博客:http://blog.csdn.net/u013260195

13-安裝與配置Samba服務器