一.理論知識:
1.samba
代替
nfs
的緣由。
2. Windows
主機之間使用
SMB/CIFS
協議進行文件和打印的共享。(微軟的服務)
端口:
445 139
3. samba
的核心是兩個守護進程
smbd
和
nmbd
程序。
Smbd
和
nmbd
使用的所有配置信息全都保存在
smb.conf
文件中。
Smb.conf
向
smbd
和
nmbd
兩個守護進程說明輸出什麼以便共享,共享輸出給誰及如何進行輸出。
4.Smbd
進程的做用是提供文件
/
打印共享。
nmbd
進程是提供網絡中域或者工做組內的主機進行主機名稱的解析
。
二.安裝(四個包
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
browseable = no
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
實驗
:
一
:
創建資源
,
使登錄到該服務器的用戶均有權使用該空間
(
包括讀
,
寫
)
.
編輯
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
文件
vi 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
訪問
.
.
編輯
smb.conf
文件
vi smb.conf
[zhang wang]
comment = zhang wang
path = /var/samba/liu
valid users = zhang wang
public = no
writable = yes
create mask = 0707 create
.
創建共享文件夾
mkdir -p /var/samba/zhangwang
.
給該文件夾設置訪問權限
.
chmod 707 /var/samba/zhangwang
此時該文件夾只能
root,zhang,wang
訪問了
.
例
:
創建一資源
,
讓指定的組
group2
中的用戶訪問
.
.
編輯
smb.conf
文件
vi smb.conf
[group]
comment = group2
path = /var/samba/group2
public = yes
writable = 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
中也要設置啊
:
[global]
printcap name = /etc/printcap //
配置文件路徑
[printers]
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
權限
read only = yes
write list = aa
這兩行的做用:雖然該目錄只讀,但
aa
仍然能寫
read only = no
read list = aa
做用:雖然該目錄均可寫,但
aa
只讀