配置之前先了解一下比較重要的一些配置資訊,有助于我們得心應手地駕馭伺服器:
samba允許單獨加載的使用者配置檔案:
include = /etc/samba/%G.smb.conf
include = /etc/samba/%U.smb.conf
安全性方面:
hosts allow = 192.168.2. EXCEPT 192.168.2.22
interfaces = 192.168.2.126
usrename map = /etc/samba/smbusers 映射虛拟賬号,以保證明體賬号不外洩,格式如:Linux_user = Samba_user1,Samba_user2,...
smb passwd file = /etc/samba/smbpasswd 為提高安全性,請确認此檔案權限:-rw------- 1 root root 103 May 4 19:06
encrypt passwords = yes 以加密的方式通信
利用tcp_wrapper實行通路控制,防止非法通路,在/etc/hosts.allow 和 /etc/hosts.deny加入相應的控制位址,如:hosts.allow裡加入smbd:192.168.2.0/24:allow,在hosts.deny裡加入smbd:all:deny
建立檔案或檔案夾權限方面:
create mask = 0744 設定建立檔案時的權限
directory mask = 0755 設定建立目錄時的權限
Linux權限分為三個部分:使用者所屬使用者、使用者所在組、其它使用者三種通路權限,每部分又可以分為讀(Read)、寫(Write)、執行(eXecute),共占九位數(但ls -l /home/smb 時為什麼看到卻是10位數的呢?其它是這樣的,它的第一位表示檔案類型,其它九位就是檔案權限,常見的檔案類型有:-表示普通檔案、d表示目錄檔案、l表示連結檔案、b表示塊裝置檔案等),任何檔案都有自己的屬主,每個使用者靠使用者的UID号來區分,使用者登入名相同而UID号不同視為不同的使用者
現在企業要求每個部分隻有一個檔案夾,再加一下公共檔案目錄作為共享用,任何人都可以通過公共目錄與其它部門交流檔案,本部門的檔案隻允許本部門操作,同時每個使用者有一個私人目錄用作儲存私有檔案
對于使用者對自己的目錄有絕對權限這個不難,可以成自己的家目錄,系統預設的家目錄權限是700,安全性達到了要求
再建一個公共目錄,權限為1777,1為粘置位,777表示任何人都可以讀、寫、執行,但前面加上1後,使用者隻能完全執行自己的檔案了,防止使用者誤操作而導緻他人檔案丢失的問題,本部門用目錄,隻要把相當使用者加入該組即可,最後一個要求其實就是一個家目錄就行了
實際操作:
先建目錄
mkdir -p -m 1777/samba/public
mkdir -m 770 /samba/sale
mkdir -m 770 /samba/ad
mkdir -m 770 /samba/pro
建使用者組和使用者:
groupadd sale
groupadd ad
groupadd pro
useradd -g sale -s /sbin/nologin sale1
useradd -g sale -s /sbin/nologin sale2
useradd -g sale -s /sbin/nologin sale3
useradd -g ad -s /sbin/nologin ad1
useradd -g ad -s /sbin/nologin ad2
useradd -g pro -s /sbin/nologin pro1
useradd -g pro -s /sbin/nologin pro2
useradd -g pro -s /sbin/nologin pro3
修改目錄權限(保證使用者權限本地權限):
chown sale1:sale /samba/sale
chown ad1:ad /samba/ad
chown pro1:pro /samba/pro
修改配置檔案:
vi /etc/samba/smb.conf
[global]
workgroup = workgroup
server string = samba server
interface = 192.168.2.126
hosts allow = 192.168.2. EXCEPT 192.168.2.53
security = user
username map = /etc/samba/smbusers
smb passwd file = /etc/samba/smbpasswd
encrypt passwords = yes
log file=/var/log/samba/%m.log
max log size=50
include = /etc/samba/smb.conf.%U
include = /etc/samba/smb.conf.%G
[Public]
comment = public directory
path = /samba/public
browseable = yes
writable = yes
valid users = %U
create mask = 1644 保證各個使用者自己建立的檔案不被他人删除,如果改成1600,那麼其它人也沒有權限檢視
directory mask = 1755
[homes]
comment = users directories
browseable = no
writable = yes
valid users = %U
主配置檔案配置完成,Copy成組、使用者的單獨配置檔案
cp /etc/samba/smb.conf /etc/samba/smbc.conf.sale
cp /etc/samba/smb.conf /etc/samba/smbc.conf.ad
cp /etc/samba/smb.conf /etc/samba/smbc.conf.pro
vi /etc/samba/smb.conf.sale
把config file = /etc/samba/smb.conf.%U 和 config file = /etc/samba/smb.conf.%G 行注釋掉,在最後加入如下:
[sale]
comment = sale directory
path = /samba/sale
write list = @sale
valid users = @sale
create mask = 1640 本配置是基于組的,是以1640權限同組使用者隻有讀權限,而其它使用者則無權限
directory mask = 1750
另外兩個組配置文體操作相同,隻是路徑、可寫使用者、有效使用者不同
啟用tcp_wrapper通路控制
vi /etc/hosts.allow
smbd:192.168.2.0/24:allow
nmbd:192.168.2.0/24:allow
vi /etc/hosts.deny
smbd:all:deny
nmbd:all:deny
添加samba使用者
smbpasswd -a sale1
smbpasswd -a sale2
smbpasswd -a ad1
smbpasswd -a ad2
smbpasswd -a pro1
smbpasswd -a pro2
啟用虛拟賬号映射
vi /etc/samba/smbusers
sale1 = sale11
sale2 = sale21
ad1 = ad11
ad2 = ad21
pro1 = pro11
pro2 = pro21
本文還可以基于使用者單獨配置檔案,實作個性化且符合實際需求的設定
總結:
本配置檔案最容易寫錯的地方有:valid users、encrypt passwords 會忘記後面的s,writable會寫成writeable, 按照說明來是應該可以把include這個包含改成config file,但是我設定就是不成功,望有高手幫忙.新手學習過程中難免有很多不懂的地方,待日後見證進步...:)