歡迎您光臨本站 註冊首頁

Linux實踐工程師學習筆記:samba

←手機掃碼閱讀     火星人 @ 2014-03-29 , reply:0

samba軟體包使用

Fedora core/Redhat Linux提供的軟體包

samba samba伺服器軟體包

samba-client samba客戶端工具

samba-common 通用工具和庫



安裝rpmdb-fedora/rpmdb-redhat軟體包(一般在第三張光碟)

但在FC5已找不到這個軟體包

安裝了rpmdb可以解決依賴性問題

#rpm ?ivh rpmdb-fedora*.rpm

#rpm ?ivh --aid samba*.rpm 裝了rpmdb才有效



1.#rpm ?ivh cups-libs*.rpm 第一張光碟

2.#rpm ?ivh samba*.rpm 第一張光碟(client,common)

3.#rpm ?ivh samba*.rpm 第二張光碟

#rpm ?qa |grep samba 查看所有軟體包列表

#rpm ?ql samba | more 查訊某個軟體列表



samba客戶端工具

smbtree

作用:顯示區域網中的所有共享主機和目錄列表(默認使用當前用戶登錄)

用法:smbtree [-b] [-D] [-U username%password]

-D 表示只顯示工作組名,不顯示主機

-b 使用廣播查詢列表,不用WINS伺服器

-D和-U 不能共用,因為不可能用同一個用戶登錄域上所有主機



nmblookup

作用:顯示一台主機的nethios主機名

nmblookup my-server 查詢伺服器的IP

nmblookup \* 查詢所有活動的主機的IP



smbclient

作用:顯示/登錄區域網中的共享文件夾

用法:smbclient ?L host

smbclient //host/share

smbclient ?L 192.168.0.22 ?U redhat%redhat 以redhat用戶登錄並顯示共享目錄

smbclient //192.168.0.22/linux ?U redhat%redhat

登入目錄,查看目錄內容,通過put,get上下載文件



smbtar(先要修改/usr/bin/smbtar命令,把最後一行的參數-N匿名登陸刪掉)

遠程備份網上鄰居中的文件

smbtar ?s win2000 ?u redhat ?p redhat ?x chinalab ?t itlab.tar



將共享目錄掛載到本地目錄,然後再訪問

mount.cifs //192.168.0.22/linux /mnt ?o username=redhat%redhat



tar tvf lab.tar 顯示備份包里的文件



samba伺服器配置

1.修改配置文件/etc/samba/smb.conf

workgroup = WORKGROUP

security = share

[docs]

path = /usr/share/doc

comment = share documents #說明共享目錄

public = yes

2.重啟smb伺服器

#service smb restart

#chkconfig smb on 讓smb每次自動啟動

3.測試

#smbclient ?L localhost



chkconfig smb ?list 查看服務的啟動狀態



SMB 提供名稱解釋服務

NMB 提供數據傳輸服務

兩個總是一起工作的



samba文件伺服器

(WINS)在網上鄰居看不到主機列表,可以在地址欄直接輸入IP如\\192.168.0.1查看共享目錄

網上鄰居看到的主機列表,主要有三個來源,一是配置文件lmhosts,主機名與IP的對應關係

二是通過瀏覽伺服器 三是通過廣播方式獲取主機列表


linux訪問網上鄰居

1.掛載方法
#mount ?t smbfs //192.168.0.1/linux /mnt
或 #mount.cifs //192.168.0.1/linux /mnt
2.#smbclient //192.168.0.1/linux ?U redhat%123

訪問控制
public = yes 允許所有人訪問
= no 不允許匿名訪問
1.共享目錄設置有效用戶
[redhat]
path = /var/redhat
comment = redhat』s files
valid users = <@groupname>
2.創建samba用戶
#useradd username 新建一個系統用戶
#smbpasswd ?a username 將用戶加入到samba中
3.用戶賬號映射
[global]
username map = /etc/samba/smbusers
4.修改上面指定的smbusers文件,添加虛擬用戶名
redhat = tom jack

也可以直接用以下命令:

#smbuseradd unixname:mapname

5.需重啟smb服務讀取映射文件

HOME目錄(用於用戶訪問用戶自己的主目錄)
[global]

[homes]


comment = Home Directories
validusers = %S %S目錄屬主
browseable = no 默認不允許瀏覽home目錄
writable = yes 允許寫
valid users = 有效用戶列表
write list = 可寫用戶列表
create mask = 0660 定義創建文件的默認許可權
directory mask = 0770 定義創建目錄的默認許可權

chown redhat /var/redhat 改變目錄屬主
ls ?lh 顯示目錄里各個文件的詳細信息
ls ?ld /usr/redhat 只顯示目錄本身的詳細信息

#testparm 測試配置默認文件smb.conf的正確性
#testparm /etc/samba/smb.conf my-server 192.168.0.1
測試客戶機能訪問伺服器的哪些目錄

[redhat]
path = /var/redhat
comment = redhat』s files
public = no
valid users = <@groupname>
write list = <@groupname>
create mask = 0660
directory mask = 0770
注意:客戶端所有請求訪問身份在伺服器端都會映射成登錄賬號的身份




samba配置文件
/etc/samba/smb.conf
[global]
workgroup = WORKGROUP 組或域名
server string = samba server 伺服器描述
netbios name = redhat 指定samba伺服器名
security = share/user/server share不需驗證用戶,user要驗證
;password server =
需與security=server配合使用
log file = /var/log/samba/log.%m %m指客戶機的netbios名,日誌按客戶機名分類
encrypt passwords = yes
加密密碼,windows客戶機一般使用加密密碼,所以為yes.如果不加密直接用明文密碼,可改為no,但windows客戶機需修改註冊表指定不加密
smb passwd file = /etc/samba/smbpasswd
上面兩句要一起使用!
include = /etc/samba/smb.conf.%m 包含外部配置文件,如根據不同的客戶機名稱,定義不同的共享資源
;interfaces = 192.168.0.0/24 samba應用在哪個介面上,默認是在所有網卡,所有介面上
;name resolve order = wins lmhosts bcaast 名稱解釋順序
;wins support = yes 自己作為WINS伺服器,並提供給客戶機查詢
;wins server = w.x..y.z 與WINS配合使用,作為WINS伺服器,請求會發送到w.x.y.z

/etc/samba/lmhosts文件(保存客戶機IP與名稱的對應關係)
左邊IP 右邊名稱
127.0.0.1 localhost

wins support,wins server 不能同時使用
wins server 說明本身作為客戶機,而指定一台wins伺服器的IP




samba的安全級別
[global]
security =
1.share
windows用戶不需要認證就能訪問共享列表
2.user
windows客戶機需輸入用戶才能訪問共享名列表,伺服器上需建立用戶賬號
3.server
客戶端需輸入合法用戶幫能訪問,但認證過程在另一伺服器進行,用戶賬號保存在認證的那台伺服器上。
share,user只對windows客戶機有效,linux客戶機在user級別不用密碼也能訪問共享名列表。security只保護主機的共享名列表,具體到目錄的訪問則由目錄的規則決定。

#hostname 查看主機名
#nmblookup my-server 查詢主機IP(與samba netbios name有關)
#man smb.conf 查看相關幫助
vi搜索技巧:
/%m 先輸入」/」再輸入要查找的字元串
/redhat 如查找」redhat」字元串
shift+G 跳到文件尾

默認伺服器名與機器DNS的第一部分相同
如Fedora.cyrich.com則這台samba伺服器的名稱就是Fedora

訪問控制
一、全局控制
[global]
hosts deny = ALL
hosts allow = 192.168.0.
二、局部訪問控制
[docs]
hosts deny = 192.168.0.
hosts allow = 192.168.0.1
[redhat]
hosts allow = 192.168.0.
host deny = 192.168.0.1 (失效)
允許優先!!
hosts 後面的格式語法,可以通過man 5 host.access查看幫助
1.點開頭 .edu.cn
2.點結尾 192.168.0.
3.192.168.0.0/255.255.255.0
192.168.0.0/24
4.ALL LOCAL UNKNOWN DNS不能解析的
5./開頭 指定一個文件
6.hosts allow = 192.168.0.0 EXCEPT 192.168.0.1
允許192.168.0網段主機訪問,但192.168.0.1除外

技巧:
#tail /etc/samba/smb.conf
顯示文件最後的十行




應用案例
要求:
1.所有員工都能夠在公司內流動辦公,但不管在哪台電腦上工作,都要把自己的文件數據保存在samba文件伺服器上。
2.市場部,技術部都各有自己的目錄,同一個部門的人共同擁有一個共享目錄,其他部門的人都只能訪問在伺服器上自己個人的home目錄
3.所有用戶都不允許使用伺服器上的shell
分析:
1.需要samba作為文件伺服器,為所有用戶創建賬號和目錄,用戶默認都 在伺服器上有一個home目錄,只有認證通過才能看到。
2.需為市場部和技術部創建不同的組sales和tech,並且分配目錄,把所有市場部員工加入sales組,技術部員工加入tech組,通過samba共享sales和tect
3.建立用戶賬號時,不分配shell
案例實施:
1.為所有用戶創建賬號和目錄,不分配shell,假設市場部有tom,jack,技術部有red,blue,總經理ceo,財務finance
2.建組sales和tech,把所有市場部員工加入sales組,技術部員工加入tect組
3.創建兩個目錄/home/sales和/home/tech,並修改兩個目錄的許可權,分別屬於sales組和tect組
4.通過samba共享/home/sales和/home/tect
5.測試
如有錯誤,檢查
/etc/samba/smbpasswd 確定賬戶
/etc/samba/smbusers 查看映射文件
tail /var/log/samba/redhat.log 查看/var/log/samba/目錄下的日誌

具體操作:
#vi /etc/samba/smb.conf 安全級別為user
#groupadd sales
#groupadd tech
#useradd ?g sales ?s /bin/false tom
#useradd ?g sales ?s /bin/false jack
#smbpasswd ?a tom
#smbpasswd ?a jack
#for user in red blue
>do
> useradd ?g tech ?s /bin/false $user
> smbpasswd ?a $user
> done

#useradd ceo
#useradd finance
#smbpasswd ?a ceo
#smbpasswd ?a finance
#mkdir /home/sales /home/tech
#chgrp sales /home/sales
#chgrp tech /home/tech
#chmod 770 /home/sales
#chmod 770 /home/tech
#chmod g+s /home/sales 防止許可權發生混亂
#chmod g+s /home/tech
#vi /etc/samba/smb.conf
[global]
path = /home/sales
comment = sales
public = no
valid users = @sales
write list = @sales
create mask = 0770
directory mask = 0770
[tech]
path = /home/tech
comment = tech
public = no
valid users = @tech
write list = @tech
create mask = 0770
directory mask = 0770

linux測試
1.smbclient ?L 192.168.0.22 ?U tom%tom
2.mount.cifs //192.168.0.22/ceo ?o username ceo%ceo
windows客戶機映射網路驅動器,再設定「我的文檔」位置,就可隨時隨地將文件保存在samba伺服器上。

[火星人 ] Linux實踐工程師學習筆記:samba已經有489次圍觀

http://coctec.com/docs/linux/show-post-203479.html