ubuntu訪問(wèn)windows共享很簡(jiǎn)單_第1頁(yè)
ubuntu訪問(wèn)windows共享很簡(jiǎn)單_第2頁(yè)
ubuntu訪問(wèn)windows共享很簡(jiǎn)單_第3頁(yè)
ubuntu訪問(wèn)windows共享很簡(jiǎn)單_第4頁(yè)
ubuntu訪問(wèn)windows共享很簡(jiǎn)單_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、ubuntu 訪問(wèn) windows 共享很簡(jiǎn)單:打開(kāi) nautilus,CTRL+L,在地址欄輸入 smb:/192.168.100.x 即可。windows 訪問(wèn) ubuntu 共享文件夾方法如下:ubuntu 中右鍵 共享文件夾,設(shè)置 SMB 共享,設(shè)置 名稱 和 允許瀏覽文件夾。在windows 中訪問(wèn) xxx.xxx.xxx.xxx 會(huì)提示輸入用戶名和密碼。在 ubuntu 中sudo gedit /etc/samba/smbusers建立文件,輸入下面內(nèi)容system_username = “ABC”保存退出。運(yùn)行sudo smbpasswd -a username設(shè)置密碼。用以上的

2、用戶名和密碼訪xxx.xxx.xxx.xxx問(wèn) 即可。一步一學(xué)Linux與Windows 共享文件Samba (v0.2b)作者:北南南北,正在增加中. . 需要您的參與;來(lái)自:LinuxSir.Org簡(jiǎn)介:本文只是講一講我們最常用的Linux與Windows共享文件,主要是為新手指一指路。如何建立最簡(jiǎn)單的Samba服務(wù)器,并講述遇到問(wèn)題應(yīng)該從何處尋找解決方案;正在更新之中,希望您的參加 . . 謝謝;目錄 HYPERLINK /main/node/158?q=node/158 l 0 0、架設(shè)Samba 服務(wù)器的前提; HYPERLINK /main/node/158?q=node/158

3、l 0.1 0.1 查看文件內(nèi)容和編輯文件的工具; HYPERLINK /main/node/158?q=node/158 l 0.2 0.2 關(guān)于文件和目錄相關(guān); HYPERLINK /main/node/158?q=node/158 l 0.3 03 用戶和用戶組相關(guān); HYPERLINK /main/node/158?q=node/158 l 0.4 04 進(jìn)程管理; HYPERLINK /main/node/158?q=node/158 l 1 1 Samba 簡(jiǎn)介 HYPERLINK /main/node/158?q=node/158 l 2 2 Samba 功能和應(yīng)用范圍 HYPE

4、RLINK /main/node/158?q=node/158 l 3 3 Samba 兩個(gè)服務(wù)器相關(guān)啟動(dòng)程序、客戶端及服務(wù)器配置文件等; HYPERLINK /main/node/158?q=node/158 l 3.1 3.1 Samba 有兩個(gè)服務(wù)器,一個(gè)是smbd,另一個(gè)是nmbd; HYPERLINK /main/node/158?q=node/158 l 3.2 3.2 查看Samba 服務(wù)器的端口及防火墻; HYPERLINK /main/node/158?q=node/158 l 3.3 3.3 查看Samba 服務(wù)器的配置文件; HYPERLINK /main/node/15

5、8?q=node/158 l 3.4 3.4 Samba 在Linux 中的一些工具(服務(wù)器端和客戶端); HYPERLINK /main/node/158?q=node/158 l 3.5 3.5 在Linux 中的常用工具,Windows查看Linux共享的方法 ; HYPERLINK /main/node/158?q=node/158 l 3.5.1 3.5.1 在Linux系統(tǒng)中查看網(wǎng)絡(luò)中Windows共享文件及Linux中的Samba共享文件; HYPERLINK /main/node/158?q=node/158 l 3.5.2 3.5.2 在Windows中訪問(wèn)Linux Sam

6、ba服務(wù)器共享文件的辦法; HYPERLINK /main/node/158?q=node/158 l 3.5.3 3.5.3 smbfs文件系統(tǒng)的掛載; HYPERLINK /main/node/158?q=node/158 l 4 4 由最簡(jiǎn)單的一個(gè)例子說(shuō)起,匿名用戶可讀可寫(xiě)的實(shí)現(xiàn); HYPERLINK /main/node/158?q=node/158 l 4.1 第一步: 更改smb.conf HYPERLINK /main/node/158?q=node/158 l 4.2 第二步:建立相應(yīng)目錄并授權(quán); HYPERLINK /main/node/158?q=node/158 l 4.

7、3 第三步:?jiǎn)?dòng)smbd和nmbd服務(wù)器; HYPERLINK /main/node/158?q=node/158 l 4.4 第四步:查看smbd進(jìn)程,確認(rèn)Samba 服務(wù)器是否運(yùn)行起來(lái)了; HYPERLINK /main/node/158?q=node/158 l 4.5 第五步:訪問(wèn)Samba 服務(wù)器的共享; HYPERLINK /main/node/158?q=node/158 l 5 5、復(fù)雜一點(diǎn)的用戶共享模型(適合10人左右的小型企業(yè)); HYPERLINK /main/node/158?q=node/158 l 5.1 5.1 共享權(quán)限設(shè)計(jì)實(shí)現(xiàn)的功能; HYPERLINK /ma

8、in/node/158?q=node/158 l 5.2 5.2 在服務(wù)器上創(chuàng)建相應(yīng)的目錄; HYPERLINK /main/node/158?q=node/158 l 5.3 5.3 添加用戶用戶組,設(shè)置相應(yīng)目錄家目錄的權(quán)限; HYPERLINK /main/node/158?q=node/158 l 5.3.1 5.3.1 添加用戶組; HYPERLINK /main/node/158?q=node/158 l 5.3.2 5.3.2 添加用戶; HYPERLINK /main/node/158?q=node/158 l 5.3.3 5.3.3 添加samba用戶,并設(shè)置密碼; HYPER

9、LINK /main/node/158?q=node/158 l 5.3.4 5.3.4 配置相關(guān)目錄的權(quán)限和歸屬; HYPERLINK /main/node/158?q=node/158 l 5.4 5.4 修改Samba配置文件; HYPERLINK /main/node/158?q=node/158 l 5.5 5.5 關(guān)于客戶端訪問(wèn); HYPERLINK /main/node/158?q=node/158 l 5.5.1 5.5.1 Windows客戶端訪問(wèn); +正文+0、架設(shè)Samba 服務(wù)器的前提;Linux是一個(gè)多用戶的操作系統(tǒng),對(duì)任何服務(wù)器的架設(shè)與都用戶、用戶組及權(quán)限相關(guān),這是

10、操作的基礎(chǔ)。Samba服務(wù)器也不例外,對(duì)這些知識(shí)的掌握 也是極為重要的。在Windows系統(tǒng)上雖然也能架共享文件服務(wù)器,但它的權(quán)限控制實(shí)在令人不敢恭維。如果我們用Windows系統(tǒng)來(lái)架網(wǎng)絡(luò)共享文件系 統(tǒng),就是點(diǎn)鼠標(biāo)也能把我們點(diǎn)迷糊了。但在Linux中,我們可以輕松的改一改配置文件,不到幾分鐘就能建好自己的Samba服務(wù)器。哪個(gè)更容易,只有你知 道;對(duì)于Samba服務(wù)器的架設(shè),有的弟兄簡(jiǎn)單的認(rèn)為,只要把改一下配置文件,創(chuàng)建好相應(yīng)的目錄就行了。其實(shí)并不是這樣的,還要深入的工作,比如目錄的權(quán)限和歸屬,也就是說(shuō)能讓哪個(gè)用戶和用戶組有讀寫(xiě)權(quán)。只有把配置文件和共享目錄的權(quán)限結(jié)合起來(lái),才能架好Samba服務(wù)

11、器;下面是常用的基礎(chǔ)知識(shí),我們?cè)诒疚闹兴婕暗膬?nèi)容都可以在下面的列表中找到相應(yīng)的解釋?zhuān)?.1 查看文件內(nèi)容和編輯文件的工具; HYPERLINK /main/?q=node/198 Linux 文件內(nèi)容查看工具介紹 HYPERLINK /main/?q=node/206 文件編輯器 vi0.2 關(guān)于文件和目錄相關(guān); HYPERLINK /main/?q=node/191 Linux 文件類(lèi)型 及文件的擴(kuò)展名 HYPERLINK /main/?q=node/192 Linux 文件和目錄管理之列出、刪除、復(fù)制、移動(dòng)及改名 HYPERLINK /main/?q=node/196 Linux 文件和

12、目錄的屬性 HYPERLINK /main/?q=node/208 簡(jiǎn)述Linux文件搜索03 用戶和用戶組相關(guān); HYPERLINK /main/?q=node/91 Linux 用戶(user)和用戶組(group)管理概述 HYPERLINK /main/?q=node/98 用戶(User)和用戶組(Group)配置文件詳解 HYPERLINK /main/?q=node/106 Linux 用戶管理工具介紹 HYPERLINK /main/?q=node/105 Linux 用戶(User)查詢篇04 進(jìn)程管理; HYPERLINK /main/?q=node/210 Linux 進(jìn)

13、程管理1 Samba 簡(jiǎn)介Samba(SMB是其縮寫(xiě)) 是一個(gè)網(wǎng)絡(luò)服務(wù)器,用于Linux和Windows共享文件之用;Samba 即可以用于Windows和Linux之間的共享文件,也一樣用于Linux和Linux之間的共享文件;不過(guò)對(duì)于Linux和Linux之間共享文件有 更好的網(wǎng)絡(luò)文件系統(tǒng)NFS,NFS也是需要架設(shè)服務(wù)器的;大家知道在Windows 網(wǎng)絡(luò)中的每臺(tái)機(jī)器即可以是文件共享的服務(wù)器,也可以同是客戶機(jī);Samba 也一樣能行,比如一臺(tái)Linux的機(jī)器,如果架了Samba Server 后,它能充當(dāng)共享服務(wù)器,同時(shí)也能做為客戶機(jī)來(lái)訪問(wèn)其它網(wǎng)絡(luò)中的Windows共享文件系統(tǒng),或其它Lin

14、ux的Sabmba 服務(wù)器;我們?cè)赪indows網(wǎng)絡(luò)中,看到共享文件功能知道,我們直接就可以把共享文件夾當(dāng)做本地硬盤(pán)來(lái)使用。在Linux的中,就是通過(guò)Samba的向網(wǎng)絡(luò)中的機(jī)器提供共享文件系統(tǒng),也可以把網(wǎng)絡(luò)中其它機(jī)器的共享掛載在本地機(jī)上使用;這在一定意義上說(shuō)和FTP是不一樣的。Samba 用的netbios協(xié)議,如果您用Samba 不成功,Linux與Windows 、Linux 和 Linux 2 Samba 功能和應(yīng)用范圍Samba 應(yīng)該范圍主要是Windows和Linux 系統(tǒng)共存的網(wǎng)絡(luò)中使用;如果一個(gè)網(wǎng)絡(luò)環(huán)境都是Linux或Unix類(lèi)的系統(tǒng),沒(méi)有必要用Samba,應(yīng)該用NFS更好一點(diǎn);

15、那Samba 能為我們提供點(diǎn)什么服務(wù)呢?主要是共享文件和共享打印機(jī);3 Samba 兩個(gè)服務(wù)器相關(guān)啟動(dòng)程序、客戶端及服務(wù)器配置文件等;3.1 Samba 有兩個(gè)服務(wù)器,一個(gè)是smb,另一個(gè)是nmb;smb 是Samba 的主要啟動(dòng)服務(wù)器,讓其它機(jī)器能知道此機(jī)器共享了什么;如果不打開(kāi)nmb服務(wù)器的話,只能通過(guò)IP來(lái)訪問(wèn),比如在Windows的IE瀏覽器上打入下面的一條來(lái)訪問(wèn);共享目錄opt而nmb是解析用的,解析了什么呢?就是把這臺(tái)Linux機(jī)器所共享的工作組及在此工作組下的netbios name解析出來(lái); 一般的情況下,在RPM包的系統(tǒng),如果是用RPM包安裝的Samba ,一般可以通過(guò)如下的

16、方式來(lái)啟動(dòng)Samba服務(wù)器;rootlocalhost # /etc/init.d/smb start啟動(dòng) SMB 服務(wù): 確定 啟動(dòng) NMB 服務(wù): 確定 如果停止呢?就在smb后面加stop ;重啟就是restartrootlocalhost # /etc/init.d/smb stoprootlocalhost # /etc/init.d/smb restart對(duì)于所有系統(tǒng)來(lái)說(shuō),通用的辦法就是直接運(yùn)行smb 和nmb;當(dāng)然您要知道smb和nmb所在的目錄才行;如果是自己編譯的Samba ,您應(yīng)該知道您把Samba放在哪里了;rootlocalhost # /usr/sbin/smbdro

17、otlocalhost # /usr/sbin/nmbd查看服務(wù)器是否運(yùn)行起來(lái)了,則用下面的命令; rootlocalhost # pgrep smbdrootlocalhost # pgrep nmbd關(guān)掉Samba服務(wù)器,也可以用下面的辦法,大多是通用的;要root權(quán)限來(lái)執(zhí)行;rootlocalhost # pkill smbdrootlocalhost # pkill nmbd3.2 查看Samba 服務(wù)器的端口及防火墻;查看這個(gè)有何用呢?有時(shí)你的防火墻可能會(huì)把smbd服務(wù)器的端口封掉,所以我們應(yīng)該smbd服務(wù)器所占用的端口;下面查看中,我們知道smbd所占用的端口是139和445 ;r

18、ootlocalhost # netstat -tlnp |grep smbtcp 0 0 :139 :* LISTEN 10639/smbdtcp 0 0 :445 :* LISTEN 10639/smbd如果您有防火墻,一定要把這兩個(gè)端口打開(kāi)。如果不知道怎么打開(kāi)??赡苣愫臀乙粯邮切率郑€是把防火墻規(guī)則清掉也行;rootlocalhost # iptables -F 或rootlocalhost # /sbin/iptables -F3.3、查看Samba 服務(wù)器的配置文件;如果我們是用Linux發(fā)行版自帶的Samba軟件包,一般情況下Samba服務(wù)器的配置文件都位于/etc/samba目錄

19、中,服務(wù)器的主配置文 件是smb.conf;也有有戶配置文件 smbpasswd、smbusers和lmhosts等(最好您查看一下這些文件的內(nèi)容);還有一個(gè)文件是secrets.tdb,這個(gè)文件是 Samba 服務(wù)器啟動(dòng)手自動(dòng)生成的;我們慢慢根據(jù)教程的進(jìn)度來(lái)適當(dāng)?shù)卦黾舆@些文件的說(shuō)明吧;一下子都說(shuō)出來(lái),感覺(jué)內(nèi)容太多;所以只能一點(diǎn)一點(diǎn)的來(lái)了;3.4、Samba 在Linux 中的一些工具(服務(wù)器端和客戶端);smbcacls smbcontrol smbencrypt smbmount smbprint smbstatus smbtreesmbclient smbcquotas smbmnt s

20、mbpasswd smbspool smbtar smbumountsmbd nmbd mount 其中服務(wù)器端的是smbd、nmbd、smbpasswd ;其它的大多是客戶端;這些并不是都需要一定要精通的,但至少得會(huì)用幾個(gè);比如smbmount(也就是mount 加參數(shù)的用法),還用smbclient等;3.5 在Linux 中的常用工具mount(smbmount)和smbclient;Windows查看Linux共享的方法 ;3.5.1 在Linux系統(tǒng)中查看網(wǎng)絡(luò)中Windows共享文件及Linux中的Samba共享文件;一般的情況下,我們要用到smbclient;常用的用法也無(wú)非是下面

21、的;rootlocalhost # smbclient -L /ip地址或計(jì)算機(jī)名smbclient 是Samba 的Linux 客戶端,在Linux機(jī)器上用來(lái)查看服務(wù)器上的共享資源,也可以象FTP一樣,用戶可以登錄Samba服務(wù)器,也可以上傳put和下載get文件,遺憾的是對(duì)中文支持并不友好;查看服務(wù)器上的資源;smbclient -L /IP -U 用戶名如果您的Samba服務(wù)器配置為user模式,就要加 “-U 用戶名“,如果是share模式,省略也可;比如:rootlocalhost # smbclient -L / -U sir01Password: 請(qǐng)輸入用戶sir01的密碼如果您

22、是用share模式,就可以不必理會(huì)用戶和密碼,直接用;rootlocalhost # smbclient -L / Password: 直接按回車(chē)登錄用戶身份Samba服務(wù)器共享以用戶身份登錄共享后,能象FTP用戶一樣,下傳和下載文件;用put表示上傳,用get表示下載;smbclient /IP地址/共享文件夾 -U 用戶 說(shuō)明:IP地址大家都知道,你不知道自己的IP地址,可以用/sbin/ifconfig 來(lái)查看; 共享文件夾是我們?cè)趕mb.conf中定義的共享文件夾,比如sir01。-U 用戶名表示Samba 的用戶;比如:rootlocalhost # smbclient /sir01

23、 -U sir01Password:Domain=LINUXSIR OS=Unix Server=Samba 3.0.21b-2smb: ls說(shuō)明:登錄到Samba服務(wù)器上,就可以用smbclient的一些指令,可以象用FTP指令一樣上傳和下載文件;smbclient 命令說(shuō)明命令說(shuō)明?或help command提供關(guān)于幫助或某個(gè)命令的幫助!shell command執(zhí)行所用的SHELL命令,或讓用戶進(jìn)入 SHELL提示符cd 目錄切換到服務(wù)器端的指定目錄,如未指定,則 smbclient 返回當(dāng)前本地目錄lcd 目錄切換到客戶端指定的目錄;dir 或ls 列出當(dāng)前目錄下的文件;exit 或q

24、uit 退出smbclientget file1 file2 從服務(wù)器上下載file1,并以文件名file2存在本地機(jī)上;如果不想改名,可以把file2省略mget file1 file2 file3 filen 從服務(wù)器上下載多個(gè)文件;md或mkdir 目錄在服務(wù)器上創(chuàng)建目錄rd或rmdir目錄刪除服務(wù)器上的目錄put file1 file2向服務(wù)器上傳一個(gè)文件file1,傳到服務(wù)器上改名為file2;mput file1 file2 filen 向服務(wù)器上傳多個(gè)文件3.5.2 在Windows中訪問(wèn)Linux Samba服務(wù)器共享文件的辦法;這個(gè)簡(jiǎn)單吧,在網(wǎng)上領(lǐng)居,查看工作組就能看得到,或

25、者在瀏覽器上輸入如下的ip地址或計(jì)算機(jī)名這樣就能看到這個(gè)機(jī)器上有什么共享的了,點(diǎn)鼠標(biāo)操作完成;如果訪問(wèn)不了,不要忘記把Linux的防火墻規(guī)劃清掉,或讓相應(yīng)的端口通過(guò);3.5.3 在Linux中smbfs文件系統(tǒng)的掛載;mount 的用法,加載網(wǎng)絡(luò)中的共享文件夾到本地機(jī);mount就是用于掛載文件系統(tǒng)的,SMB做為網(wǎng)絡(luò)文件系統(tǒng)的一種,也能用mount掛載;smbmount說(shuō)到底也是用mount的一個(gè)變種;mount 掛載smbfs的用法;mount -t smbfs -o codepage=cp936,username=用戶名,password=密碼 , -l /ip地址/共享文件夾名 掛載點(diǎn)或

26、mount -t smbfs -o codepage=cp936,username=用戶名,password=密碼 , -l /計(jì)算機(jī)名/共享文件夾名 掛載點(diǎn)或mount -t smbfs -o codepage=cp936 /ip地址或計(jì)算機(jī)名/共享文件夾名 掛載點(diǎn)smbmount的用法:smbmount -o username=用戶名,password=密碼 , -l /ip地址或計(jì)算機(jī)名/共享文件夾名 掛載點(diǎn)smbmount /ip地址或計(jì)算機(jī)名/共享文件夾名 掛載點(diǎn)說(shuō)明: 如果您的服務(wù)器是以share共享的,則無(wú)需用戶名和密碼就能掛載,如果出現(xiàn)要密碼的提示,直接回車(chē)就行;您也可以用sm

27、bmount 來(lái)掛載,這樣就無(wú)需用mount -t smbfs來(lái)指定文件系統(tǒng)的類(lèi)型了;對(duì)于掛載點(diǎn),我們要自己建立一個(gè)文件夾,比如我們可以建在/opt/smbhd,這由您說(shuō)的算吧;在mount的命令中,我們發(fā)現(xiàn)有這樣的一個(gè)參數(shù)codepage=cp936,這是服務(wù)器端文件系統(tǒng)的編碼的指定,cp936 就是簡(jiǎn)體中文,當(dāng)然您可以用utf8等,嘗試一下吧。如果您掛載了遠(yuǎn)程的smbfs文件系統(tǒng)出現(xiàn)的是簡(jiǎn)體中文亂碼,就要考慮掛載時(shí)要指定編碼了;4、由最簡(jiǎn)單的一個(gè)例子說(shuō)起,匿名用戶可讀可寫(xiě)的實(shí)現(xiàn); 第一步: 更改smb.conf我們來(lái)實(shí)現(xiàn)一個(gè)最簡(jiǎn)單的功能,讓所有用戶可以讀寫(xiě)一個(gè)Samba 服務(wù)器共享的一個(gè)文

28、件夾;我們要改動(dòng)一下smb.conf ;首先您要備份一下smb.conf文件;rootlocalhost # cd /etc/sambarootlocalhost samba# mv smb.conf smb.confBAK然后我們來(lái)重新創(chuàng)建一個(gè)smb.conf文件;rootlocalhost samba#touch smb.conf 然后我們把下面這段寫(xiě)入smb.conf中;globalworkgroup = LinuxSirnetbios name = LinuxSir05server string = Linux Samba Server TestServersecurity = sha

29、relinuxsir path = /opt/linuxsir writeable = yes browseable = yes guest ok = yes注解: global這段是全局配置,是必段寫(xiě)的。其中有如下的幾行;workgroup 就是Windows中顯示的工作組;在這里我設(shè)置的是LINUXSIR (用大寫(xiě));netbios name 就是在Windows中顯示出來(lái)的計(jì)算機(jī)名;server string 就是Samba服務(wù)器說(shuō)明,可以自己來(lái)定義;這個(gè)不是什么重要的;security 這是驗(yàn)證和登錄方式,這里我們用了share ;驗(yàn)證方式有好多種,這是其中一種;另外一種常用的是use

30、r的驗(yàn)證方式;如果用share呢,就是不用設(shè)置用戶和密碼了;linuxsir 這個(gè)在Windows中顯示出來(lái)是共享的目錄;path = 可以設(shè)置要共享的目錄放在哪里;writeable 是否可寫(xiě),這里我設(shè)置為可寫(xiě);browseable 是否可以瀏覽,可以;可以瀏覽意味著,我們?cè)诠ぷ鹘M下能看到共享文件夾。如果您不想顯示出來(lái),那就設(shè)置為 browseable=no guest ok 匿名用戶以guest身份是登錄;第二步:建立相應(yīng)目錄并授權(quán);rootlocalhost # mkdir -p /opt/linuxsirrootlocalhost # id nobodyuid=99(nobody) g

31、id=99(nobody) groups=99(nobody)rootlocalhost # chown -R nobody:nobody /opt/linuxsir注釋?zhuān)宏P(guān)于授權(quán)nobody,我們先用id命令查看了nobody用戶的信息,發(fā)現(xiàn)他的用戶組也是nobody,我們要以這個(gè)為準(zhǔn)。有些系統(tǒng)nobody用戶組并非是nobody ; 第三步:?jiǎn)?dòng)smbd和nmbd服務(wù)器;rootlocalhost # smbdrootlocalhost # nmbd第四步:查看smbd進(jìn)程,確認(rèn)Samba 服務(wù)器是否運(yùn)行起來(lái)了;rootlocalhost # pgrep smbd1356413568第五步

32、:訪問(wèn)Samba 服務(wù)器的共享;在Linux 中您可以用下面的命令來(lái)訪問(wèn);rootlocalhost # smbclient -L /LinuxSir05Password: 注:直接按回車(chē)在Windows中,您可以用下面的辦法來(lái)訪問(wèn);LinuxSir055、復(fù)雜一點(diǎn)的用戶共享模型(適合10人左右的小型企業(yè));比如一個(gè)公司有五個(gè)部門(mén),分別是linuxsir,sir01,sir02,sir03,sir04。我們想為這家公司設(shè)計(jì)一個(gè)比較安全的共享文件 模型。每個(gè)用戶都有自己的網(wǎng)絡(luò)磁盤(pán),sir01到sir04還有共用的網(wǎng)絡(luò)硬盤(pán);所有用戶(包括匿名用戶)有一個(gè)共享資料庫(kù),此庫(kù)為了安全是只讀的;所有 的用

33、戶(包括匿名用戶)要有一個(gè)臨時(shí)文件終轉(zhuǎn)的文件夾. 5.1 共享權(quán)限設(shè)計(jì)實(shí)現(xiàn)的功能;1)linuxsir部門(mén)具有管理所有SMB空間的權(quán)限;2)sir01到sir04擁有自己的空間,并且除了自身及l(fā)inuxsir有權(quán)限以外,對(duì)其它用戶具有絕對(duì)隱私性;3)linuxsir01到linuxsir04擁有一個(gè)共同的讀寫(xiě)權(quán)限的空間;4) 所有用戶(包括匿名用戶)有一個(gè)有讀權(quán)限的空間,用于資料庫(kù),所以不要求寫(xiě)入數(shù)據(jù)。5)sir01到sir04還有一個(gè)共同的空間,對(duì)sir01到sir04的用戶來(lái)說(shuō)是隱私的,不能讓其它用戶來(lái)訪問(wèn)。6) 還要有一個(gè)空間,讓所有用戶可以寫(xiě)入,能刪除等功能,在權(quán)限上無(wú)限制 ,用于公司

34、所有用戶的臨時(shí)文檔終轉(zhuǎn)等;5.2 在服務(wù)器上創(chuàng)建相應(yīng)的目錄;rootlocalhost # mkdir -p /opt/linuxsirrootlocalhost # cd /opt/linuxsirrootlocalhost linuxsir# mkdir sir01 sir02 sir03 sir04 sirshare sir0104rw sirallrwrootlocalhost linuxsir# lssir01 sir0104rw sir02 sir03 sir04 sirallrw sirshare注:功用如下:/opt/linuxsir 這是管理員目錄,負(fù)責(zé)管理其下所有目錄;/o

35、pt/linuxsir/sir01 是sir01的家目錄,用于私用,除了用戶本身和linuxsir以外其它用戶都是不可讀不可寫(xiě);/opt/linuxsir/sir02 是sir02的家目錄,用于私用,除了用戶本身和linuxsir以外其它用戶都是不可讀不可寫(xiě);/opt/linuxsir/sir03 是sir03的家目錄,用于私用,除了用戶本身和linuxsir以外其它用戶都是不可讀不可寫(xiě);/opt/linuxsir/sir04 是sir04的家目錄,用于私用,除了用戶本身和linuxsir以外其它用戶都是不可讀不可寫(xiě);/opt/linuxsir/sirshare 所用用戶(除了linuxsir

36、有權(quán)限寫(xiě)入外)只讀目錄/opt/linuxsir/sir0104rw 是用于sir01到sir04用戶可讀可寫(xiě)共用目錄,但匿名用戶不能讀寫(xiě);/opt/linuxsir/sirallrw 用于所有用戶(包括匿名用戶)的可讀可寫(xiě);5.3 添加用戶用戶組,設(shè)置相應(yīng)目錄家目錄的權(quán)限;5.3.1 添加用戶組;rootlocalhost # /usr/sbin/groupadd linuxsirrootlocalhost # /usr/sbin/groupadd sir01rootlocalhost # /usr/sbin/groupadd sir02rootlocalhost # /usr/sbin/g

37、roupadd sir03rootlocalhost # /usr/sbin/groupadd sir04rootlocalhost # /usr/sbin/groupadd sir01045.3.2 添加用戶;rootcuc03 # adduser -g sir01 -G sir0104 -d /opt/linuxsir/sir01 -s /sbin/nologin sir01rootcuc03 # adduser -g sir02 -G sir0104 -d /opt/linuxsir/sir02 -s /sbin/nologin sir02rootcuc03 # adduser -g s

38、ir03 -G sir0104 -d /opt/linuxsir/sir03 -s /sbin/nologin sir03rootcuc03 # adduser -g sir04 -G sir0104 -d /opt/linuxsir/sir04 -s /sbin/nologin sir04rootcuc03 # adduser -g linuxsir -d /opt/linuxsir -G linuxsir,sir01,sir02,sir03,sir04,sir0104 -d /opt/linuxsir -s /sbin/nologin linuxsir為什么這樣添加用戶?請(qǐng)參考: HYPE

39、RLINK /main/?q=node/196 Linux 文件和目錄的屬性 HYPERLINK /main/?q=node/106 Linux 用戶管理工具介紹當(dāng)然我們還得學(xué)會(huì)查看用戶信息的工具用法,比如 用finger和id來(lái)查看用戶信息,主要是看用戶是否添加正確;比如;請(qǐng)參考 HYPERLINK /main/?q=node/105 Linux 用戶(User)查詢篇rootlocalhost # id linuxsirrootlocalhost # finger linuxsir5.3.3 添加samba用戶,并設(shè)置密碼;我們用的方法是先添加用戶,但添加的這些用戶都是虛擬用戶,因?yàn)檫@些用

40、戶是不能通過(guò)SHELL登錄系統(tǒng)的;另外值得注意的是系統(tǒng)用戶密碼和 Samba用戶的密碼是不同的。如果您設(shè)置了系統(tǒng)用戶能登入SHELL,可以設(shè)置用戶的Samba密碼和系統(tǒng)用戶通過(guò)SHELL登錄的密碼不同。我們通過(guò)smbpasswd 來(lái)添加Samba用戶,并設(shè)置密碼。原理是通過(guò)讀取/etc/passwd文件中存在的用戶名。rootlocalhost sir01# smbpasswd -a linuxsirNew SMB password: 注:在這里添加Samba用戶linuxsir的密碼;Retype new SMB password: 注:再輸入一次;用同樣的方法來(lái)添加 sir01、sir02

41、、sir03、sir04的密碼;5.3.4 配置相關(guān)目錄的權(quán)限和歸屬;rootcuc03 # chmod 755 /opt/linuxrootcuc03 # chown linuxsir:linuxsir /opt/linuxsirrootcuc03 # cd /opt/linuxsirrootcuc03 # chmod 2770 sir0rootcuc03 # chown sir01.linuxsir sir01rootcuc03 # chown sir02.linuxsir sir02rootcuc03 # chown sir03.linuxsir sir03rootcuc03 # cho

42、wn sir04.linuxsir sir04rootcuc03 # chown linuxsir.sir0104 sir0104rwrootcuc03 # chown linuxsir.linuxsir sirsharerootcuc03 # chmod 755 sirsharerootcuc03 # chown linuxsir:linuxsir sirallrwrootcuc03 # chmod 3777 sirallrw5.4 修改Samba配置文件 smb.conf;配置文件如下,修改/etc/samba/smb.conf后,不要忘記重啟smbd和nmbd服務(wù)器;globalwork

43、group = LINUXSIRnetbios name = LinuxSirserver string = Linux Samba Test Serversecurity = sharelinuxsir comment = linuxsiradmin path = /opt/linuxsir/ create mask = 0664#create mask是用戶創(chuàng)建文件時(shí)的權(quán)限掩碼;對(duì)用戶來(lái)可讀可寫(xiě),對(duì)用戶組可讀可寫(xiě),對(duì)其它用戶可讀; directory mask = 0775#directory mask 是用來(lái)設(shè)置用戶創(chuàng)建目錄時(shí)的權(quán)限掩碼,意思是對(duì)于用戶和用戶組可讀可寫(xiě),對(duì)其它用戶可讀可執(zhí)

44、行; writeable = yes valid users = linuxsir browseable = yessirshare path = /opt/linuxsir/sirshare writeable = yes browseable = yes guest ok = yessirallrw path = /opt/linuxsir/sirallrw writeable = yes browseable = yes guest ok = yessir0104rw comment = sir0104rw path = /opt/linuxsir/sir0104rw create ma

45、sk = 0664 directory mask = 0775 writeable = yes valid users = linuxsir,sir0104 #sir0104是用戶組; browseable = yessir01 comment = sir01 path = /opt/linuxsir/sir01 create mask = 0664 directory mask = 0775 writeable = yes valid users = sir01,linuxsir browseable = yessir02 comment = sir02 path = /opt/linuxs

46、ir/sir02 create mask = 0664 directory mask = 0775 writeable = yes valid users = sir02,linuxsir browseable = yessir03 comment = sir03 path = /opt/linuxsir/sir03 create mask = 0664 directory mask = 0775 writeable = yes valid users = sir03,linuxsir browseable = yessir04 comment = sir04 path = /opt/linu

47、xsir/sir04 create mask = 0664 directory mask = 0775 writeable = yes valid users = sir04,linuxsir browseable = yes5.5 關(guān)于客戶端訪問(wèn);5.5.1 Windows 訪問(wèn);我們打開(kāi)Windows的IE瀏覽器,用IP地址的訪問(wèn)方式就能訪問(wèn)了,格式為 類(lèi)似的。當(dāng)然也可以把共享文件夾掛在本地使用。比如我們把sir01文件夾掛在本地中,應(yīng)該以sir01用戶來(lái)掛載,掛載流程圖如下;6、更新日志;2006/01/23 v0.1b2006/01/24 v0.2b7、參考文檔; HYPERLINK

48、/samba/docs/man/Samba-HOWTO-Collection t _blank Samba-HOWTO7、相關(guān)文檔; HYPERLINK /main/node/158?q=node/278 t _blank Samba 文件服務(wù)器用戶復(fù)雜權(quán)限模型設(shè)計(jì)和實(shí)現(xiàn) 附錄資料:不需要的可以自行刪除 libxml2應(yīng)用實(shí)例Libxml2 是一個(gè)xml的c語(yǔ)言版的解析器,本來(lái)是為Gnome項(xiàng)目開(kāi)發(fā)的工具,是一個(gè)基于MIT License的免費(fèi)開(kāi)源軟件。它除了支持c語(yǔ)言版以外,還支持c+、PHP、Pascal、Ruby、Tcl等語(yǔ)言的綁定,能在Windows、Linux、Solaris、Mac

49、OsX等平臺(tái)上運(yùn)行。功能還是相當(dāng)強(qiáng)大的,相信滿足一般用戶需求沒(méi)有任何問(wèn)題。二、 Libxml2安裝:一般如果在安裝系統(tǒng)的時(shí)候選中了所有開(kāi)發(fā)庫(kù)和開(kāi)發(fā)工具的話(Fedora Core系列下),應(yīng)該不用安裝,下面介紹一下手動(dòng)安裝: 1) 從xmlsoft站點(diǎn)或ftp()站點(diǎn)下載libxml壓縮包(libxml2-xxxx.tar.gz)2) 對(duì)壓縮包進(jìn)行解壓縮 tar xvzf libxml2-xxxx.tar.gz3) 進(jìn)入解壓縮后的文件夾中運(yùn)行 ./configure -prefix /home/user/myxml/xmlinst(此處為待安裝的路徑)或者直接使用 ./configure ma

50、ke make install 4) 添加路徑 export PATH=/home/user/myxml/xmlinst/bin:$PATH 說(shuō)明:為了結(jié)構(gòu)清晰,最好將libxml2不安裝在解壓目錄中。安裝完成后就可以使用簡(jiǎn)單的代碼解析XML文件,包括本地和遠(yuǎn)程的文件,但是在編碼上有一些問(wèn)題。Libxml默認(rèn)只支持UTF8的編碼,無(wú)論輸入輸出都是UTF-8,所以如果你解析完一個(gè)XML得到的結(jié)果都是UTF8的,如果需要輸出GB2312或者其它編碼,需要ICONV來(lái)做轉(zhuǎn)碼(生成UTF8編碼的文件也可以用它做),如果系統(tǒng)中沒(méi)有安裝iconv的話,需要安裝libiconv。 1) 下載libiconv

51、壓縮包(例如libiconv-1.11.tar.gz) 2) 對(duì)壓縮包進(jìn)行解壓縮tar xvzf libiconv-1.11.tar.gz 3) 進(jìn)入解壓縮后的文件夾中運(yùn)行 ./configure make make install三、關(guān)于XML:在開(kāi)始研究 Libxml2 庫(kù)之前,先了解一下XML的相關(guān)基礎(chǔ)。XML 是一種基于文本的格式,它可用來(lái)創(chuàng)建能夠通過(guò)各種語(yǔ)言和平臺(tái)訪問(wèn)的結(jié)構(gòu)化數(shù)據(jù)。它包括一系列類(lèi)似 HTML 的標(biāo)記,并以樹(shù)型結(jié)構(gòu)來(lái)對(duì)這些標(biāo)記進(jìn)行排列。例如,可參見(jiàn)清單 1 中介紹的簡(jiǎn)單文檔。為了更清楚地顯示 XML 的一般概念,下面是一個(gè)簡(jiǎn)化的XML文件。清單 1. 一個(gè)簡(jiǎn)單的 XML

52、 文件 root delete 10清單 1 中的第一行是 XML 聲明,它告訴負(fù)責(zé)處理 XML 的應(yīng)用程序,即解析器,將要處理的 XML 的版本。大部分的文件使用版本 1.0 編寫(xiě),但也有少量的版本 1.1 的文件。它還定義了所使用的編碼。大部分文件使用 UTF-8,但是,XML 設(shè)計(jì)用來(lái)集成各種語(yǔ)言中的數(shù)據(jù),包括那些不使用英語(yǔ)字母的語(yǔ)言。接下來(lái)出現(xiàn)的是元素。一個(gè)元素以開(kāi)始標(biāo)記 開(kāi)始(如 ),并以結(jié)束標(biāo)記 結(jié)束(如 ),其中使用斜線 (/) 來(lái)區(qū)別于開(kāi)始標(biāo)記。元素是 Node 的一種類(lèi)型。XML 文檔對(duì)象模型 (DOM) 定義了幾種不同的 Nodes 類(lèi)型,包括:Elements(如 fil

53、es 或者 age)Attributes(如 units)Text(如 root 或者 10)元素可以具有子節(jié)點(diǎn)。例如,age 元素有一個(gè)子元素,即文本節(jié)點(diǎn) 10。XML 解析器可以利用這種父子結(jié)構(gòu)來(lái)遍歷文檔,甚至修改文檔的結(jié)構(gòu)或內(nèi)容。LibXML2 是這樣的解析器中的其中一種,并且文中的示例應(yīng)用程序正是使用這種結(jié)構(gòu)來(lái)實(shí)現(xiàn)該目的。對(duì)于各種不同的環(huán)境,有許多不同的解析器和庫(kù)。LibXML2 是用于 UNIX 環(huán)境的解析器和庫(kù)中最好的一種,并且經(jīng)過(guò)擴(kuò)展,它提供了對(duì)幾種腳本語(yǔ)言的支持,如 Perl 和 Python。四、Libxml2中的數(shù)據(jù)類(lèi)型和函數(shù)一個(gè)函數(shù)庫(kù)中可能有幾百種數(shù)據(jù)類(lèi)型以及幾千個(gè)函數(shù),

54、但是記住大師的話,90%的功能都是由30%的內(nèi)容提供的。對(duì)于libxml2,我認(rèn)為搞懂以下的數(shù)據(jù)類(lèi)型和函數(shù)就足夠了。1)內(nèi)部字符類(lèi)型xmlCharxmlChar是Libxml2中的字符類(lèi)型,庫(kù)中所有字符、字符串都是基于這個(gè)數(shù)據(jù)類(lèi)型。事實(shí)上它的定義是:xmlstring.htypedef unsigned char xmlChar;使用unsigned char作為內(nèi)部字符格式是考慮到它能很好適應(yīng)UTF-8編碼,而UTF-8編碼正是libxml2的內(nèi)部編碼,其它格式的編碼要轉(zhuǎn)換為這個(gè)編碼才能在libxml2中使用。還經(jīng)常可以看到使用xmlChar*作為字符串類(lèi)型,很多函數(shù)會(huì)返回一個(gè)動(dòng)態(tài)分配內(nèi)存的

55、xmlChar*變量,使用這樣的函數(shù)時(shí)記得要手動(dòng)刪除內(nèi)存。2) xmlChar相關(guān)函數(shù)如同標(biāo)準(zhǔn)c中的char類(lèi)型一樣,xmlChar也有動(dòng)態(tài)內(nèi)存分配、字符串操作等相關(guān)函數(shù)。例如xmlMalloc是動(dòng)態(tài)分配內(nèi)存的函數(shù);xmlFree是配套的釋放內(nèi)存函數(shù);xmlStrcmp是字符串比較函數(shù)等等?;旧蟲(chóng)mlChar字符串相關(guān)函數(shù)都在xmlstring.h中定義;而動(dòng)態(tài)內(nèi)存分配函數(shù)在xmlmemory.h中定義。3)xmlChar*與其它類(lèi)型之間的轉(zhuǎn)換另外要注意,因?yàn)榭偸且趚mlChar*和char*之間進(jìn)行類(lèi)型轉(zhuǎn)換,所以定義了一個(gè)宏BAD_CAST,其定義如下:xmlstring.h#defin

56、e BAD_CAST (xmlChar *)原則上來(lái)說(shuō),unsigned char和char之間進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換是沒(méi)有問(wèn)題的。4)文檔類(lèi)型xmlDoc、指針xmlDocPtrxmlDoc是一個(gè)struct,保存了一個(gè)xml的相關(guān)信息,例如文件名、文檔類(lèi)型、子節(jié)點(diǎn)等等;xmlDocPtr等于xmlDoc*,它搞成這個(gè)樣子總讓人以為是智能指針,其實(shí)不是,要手動(dòng)刪除的。xmlNewDoc函數(shù)創(chuàng)建一個(gè)新的文檔指針。xmlParseFile函數(shù)以默認(rèn)方式讀入一個(gè)UTF-8格式的文檔,并返回文檔指針。xmlReadFile函數(shù)讀入一個(gè)帶有某種編碼的xml文檔,并返回文檔指針;細(xì)節(jié)見(jiàn)libxml2參考手冊(cè)。

57、xmlFreeDoc釋放文檔指針。特別注意,當(dāng)你調(diào)用xmlFreeDoc時(shí),該文檔所有包含的節(jié)點(diǎn)內(nèi)存都被釋放,所以一般來(lái)說(shuō)不需要手動(dòng)調(diào)用xmlFreeNode或者xmlFreeNodeList來(lái)釋放動(dòng)態(tài)分配的節(jié)點(diǎn)內(nèi)存,除非你把該節(jié)點(diǎn)從文檔中移除了。一般來(lái)說(shuō),一個(gè)文檔中所有節(jié)點(diǎn)都應(yīng)該動(dòng)態(tài)分配,然后加入文檔,最后調(diào)用xmlFreeDoc一次釋放所有節(jié)點(diǎn)申請(qǐng)的動(dòng)態(tài)內(nèi)存,這也是為什么我們很少看見(jiàn)xmlNodeFree的原因。xmlSaveFile將文檔以默認(rèn)方式存入一個(gè)文件。xmlSaveFormatFileEnc可將文檔以某種編碼/格式存入一個(gè)文件中。5)節(jié)點(diǎn)類(lèi)型xmlNode、指針xmlNodeP

58、tr節(jié)點(diǎn)應(yīng)該是xml中最重要的元素了,xmlNode代表了xml文檔中的一個(gè)節(jié)點(diǎn),實(shí)現(xiàn)為一個(gè)struct,內(nèi)容很豐富:tree.htypedef struct _xmlNode xmlNode;typedef xmlNode *xmlNodePtr;struct _xmlNode void *_private;/* application data */ xmlElementType type; /* type number, must be second ! */ const xmlChar *name; /* the name of the node, or the entity */ s

59、truct _xmlNode *children;/* parent-childs link */ struct _xmlNode *last; /* last child link */ struct _xmlNode *parent;/* child-parent link */ struct _xmlNode *next; /* next sibling link*/ struct _xmlNode *prev; /* previous sibling link*/ struct _xmlDoc*doc;/* the containing document */ /* End of co

60、mmon part */ xmlNs *ns; /* pointer to the associated namespace */ xmlChar *content; /* the content */ struct _xmlAttr *properties;/* properties list */ xmlNs *nsDef; /* namespace definitions on this node */ void *psvi;/* for type/PSVI informations */ unsigned short line; /* line number */ unsigned s

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論