一.理論知識:
1.samba代替nfs的原因。
2.<b> </b>Windows主機之間使用SMB/CIFS協定進行檔案和列印的共享。(微軟的服務)
端口:445 139
3. samba的核心是兩個守護程序smbd和nmbd程式。
Smbd和nmbd使用的全部配置資訊全都儲存在smb.conf檔案中。
Smb.conf向smbd和nmbd兩個守護程序說明輸出什麼以便共享,共享輸出給誰及如何進行輸出。
4.Smbd程序的作用是提供檔案/列印共享。
nmbd程序是提供網絡中域或者工作組内的主機進行主機名稱的解析<b> </b>。
二.安裝(四個包1.samba 2.samba-common 3.samba-client 4.system-config-samba )
1.rpm安裝
rpm –ivh /media/cdrom/Redhat/RPM/samba*
2.源碼包的安裝(samba-3.0.22.tar.gz)
tar xzvf samba-3.0.22.tar.gz
cd samba-3.0.22/source
./configure --prefix=/usr/local/samba --sysconfdir=/etc/samba/
make
make install
三./etc/samba/smb.conf主配檔案的主要參數:
在smb.conf檔案中,注釋行以“#”開頭,同時每項中英文字母不區分大小寫,在一行最後字元尾加 “\”,可将一行分成多行。用“;”開頭的行,是可改變的配置,将“;”去掉時,該配置将取作用。
提問:grep的含義;常用參數
1. grep -v "^#" /etc/samba/smb.conf |grep -v "^;"(排除以#和;開頭的行)
[global]
workgroup = MYGROUP
;hosts allow = 192.168.1 192.168.2
server string = Samba Server
printcap name = /etc/printcap
load printers = yes
cups options = raw
;hosts allow = 192.168.1. 10.100.100. (注意格式 )
log file = /var/log/samba/%m.log
max log size = 50
security = user
[homes]
comment = Home Directories
browseable = no
writable = yes
[printers]
comment = All Printers
path = /var/spool/samba
guest ok = no
writable = no
printable = yes
create mask = 0755 建立檔案時 權限是755
only guest = yes 僅以匿名使用者登入
[global](全局參數的設定,它對samba的功能具有很大的影響,主要用來設定整個系統規則。
workgroup= 這是你在windows中的域。
server string= 這是在windows中看到你的samba的解釋。
netbios name =192.168.1.125(我linux主機IP),如果把該句注消,預設的是你LINUX機器名,不過,最好還是自己填上
dos charset=GB2312
unix charset=GB2312 加上這二句就可以正确顯示中文了。
hosts allow 允許登入的linux-samba的主機名單,用IP位址給出,多個IP位址用空格分開,不在名單中的主機将不能得到samba提供的服務,這也是網絡安全的一個方面。
printcap name 指定printcap檔案位址,通常為/etc/printcap,包含了linux列印機的配置資訊。
load printers 允許使用共享列印機時,預設值為yes。
log file = /usr/local/samba/var/log.%m
max log size = 0
上面這兩行則是Samba日志的相關定義。其記錄檔案的位置是放在/var/log/samba/%m.log,安裝目錄不一樣,日志可不一樣,後面的一條是定義日志記錄檔案的大小,機關是KB,如果是0的話就不限大小。
guest acount 來賓帳戶,表示用哪一個Linux使用者作為所要的客戶連接配接,定義Samba預設的使用者賬号,這個賬号必須在/etc/passwd中。
security 指定安全模式。大多數使用者使用user級的安全模式,samba用本地linux密碼檔案驗證。
security = security_level 定義Samba的安全級别,按從低到高分為四級:share,user,server,domain。它們對應的驗證方式如下:
1. share:沒有安全性的級别,任何使用者都可以不要使用者名和密碼通路伺服器上的資源。
2. user:samba的預設配置,要求使用者在通路共享資源之前資源必須先提供使用者名和密 碼進行驗證。
3. server:和user安全級别類似,但使用者名和密碼是遞交到另外一個伺服器去驗證,比如遞交給一台NT伺服器。如果遞交失敗,就退到user安全級。
4. domain:這個安全級别要求網絡上存在一台Windows的主域控制器,samba把使用者名和密碼遞交給它去驗證。
注意:
/etc/samba/lmhosts 檔案提供ip和netbios名稱間的解析
後面三種安全級都要求使用者在本linux機器上也要系統帳戶。否則是不能通路的
smb passwd file=/etc/samba/smbpasswd (設定smb密碼檔案的位置)
username map =/etc/smbusers
encrypt passwords =no 采用的時明文密碼驗證,如果是加密的,就改為yes
四.使用者的建立
1.使用者必須是系統使用者。用useradd添加
2.密碼用smbpasswd –a 後面跟使用者名,然後會提示你輸入密碼
d 禁用某個使用者
e 啟用
X 删除
五.使用swat管理Samba伺服器
1.安裝swap rpm -ivh samba-swat-3.0.10-1.4E.i386.rpm
2. chkconfig swat on
3. service xinetd restart
六. testparm指令是配置檔案測試工具,可以對smb.conf配置檔案的文法進行檢測,并顯示目前配置的清單
七.Smbstatus 顯示伺服器的連接配接資訊
八.Smbclient –L 192.168.1.1 顯示192.168.1.1 這個伺服器上的共享目錄
九.目錄挂載
.Smbmount用于挂再linux共享目錄。 smbmount //192.168.1.2/public /mnt
mount -t smbfs -o username=st02 //192.168.1.2/public /mnt
十一 大學總結
1.Windows主機之間使用SMB/CIFS協定進行檔案和列印的共享
2.Samba伺服器在Linux /UNIX系統中實作了SMB/CIFS協定
3.Samba伺服器需要運作smbd和nmbd兩個服務程式
4.配置檔案smb.conf是Samba伺服器配置的核心
5.使用smbclient和smbmount用戶端指令可以連接配接使用Samba伺服器中的共享目錄
實驗
常見共享目錄配置項的含義
comment:對共享目錄的注釋、說明資訊
path:共享目錄在伺服器中對應的實際路徑
browseable:該共享目錄在“網路上的芳鄰”中是否可見
guest ok:是否允許所有人通路,等效于“public”
writable:是否可寫,與read only的作用相反
read only = yes
writable
<b>實驗</b><b>:</b>
一: 建立資源,使登陸到該伺服器的使用者均有權使用該空間(包括讀,寫)
.編輯smb.conf檔案
vi smb.conf
[resource]
comment = local resource
path = /var/samba/resource
read only = no
public = yes //允許guest使用者通路
. 建立共享檔案夾
mkdir -p /var/samba/resource
. 由于任何人都能使用,是以得給該檔案夾設定通路權限.
chmod 707 /var/samba/resource
. 如果想在該檔案夾中放置預共享檔案,而又不想花時間從别的檔案夾中cp過來,此時可以使用指針.比如想共享/usr/share/doc中的檔案,則可以:
ln -s /usr/share/doc /var/samba/resource/doc
進入/var/samba/resource ls一下,是不是出現指針檔案了!
二: 建立一資源,隻能讓使用者liu全權通路.
. 編輯smb.conf檔案
[liu]
comment = liu
path = /var/samba/liu
valid users = liu //隻允許liu通路 或者@組名
public = no
writable = yes
mkdir -p /var/samba/liu
. 由于隻能讓liu使用,是以得給該檔案夾設定通路權限.
chown liu.liu /var/samba/liu
chmod 700 /var/samba/liu
此時該檔案夾屬于liu使用者,并且隻能由liu使用者通路.
例: 建立一資源,隻能讓root,zhang和wang通路.
[zhang wang]
comment = zhang wang
valid users = zhang wang
create mask = 0707 create
mkdir -p /var/samba/zhangwang
. 給該檔案夾設定通路權限.
chmod 707 /var/samba/zhangwang
此時該檔案夾隻能root,zhang,wang通路了.
例: 建立一資源,讓指定的組group2中的使用者通路.
[group]
comment = group2
path = /var/samba/group2
public = yes
write list = @group2 //設定讀寫通路使用者清單(read list)
mkdir -p /var/samba/group2
chown group2.group2 /var/samba/group2
chmod 770 /var/samba/group2
此時該檔案夾隻能由group2中的使用者通路了.
(3). 以上為建立共享檔案夾,下面為建立共享列印機.
. 配置列印機的方面有很多,比如使用redhat-config-printer指令即可調出配置菜單.
. 當然smb.conf中也要設定啊:
printcap name = /etc/printcap //配置檔案路徑
writable = no
guest ok = yes //guest可用
browseable = no //不可浏覽
ptrintable = yes
path = /var/spool/samba //隊列位置
printer admin = root //列印機管理者
其他配置不變或按情配置
接下來再添加print驅動設定:
[print$]
comment = printer drivers
path = /etc/samba/drivers
browseable = yes
guest ok = no
read only = yes
write list = root
接着建立drivers檔案夾:mkdir -p /etc/samba/drivers
最後給使用者準備列印機驅動,并啟動列印共享:
注意:例3,4是補充内容,課本上沒有!!!
cupsaddsmb -a -U root //-a為共享所有列印機 -U為以root身份執行
cupsaddsmb指令
靈活的samba權限
write list = aa這兩行的作用:雖然該目錄隻讀,但aa仍然能寫
read only = no
read list = aa 作用:雖然該目錄都可寫,但aa隻讀
本文轉自 gehailong 51CTO部落格,原文連結:http://blog.51cto.com/gehailong/263894,如需轉載請自行聯系原作者