(一)samba的整體介紹:
(1)samba介紹:
實作了linux和windows之間的檔案共享,基于netbios協定開發
(2)samba的主要應用:
①檔案共享
②列印機伺服器
③samba登入時身份驗證
④可以進行windows的主機名解析
(3)檔案伺服器的比較:
(二)samba的安裝:
(1)安裝包:
samba:主服務包
samba-client:用戶端
samba-common:通用工具
samba4-libs:庫
samba-winbind:windos域映射
samba-winbind-clients:域映射用戶端
systemctl restart smb
systemctl restart nmb
(2)samba的守護程序:
①smbd:提供伺服器中檔案,列印資源的共享通路139,445
②nmbd:提供基于netbios主機名稱的解析137,138
(3)samba配置介紹:
①vim /etc/samba/smb.conf //分為2大塊,global settings //全局配置和;share defintions //共享配置,共享配置下面有,使用者共享目錄設定,列印機共享設定,自定義名稱的共享目錄設定
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
84 workgroup = mygroup //設定工作組
85 server string = samba server version %v //設定顯示的版本
101 log file = /var/log/samba/log.%m //日志的儲存位置
140 ; security = domain
security:安全級别,可用值如下:
share:不需要密碼就可以通路
user:使用系統使用者,samba密碼登入
server:由其他伺服器提供認證
domain:由域控制器提供認證
141 ; passdb backend = tdbsam
142 ; realm = my_realm
275 [homes] //共享的名字
276 comment = home directories //描述資訊
284 path = /var/spool/samba //共享路徑
286 guest ok = no //允許所有人通路,等同于public
287 writable = no //所有人可寫
read only = //所有人隻讀
279 ; valid users = %s //指定可以通路的使用者
302 ; browseable = no //是否浏覽可見
313 ; write list //擁有寫權限的使用者清單
②vim /etc/samba/lmhosts //對應netbois名與主機的ip的檔案,一般samba會自動搜尋{隻對本機生效}
③vim /etc/samba/smbpasswd //samba密碼儲存檔案,預設不存在
④vim /etc/samba/smbusers //使用者别名,用于适用于不同作業系統中使用者别名習慣
testparm //檢測配置是否正常
⑤常見的變量:
%v:samba的版本号
%s:任意使用者可以登入
%m:client端的netbios主機名
%l:伺服器端的netbios主機名
%u:目前登入的使用者名
%g:目前登入的使用者組名
(三)samba的使用:
(1)share權限通路:
①配置檔案修改
vim /etc/samba/smb.conf
84 workgroup = mygroup
85 server string = test //定義備注
116 security = user //定義通路的方式
117 passdb backend = tdbsam
//這裡寫通路的目錄
290 [test]
291 comment = test //通路的備注
292 path = /test //共享的路徑
293 broswseable = yes //這個檔案能不能讀?
294 guest ok = yes //允許所有人通路,等同于public
295 writable = yes //是否為可寫?
writable = yes //如果不寫 write list隻有writable允許所有使用者都上傳
write list = tongxue //僅允許這個使用者上傳
valid users = tongxue //允許那個使用者通路
②chown tongxue /test //權限既要服務權限允許又要系統權限允許,是以要讓目錄也要有系統權限
useradd tongxue
smbpasswd -a tongxue //添加一個smb使用者和系統使用者,要給使用者添加samba密碼,該使用者必須已經是系統使用者,但該使用者的密碼可以和系統使用者的密碼不一緻
③測試:
1、然後在windows 輸入:\\172.18.152.50 進行通路
2、linux作為用戶端通路:
smbclient -l //172.18.152.50 //檢視共享清單
smbclient -l //172.18.152.50/test //進入共享目錄
3、linux通路windows的共享:
smbclient //172.18.152.86/1 -u sara //這裡輸入的密碼是windows的密碼,這裡的1是是在smb.cong裡定義的[]這個檔案夾的目錄,不是path指的目錄
(2)smb允許某一個使用者通路,但是能通路公衆的目錄
①vim /etc/samba/smb.conf
[homes]
comment = home directories
browseable = no
writable = yes
[pub]
comment = pub
path = /pub
browseable = yes
write list = tongxue
valid users = tongxue
chmod tongxue /pub //更改檔案夾的權限,不然也通路不了
如果要想通路和上傳,linxu系統權限必須允許,samba服務權限也必須允許
(四)samba的操作:
(1)添加samba使用者:
使用者必須已經是系統使用者,才能添加為samba使用者
① smbpasswd -a 系統使用者名
(2)檢視smba使用者:
① pdbedit -l
(3)删除smba使用者:
①smbpasswd -x tongxue
(4)備注:
①系統權限要對共享目錄生效
②samba伺服器權限也會對共享目錄生效
③在實際的工作中,可能共享的目錄衆多,使用者衆多,權限交叉,建議使用系統的權限控制共享目錄權限{acl權限},而不是使用samba權限
(5)smb的挂載:{把smb共享的目錄挂載到本地}
mount -t cifs -o username=使用者 原路徑 目标路徑
①示範1:
mount -t cifs -o username=test1 //10.1.1.10/test1 /mnt
password for test1@//10.1.1.10/test1: *********
(6)samba别名{讓一個使用者可以讓兩個别名來登入}:
①linux使用者如root,nobody在windows中可能對應的使用者是amdinstart,guset使用者,samba是跨平台的,是以用别名他們可以通用
②smb預設開啟别名,需要在/etc/samba/smb.conf中加入 username map=/etc/samba/smbusers,然後重新開機
vim smbusers
root = administraror admin //原名-别名,{多個别名空格隔開}
zs = zhangsan