Linux samba 檔案共享
學校要求建立一個軟體共享平台。需求如下:普通使用者可以直接通路192.168.100.100,而不用輸入使用者密碼,權限是隻讀;而管理者登陸後可以對檔案夾,檔案進行管理操作。
有任何不足之處請高手指點。
一:挂載硬碟并分區
1:挂載好硬碟後輸入fdisk –l 檢視磁盤資訊
2:可以看到除了本地的sda外,還多了一個sdb的就是我們剛才挂上去的盤
然後用fdisk /dev/sdb進行分區:
3:進入fdisk指令,輸入h可以看到該指令的幫助,按n進行分區
4:這裡輸入e即分為邏輯分區,按p即分為主分區,我們要将這塊盤分為主分區即輸入p
5:到這裡輸入該主分區為第幾個主分區,由于是新盤輸入1來分第一個主分區
6:First Cylinder是選擇該分區的起始磁盤數,這裡可自定義也可不做選擇,預設是1,如無特殊需求強烈建議選擇預設,也就是1來分區(直接按回車)
7:接下來是定義該分區的大小,如果按預設(按回車)即是使用全部可用存儲額,也可以是用M或m機關結尾的數字(大寫M是大B的意思,如果輸入1M實際上是X8也就是8m的空間),這裡我們先分一個1G的空間,是以輸入+1024m
8:之後輸入w寫入分區,等待結束皆可
9:再輸入fdisk -l 可以看到我們剛才分的一個分區,之後用mkfs -t ext3 -c /dev/sdb1進行格式化,如有多個分區可把sdb1改成sdb2 sdb3...以此類推,具體可用fdisk -l看到每個分區的名字
10:上圖藍色部分是寫硬碟卷标的,如不想要卷标可直接按回車,現在分區好了我們用mount 挂載一下該分區即可使用了,這裡我把它挂載到/home/test目錄下,也可以自建一個 目錄挂載

11: 來看一下分區大小是否和預定的一樣,使用df -TH指令看一下目前挂載的分區和大小,看到剛分的分區了吧
12:如果想每次系統重新開機都能自動挂載該分區可修改/etc/fstab檔案,在最後加一段 /dev/sdb1 /www ext3 defaults 1 2 (格式說明:/dev/sdb1 代表哪個分區 ext3是該分區的格式 defaults 是挂載時所要設定的參數(隻讀,讀寫,啟用quota等),輸入defaults包括的參數有(rw、dev、exec、auto、nouser、async) ,1是使用dump是否要記錄,0是不要。 2是開機時檢查的順序,是boot系統檔案就為1,其他檔案系統都為2,如不要檢查就為0)
二:samba伺服器的配置
1:安裝samba 服務
Rpm –ivh perl-Convert-ASN1-0.20-1.1.noarch.rpm
Rpm –ivh samba-3.0.33-3.28.el5.i386.rpm
Rpm –ivh samba-client-3.0.33-3.28.el5.i386.rpm
Rpm –ivh samba-common-3.0.33-3.28.el5.i386.rpm
Service smbd restart
2: 建立samba使用者資料庫(samba使用者賬戶必須有對應的系統使用者賬戶存在)
usreadd test
usreadd test1
smbpasswd -a test
smbpasswd -a test1
-h 顯示samba指令幫助資訊
-a 添加指定的samba使用者
-d 禁用指定的samba使用者
-e 啟用指定的samba使用者
-x 删除指定的samba使用者
基于Windows安全考慮。samba服務提供了使用者名映射功能,(将不同的使用者名對應為同一個samba賬戶,起到隐藏對應的系統使用者賬戶的效果,減少密碼窮舉攻擊的風險)
/etc/samba/smbusers
# vi /etc/samba/smbusers
Test=smbadmin
3:samba主服務的配置
sanba思想:在samba的主目錄下建立一個或多個檔案夾,其中這些二級檔案夾是公布的,權限是隻讀,而管理的話則使用上級目錄進行管理。
配置檔案:vim /etc/samba/smb.conf
[global]
null password =yes //匿名通路不用輸入賬戶密碼
bind interfaces only =yes
map to guest =Bad Password
encrypt password =yes
smb passwd file =/etc/samba/smbpasswd
#client code page 936
dos charset = CP936
unix charset=CP936
stat cache size 128
server string =test server
workgroup=WORKGROUP
#security =share
security=user
os level =30
auto services=global
host msdfs =yes
max disk size =0
create mask =0775
directory mask =0755
load printers =no
template shell =/bin/false
winbind user default domain =no
username map=/etc/samba/smbusers //賬戶映射
[cduestc]
commet= public share with test files //一個名字,可随便取
path=/home/test/cduestc //設定要共享的目錄路徑
public=yes //設定為匿名通路
read only =yes //權限隻讀
[test]
valid users =test,test1 //可管理賬戶
path=/home/test //共享目錄的上層路徑
browseable = no //不可浏覽
writable =yes //可寫
write list =test,test1 //管理權限使用者清單
sync always =yes //即使重新整理
directory mode =0755 //管理者建立目錄的權限
create mode =0755 //管理者建立檔案的權限
儲存後重新開機服務。
4:講smb服務設為開機啟動
Vim /etc/rc.d/rc.local
三:配置http通路
1:安裝httpd服務
Rpm –ivh httpd-2.2.3-43.el5.i386.rpm
Rpm –ivh httpd-manual-2.2.3-43.el5.i386.rpm
2:配置httpd
vi m /etc/httpd/conf.d/welcome.conf 把檔案的東西都注釋掉
vim /etc/httpd/conf/httpd.conf
DocumentRoot "/home/test"
<Directory "/home/test">
四:使用說明
samba服務以開機自動啟動,挂載點開機自動挂載
1: 匿名通路
權限:隻讀
ip:192.168.100.100
可直接通路檔案夾:test more
(注:通路到的是test/cduestc,test/more)
2:管理者管理檔案
權限:可讀可寫可删除
在映射驅動器裡輸入:\\192.168.100.100\tes
賬戶有兩個:
test test
test1 test1
管理者不慎把cduestc 或者more檔案夾删除後請重建相同名稱的檔案夾(并修改權限為777),
否則匿名将無法通路,管理者無法上傳删除此檔案夾檔案。
如要添加檔案夾及重命名,請到vi /etc/samba/smb.conf下添加如下配置:
[cduestc] //匿名通路時顯示的檔案夾名
commet= public share with test files //注釋
path=/home/test/cduestc //路徑
public=yes //是否公開或允許匿名通路,yes為允許匿名
read only =yes //設為隻讀
然後把建立立的檔案夾的權限改為777(chmod 777 [folder name])這樣就能正常讀寫了。
效果圖: