samba 可以實現Windows對Windows 、 Windows對Linux、Linux對Linux的文件傳輸
在centos7安裝samba
yum install samba
啟動samba
systemctl start smb
systemctl start nmb
samba守護進程
smbd 提供服務器中的文件和打印機共享 端口139 445
nmbd 提供基於NetBIOS主機名稱的解析 端口 137 138
samba主要文件
/etc/samba/smb.conf 主配置文件
/etc/samba/smb.conf.example 配置案例
/etc/samba/lmhosts 對應NetBIOS名與主機名IP的文件
smb.conf配置文件分兩個部分 一部分是全局設置 (Global Settings),還有一部分是共享設置( Share Definitions)
Global Settings [global] 全局設置 Share Definitions [homes] 用戶目錄共享設置 [printers] 打印機共享設置 [myshare]自定義共享設置
Global Settings參數
workgroup = MYGROUP #工作組名稱 server string = Samba Server Version %v #服務器描述信息,%v是samba版本號
log file = /var/log/samba/log.%m #日志文件,%m代表的是客戶端的NetBIOS名
max log size = 50 #日志文件大小,單位KB,0表示不限制
security = user
user #使用系統用戶,samba密碼登入
share #不需要密碼就可以登入【新版已廢棄】
server #由其他服務器提供認證【新版已廢棄】
Share Definitions參數
comment #描述信息
path #共享路徑
guest ok #允許所有人訪問,等同於public
read only #所有人只讀
writable #所有人可寫
write list # 擁有寫權限的用戶
browseable #是否瀏覽可見
valid users#指定可以訪問的用戶
一些變量
%v #samba版本號 %S #任意用戶可以登入 %m #客戶端的NetBIOS主機名 %L #服務器端的NetBIOS主機名 %u #當前登入的用戶名 %g #當前登入的用戶組
訪問samba服務器(注意防火牆和SELinux)
創建一個samba用戶,其用戶名是系統用戶,但是可以設置新的密碼只用於登入samba服務器
smbpasswd -a 系統用戶名
在smb.conf建立新的訪問目錄
[myshare] #顯示的文件名 comment=test file #信息描述 path=/samba #訪問目錄 browseable=YES #用戶瀏覽可見 writable=YES #寫權限
在Linux系統創建目錄和賦予用戶權限
mkdir /samba #在系統創建對應目錄
setfacl -R -m u:test1:rwx /samba/ #給用戶test1賦予rwx權限
重啟服務
systemctl restart smb
systemctl restart nmb
用Windows訪問samba服務
打開文件資源管理器或按windows鍵, 輸入\\ip,回車即可
輸入賬號和設置的samba密碼
可以看到之前設置的共享目錄,這樣就可以訪問/samba下面的文件了,同時也可以建立新的文件,因為該用戶擁有讀寫執行的權限
注意權限設置,Linux是否能夠真正操作(讀寫執行)文件,需要該服務對用戶賦予操作文件的權限,同時也需要系統賦予用戶對文件的操作權限