username map = /etc/samba/smbusers
配置使用用戶個人配置文件,用config file或include設置
使用登錄用戶獨立的配置文件,實現SAMBA用戶的個性化配置。複製smb.conf
為smb.conf.hungws並按用戶需求編輯,當hungws登錄SAMBA時使用的配置就
是文件smb.conf.hungws中的配置,%U代表當前登錄的賬戶名稱
include =/etc/samba/smb.conf.%U 與config file配置等效
config file = /etc/samba/smb.conf.%U
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SENDBUF=8192
interfaces=192.168.0.50/24
設置用戶的主目錄共享特性
homes是特殊共享名代表共享的用戶主目錄,不需用path指定具體用戶的主目錄
[homes]
comment = your private space
browseable = no
writable =yes
create mode = 0644
directory mode = 0775
valid users設置有權進入共享目錄的用戶,%S代表[]中的值。例如賬戶tonny登錄
時[]中的homes將由tonny的主目錄名tonny替換,則%S就表示tonny。@後接用戶
組名,本設置允許admin組的用戶可以登錄所有用戶的主目錄
valid users = %S,@admin
設置公共共享目錄
[pubs]
comment = department’s share
path = /home/ourdocs
read only = yes
public = yes
browseable = yes
create mode = 0644
directory mode = 0775
設置具有寫入權限的用戶及用戶組。允許賬戶rose、paul和用戶組account
write list = rose,paul,@account
設置允許訪問以及禁止訪問的客戶端。可通過IP地址、網段網絡號、域名和主機
名來指定客戶端。多個設置值之間用“空格”分隔
隻允許來自192.168.0.0網段但除192.168.0.36外的客戶端訪問SAMBA服務
hosts deny = ALL
hosts allow = 192.168.0 EXCEPT 192.168.0.36
重新設置來賓賬號為bms,而不直接采用guest
guest account = bms
guest ok = yes
(2)建立SAMBA賬戶。
係統管理員必須為用戶建立SAMBA賬戶,他才能訪問需要登錄SAMBA服務器查閱的共享資源。SAMBA賬戶信息存儲在smb.conf中smb passwd file設定的密碼文件中。
建立SAMBA賬戶密碼文件並設置訪問權限:
[root@vm ~]touch /etc/samba/ smbpasswd
[root@vm ~]chown root:root /etc/samba/ smbpasswd
[root@vm ~]chmod 600 /etc/samba/ smbpasswd
(3)設置SAMBA賬戶及密碼。
[root@vm ~]smbpasswd -a hungws
輸入兩次SAMBA賬戶密碼
New SMB password:
Retype new password:
Added user hungws
(4)設置SAMBA賬戶映射。
[root@vm ~]vi /etc/samba/smbusers
設置一般格式為:實際SAMBA賬號名=虛擬SAMBA賬號名列表(以空格分隔)
root是實際SAMBA賬號,同時也是Linux係統賬號,super、admin是虛擬SAMBA
賬號,用於登錄SAMBA服務器,但不能登錄到Linux係統,它們在係統中不存在
root = super admin
nobody = guest pcguest smbguest
hungws = hws
(5)重新加載SAMBA服務器。
[root@vm ~] service smb reload
學藝錦囊
◎SAMBA服務器主配置文件smb.conf的配置選項很多,使用時不需要設置每個參數,可以根據應用實際選配所需的參數,其他參數保持默認設置即可。文件中的用於純粹的注釋說明,;用於注釋配置命令,以使該配置命令不起作用。
◎smb.conf中有很多配置參數既可以在[global]全局節設置,也可以在某個具體的共享目錄下設置,配置成全局參數的將對所有共享資源生效,在共享目錄下配置的隻對該目錄有效。
◎配置共享目錄節中[]中的名稱是共享名,是在客戶端可以瀏覽到的名稱,而服務器上實際共享的目錄名由path設置且必須存在。
◎read only和writable都可以控製共享目錄的讀寫特性,當二者都設置且互相矛盾時,SAMBA服務器采用最後出現的設置。
◎設置browseable=no時,隻是在客戶端不能瀏覽到共享名,而不影響實際的共享,隻要知道共享名且擁有權限一樣可以正常訪問。
◎設置host allow後,不匹配host allow列表中的客戶機禁止登錄SAMBA服務器,不匹配host deny列表中的客戶機允許登錄SAMBA服務器。當同時設置這兩項且互相矛盾時,SAMBA服務器采用host allow的設置。
◎SAMBA賬戶是實際存在於係統中的賬戶,也即必須在/etc/passwd文件中存在賬戶。使用命令smbpasswd把係統中的賬戶添加到/etc/samba/smbpasswd中即生成了SAMBA賬戶,設置SAMBA賬號密碼時不一定要與Linux係統中的賬號密碼相同,建議兩者的密碼最好不要相同,以利係統安全。
◎為實際SAMBA賬戶建立虛擬賬戶可以降低係統的安全風險。虛擬賬戶可以登錄SAMBA服務器,但是不能登錄Linux係統,要使用虛擬賬戶攻擊服務器幾乎是不可能的,因為虛擬賬戶在係統中並不存在,隻有管理員才知道虛擬賬戶對應的實際賬戶是什麼。
◎為了係統安全,SAMBA賬戶文件/etc/samba/smbpasswd的擁有者必須是root,隻有root才能進行讀寫,因此其訪問權限應設為600。
◎在Linux中修改配置後,必須重新啟動或重新加載服務器才能使新的配置生效。重新加載可以不中斷當前的服務,而重新啟動是先關閉服務然後再啟動。
建議在實際應用環境中采用重新加載方式。
◎建議在完成SAMBA服務器配置後,執行命令testparm檢查SAMBA的所有配置屬性是否是所需要的。也可執行grep -v ‘^’ /etc/samba/smb.conf | grep -v ‘^;’來核對smb.conf的配置參數。
3.配置SAMBA打印服務器
SAMBA服務器為Linux環境下的企業網提供了強大的打印機共享服務。Linux下的打印工作是由標準打印接口如CUPS(Common Unix Printing System)統一管理的。
[root@vm ~] vi /etc/samba/smb.conf
[global]
workgroup = mygrp
server string = Linux Samba Server
netbios name = smbsrv
client code page = 936
lod files = /var/log/samba/log.%m
max log size = 500
security = user
encrypt passwords = yes
smb passwd file = /ect/samba/smbpasswd
username map = /etc/samba/smbusers
設置是否自動共享打印機。yes為自動,no為必須配置[printers]節
load printers = yes
指定存放打印機描述信息的文件
printcap name = /etc/printcap
指定打印係統類型,默認是lprg,可選有cups、bsd、sysv、aix、hpux、qnx、plp
printing = cups
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SENDBUF=8192
interfaces=192.168.0.50/24
設置共享打印機,printers也是一個特定的共享名代表共享打印機
[printers]
comment = Ours printers
設置打印隊列文件
path = /var/spool/samba
writeable = no
guest ok = yes
設置打印機可以執行打印操作。yes為允許,no為禁用
printable = yes
設置打印機類型。參考打印機廠商驅動程序定義的類型
printer driver = HP LaserJet 5L
其他共享配置省略
學藝錦囊
◎在配置打印服務共享之前,需要管理員在SAMBA服務器本地完成打印機的安裝、調試工作。
◎正確設置printer driver後,客戶端在安裝網絡打印機時就可以自動選擇打印機的驅動程序而無需手動選擇。
二、使用SAMBA服務