天天看點

smb

(一)samba的整體介紹:

(1)samba介紹:

實作了linux和windows之間的檔案共享,基于netbios協定開發

(2)samba的主要應用:

①檔案共享

②列印機伺服器

③samba登入時身份驗證

④可以進行windows的主機名解析

(3)檔案伺服器的比較:

smb

(二)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: *********

smb

(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