歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

Linux samba文件共享

SAMBA軟件用於在不同平台之間(Linux/Unix/Windows)共享文件。
1
SMB:Service Message Block 程序全名

CIFS: Common Internet FileSystem 程序全名

2

samba啟動的的三個進程,都是為了與Windows主機實現文件共享向工作的

smbd:共享文件

nmbd:向Windows主機廣播自己的IP

winbind:默認不啟動,Linux主機在Windiws域中時使用

3

Port:137/UDP(netbios),138/UDP(netbios),139/TCP(netbios),445/TCP(smb over TCP/IP)

4

軟件包:

samba.i386服務器端軟件包

samba-swat.i386 網頁功能的samba

5

配置文件:

/etc/init.d/smb

/etc/samba/smb.conf

6

Ps:在新版本中,samba接受selinux的控制,所以在配置時,我們最好先關閉selinux

7

配置文件:

[global]

; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24監聽的IP

; hosts allow = 127. 192.168.12. 192.168.13. 允許的IP

; log file = /var/log/samba/%m.log 記錄日志 宏%m表示當前主機的主機名

; max log size = 50 日志文件大小

security = user samba安全級別,主要根據用戶驗證方式

share:公共

user:根據用戶名密碼

domain:根據域

server:集中式認證

ads:

passdb backend = tdbsam 賬號的數據庫文件

[homes]

comment = Home Directories 說明信息

browseable = no 不允許隨意浏覽

writable = yes 允許上傳文件

; valid users = %S 定義哪些用戶可以訪問此共享

[printers]

comment = All Printers 顯示所有打印機

path = /var/spool/samba 能夠訪問到的打印機

browseable = no 不允許匿名訪問打印機

guest ok = no 來賓賬號是否允許訪問打印機

writable = no

printable = yes

 

; [netlogon]

; comment = Network Logon Service

; path = /var/lib/samba/netlogon

; guest ok = yes

; writable = no

; share modes = no

 

 

; [Profiles]

; path = /var/lib/samba/profiles

; browseable = no

; guest ok = yes

 

8

我們使用用戶登錄時,需要創建專供samba使用的用戶名密碼,直接將本地存在的用戶添加為samba用戶即可,使用smbpasswd命令

smbpasswd

-a 添加samba用戶

-x 刪除用戶

-d 臨時禁用某個用戶

-e 啟用禁用的賬號

9

testparm檢查配置文件,敲回車顯示在生效的命令

 

10

 

實例:

#yum install samba

#vim /etc/samba/smb.conf

在最後面添加共享目錄:

[share] 這裡起得名字是表示共享的目錄

comment = my share folder

path = /sharing

browseable = Yes

guest ok = Yes

writable =Yes

(writable = Yes 和 read only =No 的作用是一樣的)

#testparm 檢查配置文件

#useradd zoe 創建用戶

#smbpasswd -a zoe 將用戶添加到samba中並添加密碼
 

#chcon -R -t samba_share_t /sharing/ 遞歸修改其標簽在,這個在selinux中會講到
 

 

#setfacl –m u:zoe:rwx /sharing 修改用戶對於/sharing的權限

結束

現在你就可以在windows中使用網上鄰居工作組搜索該主機,登陸進去訪問sharing目錄了

11

如何使用Linux作為客戶端訪問samba共享文件:

在這裡我們使用的命令是smbclient:

Smbclient

-L hostname/IP 查看指定主機上的共享資源

-U username[%password] 使用指定用戶名登陸

smbclient //HOST/SHARE -U username%passwd

例子:smbclient //192.168.0.3/share -U zoe%redhat

12

訪問控制:

在前面的[share]中添加即可對/sharing目錄進行限制

hosts allow = 192.168.12. 允許192.168.12.0網段的主機訪問

testpqrm /etc/samba/smb.conf station34.example.com 192.168.0.34 測試指定主機是否能夠訪問指定的共享文件

寫訪問控制:

write list = @peguin 表示只有組中的成員可寫

write list = @zoe 表示只有zoe用戶可寫

13

讓一個組都有寫權限:

groupadd peguin

useradd -G peguin fedora

usradd -G peguin gentoo

smbpasswd -a fedora

smbpasswd -a gentoo

setfacl -m g:peguin:rwx /sharing/

此時,peguin族中的成員都可以訪問共享文件夾

14

我們在前面就關閉了selinux,那麼我們也可以打開selinux,修改它的規則以支持我們samba的工作。

修改selinux 以支持samba的部分功能:

selinux默認為不支持samba使用家目錄

getsebool -a | grep samba 查看selinux中包含samba的選項

samba_domain_controller --> off

samba_enable_home_dirs --> off 該項表示不允許使用家目錄

samba_export_all_ro --> off

samba_export_all_rw --> off

samba_share_nfs --> off

use_samba_home_dirs --> off

virt_use_samba --> off

 

setsebool -P samba_enable_home_dirs=1 -P表示修改原文件,使它永久生效

這樣子selinux就不影響我們的samba了

15

我們也可以直接將別的linux主機共享的samba目錄掛載到本機使用,這樣子是不是就十分方便了~

掛載其他主機共享的samba目錄:

mount -t cifs //192.168.0.73/share /mnt -o username=redhat

表示掛載0.73主機上共享的share目錄到本地的/mnt目錄,使用的用戶名是redhat

Copyright © Linux教程網 All Rights Reserved