很多Windows下的應用需要訪問和監控Linux下的目錄,本文便介紹如何實現。
只需要搭建配置samba服務,即可將Linux下的目錄變得如同Windows下共享可寫。
1、服務查詢
默認情況下,Linux系統在默認安裝中已經安裝了Samba服務包的一部分 ,為了對整個過程有一個完整的了解,在此先將這部分卸載掉。使用命令
rpm -qa | grep samba ,默認情況下可以查詢到兩個已經存在的包:
samba-client-3.0.33-3.7.el5
samba-common-3.0.33-3.7.el5
2、安裝Samba 服務器
用以下命令安裝:
rpm -ivh samba-3.0.33-3.29.el5_6.2.i386.rpm -f --nodeps
安裝完成后,使用命令rpm -qa | grep samba進行查詢,發現搭建samba服務器所依賴的所有服務器都已經安裝好了即可。
如未成功,一般需要先安裝prel-convert-ASN1-0.20-1.1.noarch.rpm,此文件在linux安裝光盤中有。
3、配置smb.conf文件
Samba的配置文件一般就放在/etc/samba目錄中,主配置文件名為smb.conf,文件中記錄著大量的規則和共享信息,所以是samba服務非常重要的核心配置文件,完成samba服務器搭建的大部
分主要配置都在該文件中進行。
Samba服務器的工作原理是:客戶端向Samba服務器發起請求,請求訪問共享目錄,Samba服務器接收請求,查詢smb.conf文件,查看共享目錄是否存在,以及來訪者的訪問權限,如果來訪者
具有相應的權限,則允許客戶端訪問,最后將訪問過程中系統的信息以及采集的用戶訪問行為信息存放在日志文件中。
第一步:修改配置文件
首先備份一下samba的配置文件
cd /etc/samba
mv smb.conf smb.confbak
然后重新創建一個smb.conf文件
touch smb.conf
然后我們把這段寫入smb.conf中
[global]
workgroup = LinuxGroup
netbios name = Linux
server string = Linux Samba Server TestServer
security = share
[linuxsir]
path = /opt/share
writeable = yes
browseable = yes
guest ok = yes
注解:
[global]這段是全局配置,是必段寫的。其中有如下的幾行;
workgroup 就是Windows中顯示的工作組;在這里我設置的是LinuxGroup (用大寫);
netbios name 就是在Windows中顯示出來的計算機名;
server string 就是Samba服務器說明,可以自己來定義;這個不是什么重要的;
security 這是驗證和登錄方式,這里我們用了share ;驗證方式有好多種,這是其中一種;另外一種常用的是user的驗證方式;如果用share呢,就是不用設置用戶和密碼了;
[share] 這個在Windows中顯示出來是共享的目錄;
path = 可以設置要共享的目錄放在哪里;
writeable 是否可寫,這里我設置為可寫;
browseable 是否可以瀏覽,可以;可以瀏覽意味著,我們在工作組下能看到共享文件夾。如果您不想顯示出來,那就設置為 browseable=no
guest ok 匿名用戶以guest身份是登錄;
第二步:建立相應目錄并授權;
[root@localhost ~]# mkdir -p /opt/share
[root@localhost ~]# id nobody
uid=99(nobody) gid=99(nobody) groups=99(nobody)
[root@localhost ~]# chown -R nobody:nobody /opt/share
[root@localhost ~]# setsebool samba_export_all_rw on
注釋:
關于授權nobody,我們先用id命令查看了nobody用戶的信息,發現他的用戶組也是nobody,我們要以這個為準。有些系統nobody用戶組并非是nobody ;
setsebool samba_export_all_rw on很關鍵。
第三步:啟動smbd和nmbd服務器;
[root@localhost ~]/etc/rc.d/init.d/smb start
這樣就可以如同Windows共享目錄一樣瀏覽linux下的目錄了。
在.Net里面可以使用System.IO讀寫該目錄的文件,甚至可以用filesystemwatcher組件監控該目錄。
文章列表