亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網絡,我們將竭誠為您提供優質的服務! 誠征網絡推廣 | 網站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業務咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當前位置:首頁 >> 技術文章 >> 文章瀏覽
技術文章

Linux與Windows共享建最簡Samba

添加時間:2014-5-20 17:07:48  添加: 思海網絡 

架設Samba 服務器的前提:

Linux是一個多用戶的操作系統,對任何服務器的架設與都用戶、用戶組及權限相關, 這是操作的基礎。Samba服務器也不例外,對這些知識的掌握也是極為重要的。在Windows系統上雖然也能架共享文件服務器,但它的權限控制實在令人 不敢恭維。如果我們用Windows系統來架網絡共享文件系統,就是點鼠標也能把我們點迷糊了。但在Linux中,我們可以輕松的改一改配置文件,不到幾 分鐘就能建好自己的Samba服務器。哪個更容易,只有你知道;

對于Samba服務器的架設,有的弟兄簡單的認為,只要把改一下配置文件,創建好相應的目錄就行了。其實并不是這樣的,還要深入的工作,比如目錄的權限和歸屬,也就是說能讓哪個用戶和用戶組有讀寫權。只有把配置文件和共享目錄的權限結合起來,才能架好Samba服務器;

下面是常用的基礎知識,我們在本文中所涉及的內容都可以在下面的列表中找到相應的解釋;

0.1 查看文件內容和編輯文件的工具;

《Linux 文件內容查看工具介紹》

《文件編輯器 vi》

0.2 關于文件和目錄相關;

《Linux 文件類型 及文件的擴展名》

《Linux 文件和目錄管理之列出、刪除、復制、移動及改名》

《Linux 文件和目錄的屬性》

《簡述Linux文件搜索》

03 用戶和用戶組相關;

《Linux 用戶(user)和用戶組(group)管理概述》

《用戶(User)和用戶組(Group)配置文件詳解》

《Linux 用戶管理工具介紹》

《Linux 用戶(User)查詢篇》

04 進程管理;

《Linux 進程管理》

1 Samba 簡介

Samba(SMB是其縮寫) 是一個網絡服務器,用于Linux和Windows共享文件之用;Samba 即可以用于Windows和Linux之間的共享文件,也一樣用于Linux和Linux之間的共享文件;不過對于Linux和Linux之間共享文件有 更好的網絡文件系統NFS,NFS也是需要架設服務器的;

大家知道在Windows 網絡中的每臺機器即可以是文件共享的服務器,也可以同是客戶機;Samba 也一樣能行,比如一臺Linux的機器,如果架了Samba Server 后,它能充當共享服務器,同時也能做為客戶機來訪問其它網絡中的Windows共享文件系統,或其它Linux的Sabmba 服務器;

我們在Windows網絡中,看到共享文件功能知道,我們直接就可以把共享文件夾當做本地硬盤來使用。在Linux的中,就是通過Samba的向網絡中的機器提供共享文件系統,也可以把網絡中其它機器的共享掛載在本地機上使用;這在一定意義上說和FTP是不一樣的。

Samba 用的netbios協議,如果您用Samba 不成功,

Linux與Windows 、Linux 和 Linux

2 Samba 功能和應用范圍

Samba 應該范圍主要是Windows和Linux 系統共存的網絡中使用;如果一個網絡環境都是Linux或Unix類的系統,沒有必要用Samba,應該用NFS更好一點;

那Samba 能為我們提供點什么服務呢?主要是共享文件和共享打印機;

3 Samba 兩個服務器相關啟動程序、客戶端及服務器配置文件等;

3.1 Samba 有兩個服務器,一個是smb,另一個是nmb;

smb 是Samba 的主要啟動服務器,讓其它機器能知道此機器共享了什么;如果不打開nmb服務器的話,只能通過IP來訪問,比如在Windows的IE瀏覽器上打入下面的一條來訪問;

\\192.168.1.5\共享目錄

\\192.168.1.5\opt

而nmb是解析用的,解析了什么呢?就是把這臺Linux機器所共享的工作組及在此工作組下的netbios name解析出來;

一般的情況下,在RPM包的系統,如果是用RPM包安裝的Samba ,一般可以通過如下的方式來啟動Samba服務器;

[root@localhost ~]# /etc/init.d/smb start

啟動 SMB 服務: [ 確定 ]

啟動 NMB 服務: [ 確定 ]

如果停止呢?就在smb后面加stop ;重啟就是restart

[root@localhost ~]# /etc/init.d/smb stop

[root@localhost ~]# /etc/init.d/smb restart

對于所有系統來說,通用的辦法就是直接運行smb 和nmb;當然您要知道smb和nmb所在的目錄才行;如果是自己編譯的Samba ,您應該知道您把Samba放在哪里了;

[root@localhost ~]# /usr/sbin/smbd

[root@localhost ~]# /usr/sbin/nmbd

查看服務器是否運行起來了,則用下面的命令;

[root@localhost ~]# pgrep smbd

[root@localhost ~]# pgrep nmbd

關掉Samba服務器,也可以用下面的辦法,大多是通用的;要root權限來執行;

[root@localhost ~]# pkill smbd

[root@localhost ~]# pkill nmbd

3.2 查看Samba 服務器的端口及防火墻;

查看這個有何用呢?有時你的防火墻可能會把smbd服務器的端口封掉,所以我們應該smbd服務器所占用的端口;下面查看中,我們知道smbd所占用的端口是139和445 ;

[root@localhost ~]# netstat -tlnp |grep smb

tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 10639/smbd

tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 10639/smbd

如果您有防火墻,一定要把這兩個端口打開。如果不知道怎么打開?赡苣愫臀乙粯邮切率,還是把防火墻規則清掉也行;

[root@localhost ~]# iptables -F

[root@localhost ~]# /sbin/iptables -F

3.3、查看Samba 服務器的配置文件;

如果我們是用Linux發行版自帶的Samba軟件包,一般情況下Samba服務器的 配置文件都位于/etc/samba目錄中,服務器的主配置文件是smb.conf;也有有戶配置文件 smbpasswd、smbusers和lmhosts等(最好您查看一下這些文件的內容);還有一個文件是secrets.tdb,這個文件是 Samba 服務器啟動手自動生成的;我們慢慢根據教程的進度來適當地增加這些文件的說明吧;一下子都說出來,感覺內容太多;所以只能一點一點的來了;

 

3.4、Samba 在Linux 中的一些工具(服務器端和客戶端);

smbcacls smbcontrol smbencrypt smbmount smbprint smbstatus smbtree

smbclient smbcquotas smbmnt smbpasswd smbspool smbtar smbumount

smbd nmbd mount

其中服務器端的是smbd、nmbd、smbpasswd ;其它的大多是客戶端;這些并不是都需要一定要精通的,但至少得會用幾個;比如smbmount(也就是mount 加參數的用法),還用smbclient等;

3.5 在Linux 中的常用工具mount(smbmount)和smbclient;Windows查看Linux共享的方法 ;

3.5.1 在Linux系統中查看網絡中Windows共享文件及Linux中的Samba共享文件;

一般的情況下,我們要用到smbclient;常用的用法也無非是下面的;

[root@localhost ~]# smbclient -L //ip地址或計算機名

smbclient 是Samba 的Linux 客戶端,在Linux機器上用來查看服務器上的共享資源,也可以象FTP一樣,用戶可以登錄Samba服務器,也可以上傳put和下載get文件,遺憾的是對中文支持并不友好;

查看服務器上的資源;

smbclient -L //IP [-U 用戶名]

如果您的Samba服務器配置為user模式,就要加 “-U 用戶名“,如果是share模式,省略也可;

比如:

[root@localhost ~]# smbclient -L //192.168.1.3 -U sir01

Password: 請輸入用戶sir01的密碼

如果您是用share模式,就可以不必理會用戶和密碼,直接用;

[root@localhost ~]# smbclient -L //192.168.1.3

Password: 直接按回車

登錄用戶身份Samba服務器共享

以用戶身份登錄共享后,能象FTP用戶一樣,下傳和下載文件;用put表示上傳,用get表示下載;

smbclient //IP地址/共享文件夾 -U 用戶

說明:IP地址大家都知道,你不知道自己的IP地址,可以用/sbin/ifconfig 來查看; 共享文件夾是我們在smb.conf中定義的[共享文件夾],比如[sir01]。-U 用戶名表示Samba 的用戶;

比如:

[root@localhost ~]# smbclient //192.168.1.3/sir01 -U sir01

Password:

Domain=[LINUXSIR] OS=[Unix] Server=[Samba 3.0.21b-2]

smb: \> ls

說明:登錄到Samba服務器上,就可以用smbclient的一些指令,可以象用FTP指令一樣上傳和下載文件;

smbclient 命令說明

命令 說明

?或help [command] 提供關于幫助或某個命令的幫助

![shell command] 執行所用的SHELL命令,或讓用戶進入 SHELL提示符

cd [目錄] 切換到服務器端的指定目錄,如未指定,則 smbclient 返回當前本地目錄

lcd [目錄] 切換到客戶端指定的目錄;

dir 或ls 列出當前目錄下的文件;

exit 或quit 退出smbclient

get file1 file2 從服務器上下載file1,并以文件名file2存在本地機上;如果不想改名,可以把file2省略

mget file1 file2 file3 filen 從服務器上下載多個文件;

md或mkdir 目錄 在服務器上創建目錄

rd或rmdir 目錄 刪除服務器上的目錄

put file1 [file2] 向服務器上傳一個文件file1,傳到服務器上改名為file2;

mput file1 file2 filen 向服務器上傳多個文件

3.5.2 在Windows中訪問Linux Samba服務器共享文件的辦法;

這個簡單吧,在網上領居,查看工作組就能看得到,或者在瀏覽器上輸入如下的

\\ip地址或計算機名

這樣就能看到這個機器上有什么共享的了,點鼠標操作完成;如果訪問不了,不要忘記把Linux的防火墻規劃清掉,或讓相應的端口通過;

3.5.3 在Linux中smbfs文件系統的掛載;

mount 的用法,加載網絡中的共享文件夾到本地機;mount就是用于掛載文件系統的,SMB做為網絡文件系統的一種,也能用mount掛載;smbmount說到底也是用mount的一個變種;

mount 掛載smbfs的用法;

mount -t smbfs -o codepage=cp936,username=用戶名,password=密碼 , -l //ip地址/共享文件夾名 掛載點

mount -t smbfs -o codepage=cp936,username=用戶名,password=密碼 , -l //計算機名/共享文件夾名 掛載點

mount -t smbfs -o codepage=cp936 //ip地址或計算機名/共享文件夾名 掛載點

smbmount的用法:

smbmount -o username=用戶名,password=密碼 , -l //ip地址或計算機名/共享文件夾名 掛載點

smbmount //ip地址或計算機名/共享文件夾名 掛載點

說明:

如果您的服務器是以share共享的,則無需用戶名和密碼就能掛載,如果出現要密碼的提示,直接回車就行;您也可以用smbmount 來掛載,這樣就無需用mount -t smbfs來指定文件系統的類型了;

對于掛載點,我們要自己建立一個文件夾,比如我們可以建在/opt/smbhd,這由您說的算吧;

在mount的命令中,我們發現有這樣的一個參數codepage=cp936,這是服務器端文件系統的編碼的指定,cp936 就是簡體中文,當然您可以用utf8等,嘗試一下吧。

如果您掛載了遠程的smbfs文件系統出現的是簡體中文亂碼,就要考慮掛載時要指定編碼了;

4、由最簡單的一個例子說起,匿名用戶可讀可寫的實現;

第一步: 更改smb.conf

我們來實現一個最簡單的功能,讓所有用戶可以讀寫一個Samba 服務器共享的一個文件夾;我們要改動一下smb.conf ;首先您要備份一下smb.conf文件;

[root@localhost ~]# cd /etc/samba

[root@localhost samba]# mv smb.conf smb.confBAK

然后我們來重新創建一個smb.conf文件;

[root@localhost samba]#touch smb.conf

然后我們把下面這段寫入smb.conf中;

[global]

workgroup = LinuxSir

netbios name = LinuxSir05

server string = Linux Samba Server TestServer

security = share

[linuxsir]

path = /opt/linuxsir

writeable = yes

browseable = yes

guest ok = yes

注解:

[global]這段是全局配置,是必段寫的。其中有如下的幾行;

workgroup 就是Windows中顯示的工作組;在這里我設置的是LINUXSIR (用大寫);

netbios name 就是在Windows中顯示出來的計算機名;

server string 就是Samba服務器說明,可以自己來定義;這個不是什么重要的;

security 這是驗證和登錄方式,這里我們用了share ;驗證方式有好多種,這是其中一種;另外一種常用的是user的驗證方式;如果用share呢,就是不用設置用戶和密碼了;

[linuxsir] 這個在Windows中顯示出來是共享的目錄;

path = 可以設置要共享的目錄放在哪里;

writeable 是否可寫,這里我設置為可寫;

browseable 是否可以瀏覽,可以;可以瀏覽意味著,我們在工作組下能看到共享文件夾。如果您不想顯示出來,那就設置為 browseable=no

guest ok 匿名用戶以guest身份是登錄;

第二步:建立相應目錄并授權;

[root@localhost ~]# mkdir -p /opt/linuxsir

[root@localhost ~]# id nobody

uid=99(nobody) gid=99(nobody) groups=99(nobody)

[root@localhost ~]# chown -R nobody:nobody /opt/linuxsir

注釋:關于授權nobody,我們先用id命令查看了nobody用戶的信息,發現他的用戶組也是nobody,我們要以這個為準。有些系統nobody用戶組并非是nobody ;

第三步:啟動smbd和nmbd服務器;

[root@localhost ~]# smbd

[root@localhost ~]# nmbd

第四步:查看smbd進程,確認Samba 服務器是否運行起來了;

[root@localhost ~]# pgrep smbd

13564

13568

第五步:訪問Samba 服務器的共享;

在Linux 中您可以用下面的命令來訪問;

[root@localhost ~]# smbclient -L //LinuxSir05

Password: 注:直接按回車

在Windows中,您可以用下面的辦法來訪問;

\\LinuxSir05\

 

5、復雜一點的用戶共享模型(適合10人左右的小型企業);

比如一個公司有五個部門,分別是 linuxsir,sir01,sir02,sir03,sir04。我們想為這家公司設計一個比較安全的共享文件模型。每個用戶都有自己的網絡磁 盤,sir01到sir04還有共用的網絡硬盤;所有用戶(包括匿名用戶)有一個共享資料庫,此庫為了安全是只讀的;所有的用戶(包括匿名用戶)要有一個 臨時文件終轉的文件夾... ....

5.1 共享權限設計實現的功能;

1)linuxsir部門具有管理所有SMB空間的權限;

2)sir01到sir04擁有自己的空間,并且除了自身及linuxsir有權限以外,對其它用戶具有絕對隱私性;

3)linuxsir01到linuxsir04擁有一個共同的讀寫權限的空間;

4) 所有用戶(包括匿名用戶)有一個有讀權限的空間,用于資料庫,所以不要求寫入數據。

5)sir01到sir04還有一個共同的空間,對sir01到sir04的用戶來說是隱私的,不能讓其它用戶來訪問。

6) 還要有一個空間,讓所有用戶可以寫入,能刪除等功能,在權限上無限制 ,用于公司所有用戶的臨時文檔終轉等;

5.2 在服務器上創建相應的目錄;

[root@localhost ~]# mkdir -p /opt/linuxsir

[root@localhost ~]# cd /opt/linuxsir

[root@localhost linuxsir]# mkdir sir01 sir02 sir03 sir04 sirshare sir0104rw sirallrw

[root@localhost linuxsir]# ls

sir01 sir0104rw sir02 sir03 sir04 sirallrw sirshare

注:功用如下:

/opt/linuxsir 這是管理員目錄,負責管理其下所有目錄;

/opt/linuxsir/sir01 是sir01的家目錄,用于私用,除了用戶本身和linuxsir以外其它用戶都是不可讀不可寫;

/opt/linuxsir/sir02 是sir02的家目錄,用于私用,除了用戶本身和linuxsir以外其它用戶都是不可讀不可寫;

/opt/linuxsir/sir03 是sir03的家目錄,用于私用,除了用戶本身和linuxsir以外其它用戶都是不可讀不可寫;

/opt/linuxsir/sir04 是sir04的家目錄,用于私用,除了用戶本身和linuxsir以外其它用戶都是不可讀不可寫;

/opt/linuxsir/sirshare 所用用戶(除了linuxsir有權限寫入外)只讀目錄

/opt/linuxsir/sir0104rw 是用于sir01到sir04用戶可讀可寫共用目錄,但匿名用戶不能讀寫;

/opt/linuxsir/sirallrw 用于所有用戶(包括匿名用戶)的可讀可寫;

5.3 添加用戶用戶組,設置相應目錄家目錄的權限;

5.3.1 添加用戶組;

[root@localhost ~]# /usr/sbin/groupadd linuxsir

[root@localhost ~]# /usr/sbin/groupadd sir01

[root@localhost ~]# /usr/sbin/groupadd sir02

[root@localhost ~]# /usr/sbin/groupadd sir03

[root@localhost ~]# /usr/sbin/groupadd sir04

[root@localhost ~]# /usr/sbin/groupadd sir0104

5.3.2 添加用戶;

[root@cuc03 ~]# adduser -g sir01 -G sir0104 -d /opt/linuxsir/sir01 -s /sbin/nologin sir01

[root@cuc03 ~]# adduser -g sir02 -G sir0104 -d /opt/linuxsir/sir02 -s /sbin/nologin sir02

[root@cuc03 ~]# adduser -g sir03 -G sir0104 -d /opt/linuxsir/sir03 -s /sbin/nologin sir03

[root@cuc03 ~]# adduser -g sir04 -G sir0104 -d /opt/linuxsir/sir04 -s /sbin/nologin sir04

[root@cuc03 ~]# adduser -g linuxsir -d /opt/linuxsir -G linuxsir,sir01,sir02,sir03,sir04,sir0104 -d /opt/linuxsir -s /sbin/nologin linuxsir

為什么這樣添加用戶?請參考:

《Linux 文件和目錄的屬性》

《Linux 用戶管理工具介紹》

當然我們還得學會查看用戶信息的工具用法,比如 用finger和id來查看用戶信息,主要是看用戶是否添加正確;比如;請參考《Linux 用戶(User)查詢篇》

[root@localhost ~]# id linuxsir

[root@localhost ~]# finger linuxsir

5.3.3 添加samba用戶,并設置密碼;

我們用的方法是先添加用戶,但添加的這些用戶都是虛擬用戶,因為這些用戶是不能通過 SHELL登錄系統的;另外值得注意的是系統用戶密碼和Samba用戶的密碼是不同的。如果您設置了系統用戶能登入SHELL,可以設置用戶的Samba 密碼和系統用戶通過SHELL登錄的密碼不同。

我們通過smbpasswd 來添加Samba用戶,并設置密碼。原理是通過讀取/etc/passwd文件中存在的用戶名。

[root@localhost sir01]# smbpasswd -a linuxsir

New SMB password: 注:在這里添加Samba用戶linuxsir的密碼;

Retype new SMB password: 注:再輸入一次;

用同樣的方法來添加 sir01、sir02、sir03、sir04的密碼;

5.3.4 配置相關目錄的權限和歸屬;

[root@cuc03 ~]# chmod 755 /opt/linux

[root@cuc03 ~]# chown linuxsir:linuxsir /opt/linuxsir

[root@cuc03 ~]# cd /opt/linuxsir

[root@cuc03 ~]# chmod 2770 sir0*

[root@cuc03 ~]# chown sir01.linuxsir sir01

[root@cuc03 ~]# chown sir02.linuxsir sir02

[root@cuc03 ~]# chown sir03.linuxsir sir03

[root@cuc03 ~]# chown sir04.linuxsir sir04

[root@cuc03 ~]# chown linuxsir.sir0104 sir0104rw

[root@cuc03 ~]# chown linuxsir.linuxsir sirshare

[root@cuc03 ~]# chmod 755 sirshare

[root@cuc03 ~]# chown linuxsir:linuxsir sirallrw

[root@cuc03 ~]# chmod 3777 sirallrw

5.4 修改Samba配置文件 smb.conf;

配置文件如下,修改/etc/samba/smb.conf后,不要忘記重啟smbd和nmbd服務器;

[global]

workgroup = LINUXSIR

netbios name = LinuxSir

server string = Linux Samba Test Server

security = share

[linuxsir]

comment = linuxsiradmin

path = /opt/linuxsir/

create mask = 0664

#create mask是用戶創建文件時的權限掩碼;對用戶來可讀可寫,對用戶組可讀可寫,對其它用戶可讀;

directory mask = 0775

#directory mask 是用來設置用戶創建目錄時的權限掩碼,意思是對于用戶和用戶組可讀可寫,對其它用戶可讀可執行;

writeable = yes

valid users = linuxsir

browseable = yes

[sirshare]

path = /opt/linuxsir/sirshare

writeable = yes

browseable = yes

guest ok = yes

[sirallrw]

path = /opt/linuxsir/sirallrw

writeable = yes

browseable = yes

guest ok = yes

[sir0104rw]

comment = sir0104rw

path = /opt/linuxsir/sir0104rw

create mask = 0664

directory mask = 0775

writeable = yes

valid users = linuxsir,@sir0104

#@sir0104是用戶組;

browseable = yes

[sir01]

comment = sir01

path = /opt/linuxsir/sir01

create mask = 0664

directory mask = 0775

writeable = yes

valid users = sir01,@linuxsir

browseable = yes

[sir02]

comment = sir02

path = /opt/linuxsir/sir02

create mask = 0664

directory mask = 0775

writeable = yes

valid users = sir02,@linuxsir

browseable = yes

[sir03]

comment = sir03

path = /opt/linuxsir/sir03

create mask = 0664

directory mask = 0775

writeable = yes

valid users = sir03,@linuxsir

browseable = yes

[sir04]

comment = sir04

path = /opt/linuxsir/sir04

create mask = 0664

directory mask = 0775

writeable = yes

valid users = sir04,@linuxsir

browseable = yes

5.5 關于客戶端訪問;

5.5.1 Windows 訪問;

我們打開Windows的IE瀏覽器,用IP地址的訪問方式就能訪問了,格式為 \\192.168.1.3 類似的。當然也可以把共享文件夾掛在本地使用。比如我們把sir01文件夾掛在本地中,應該以sir01用戶來掛載。

關鍵字:Linux、服務器、共享

分享到:

頂部 】 【 關閉
版權所有:佛山思海電腦網絡有限公司 ©1998-2024 All Rights Reserved.
聯系電話:(0757)22630313、22633833
中華人民共和國增值電信業務經營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網安 舉報有獎  警警  手機打開網站