1. 程式人生 > 實用技巧 >linux命令:samb檔案共享伺服器配置

linux命令:samb檔案共享伺服器配置


為了實現Windows主機與Linux伺服器之間的資源共享,Linux作業系統提供了Samba服務,Samba服務為兩種不同的作業系統架起了一座橋樑,使Linux系統和Windows系統之間能夠實現互相通訊,為廣泛的Linux愛好者提供了極大方便。本文簡要介紹如何在Linux作業系統上搭建Samba伺服器和簡單配置。

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 -e 將兩個包解除安裝掉。對於samba-common-3.0.33-3.7.el5,因為與其它rpm包之間存在依賴關係,所以必須加引數-f和--nodeps,-f是指強制,--nodeps是指不檢查依賴關係,具體完整命令為:

rpm -e samba-common-3.0.33-3.7.el5 -f --nodeps

rpm -e samba-client-3.0.33-3.7.el5 -f --nodeps

3、安裝Samba4和samba4-client

用以下命令安裝:

[[email protected] ~]#

yum install samba4

[[email protected] ~]#yum install samba4-winbind

[[email protected] ~]#yum install samba4-client

[[email protected] ~]# yum install samba4-devel

安裝完成後,使用命令rpm -qa | grep samba進行查詢,發現搭建samba伺服器所依賴的所有伺服器都已經安裝好了即可。

4、配置smb.conf檔案

Samba的配置檔案一般就放在/etc/samba目錄中,主配置檔名為smb.conf,檔案中記錄著大量的規則和共享資訊,所以是samba服務非常重要的核心配置檔案,完成samba伺服器搭建的大部分主要配置都在該檔案中進行。

Samba伺服器的工作原理是:客戶端向Samba伺服器發起請求,請求訪問共享目錄,Samba伺服器接收請求,查詢smb.conf檔案,檢視共享目錄是否存在,以及來訪者的訪問許可權,如果來訪者具有相應的許可權,則允許客戶端訪問,最後將訪問過程中系統的資訊以及採集的使用者訪問行為資訊存放在日誌檔案中。


例項操作:如何通過samba共享linux檔案目錄:


第一步:修改配置檔案

首先備份一下samba的配置檔案

cd /etc/samba

cpsmb.conf smb.confbak

然後重新建立一個smb.conf檔案

vim smb.conf

然後我們把這段寫入smb.conf中

[global] #全域性設定

workgroup = WORKGROUP

netbios name = MYSERVER
server string = Samba Server TestServer
security = share

[shared_name] #共享名稱

comment = #註釋資訊

path = #共享目錄的路徑

browseable = #是否可以瀏覽(yes|no)

read only = #是否只讀(yes|no)

writable = #是否可寫(yes|no)

write list = user1,user2,@group,+group #定義可寫列表,可以是使用者或者組

valid users = #定義白名單

invalid users = #定義黑名單


註解:

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

workgroup 就是Windows中顯示的工作組;在這裡我設定的是LINUXSIR (用大寫);
netbios name 就是在Windows中顯示出來的計算機名;
server string 就是Samba伺服器說明,可以自己來定義;這個不是什麼重要的;
security 這是驗證和登入方式,這裡我們用了share ;驗證方式有好多種,這是其中一種;另外一種常用的是user的驗證方式;如果用share呢,就是不用設定使用者和密碼了;

[shared_name]這個在Windows中顯示出來是共享的目錄;
path = 可以設定要共享的目錄放在哪裡;
writeable = 是否可寫,這裡我設定為可寫;
browseable = 是否可以瀏覽,可以;可以瀏覽意味著,我們在工作組下能看到共享資料夾。如果您不想顯示出來,那就設定為 browseable = no

guest ok = 匿名使用者是否允許以guest身份是登入;


第二步:建立目錄並設定好許可權

[[email protected] samba]# mkdir /share/test -pv #遞迴建立目錄

mkdir: 已建立目錄 “/share”

mkdir: 已建立目錄 “/share/test”

修改samba配置檔案,在最後面增加以下幾行:

[[email protected] samba]#vim smb.conf

[tools]

comment = Share Testing

path = /share/test

public = yes

writable = yes

[[email protected]samba]# testparm #檢視測試配置文件是否有問題

Load smb config files from /etc/samba/smb.conf

Processing section "[homes]"

Processing section "[printers]"

Processing section "[tools]"

Loaded services file OK.

Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions


[global]

server string = Samba Server Version %v

passdb backend = tdbsam

log file = /var/log/samba/%m.log

max log size = 50

cups options = raw


[homes]

comment = Home Directories

read only = No

browseable = No


[printers]

comment = All Printers

path = /var/spool/samba

printable = Yes

browseable = No


[tools]

comment = Share Testing

path = /share/test

read only = No

guest ok = Yes

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

[[email protected]samba]# service smb start #啟動samba服務

啟動 SMB 服務: [確定]

啟動 NMB 服務: [確定]

[[email protected]samba]# service nmb start #啟動nmbd服務

啟動 NMB 服務: [確定]


第四步:把相關需要訪問共享的使用者設定為samba服務使用者

[[email protected]samba]# smbpasswd -a hadoop #把系統已存在的使用者hadoop設定為samba服務的使用者

New SMB password: #設定訪問共享的密碼,此密碼最好跟系統使用者的登入密碼不同

Retype new SMB password:

Added user hadoop. #新增成功

[[email protected]samba]#ll

總計 52

-rw-r--r-- 1 root root 20 2009-05-29 lmhosts

-rw------- 1 root root 4096 03-22 10:14 passdb.tdb #已經生成了密碼資料庫檔案

-rw------- 1 root root 8192 03-22 10:14 secrets.tdb #已經生成了安全金鑰資料庫檔案

-rw-r--r-- 1 root root 9733 03-22 09:10 smb.back

-rw-r--r-- 1 root root 9839 03-22 10:09 smb.conf

-rw-r--r-- 1 root root 97 2009-05-29 smbusers

通過windows客戶端訪問測試結果如下,成功訪問共享目錄:

wKioL1jR4ufCwvpwAAEJP7zBxYY290.jpg

由於tools目錄暫時沒有給hadoop使用者寫許可權,所以暫時無法再該目錄下新建檔案,需先修改tools目錄的訪問許可權:

[[email protected] samba]# setfacl -m u:hadoop:rwx /share/test/ #給使用者hadoop設定facl許可權,使得對test目錄具有讀寫執行許可權。


擴充套件:

linux系統如何訪問windows共享檔案

smbclient #訪問windows共享命令

-L NetBIOS_Name #接主機名或IP地址

-U username #接訪問共享的使用者名稱

[[email protected] ~]# smbclient -L 10.109.134.247 -U j0701130

Enter j0701130's password:

Domain=[KS01-IT-521] OS=[Windows 10 Pro 10586] Server=[Windows 10 Pro 6.3]


Sharename Type Comment

--------- ---- -------

IPC$ IPC 遠端 IPC

ISO Disk

oracle Disk

工具 Disk

session request to 10.109.134.247 failed (Called name not present)

session request to 10 failed (Called name not present)

session request to *SMBSERVER failed (Called name not present)

NetBIOS over TCP disabled -- no workgroup available

[[email protected] ~]#smbclient //10.109.134.247/iso -U j0701130

#以j701130使用者訪問10.109.134.247的共享目錄iso

Enter j0701130's password:

Domain=[KS01-IT-521] OS=[Windows 10 Pro 10586] Server=[Windows 10 Pro 6.3]

smb: \> #登入成功


[[email protected] ~]# yum install samba4-swat #安裝web介面控制samb伺服器

Loaded plugins: fastestmirror, security

Loading mirror speeds from cached hostfile

Setting up Install Process

Resolving Dependencies

--> Running transaction check

---> Package samba4-swat.i686 0:4.0.0-58.el6.rc4 will be installed

--> Processing Dependency: xinetd for package: samba4-swat-4.0.0-58.el6.rc4.i686

--> Running transaction check

---> Package xinetd.i686 2:2.3.14-39.el6_4 will be installed

--> Finished Dependency Resolution

.........

Installed:

samba4-swat.i686 0:4.0.0-58.el6.rc4

Dependency Installed:

xinetd.i686 2:2.3.14-39.el6_4


[[email protected] ~]#service xinetd start

正在啟動 xinetd: [確定]

[[email protected] ~]#chkconfig swat on

[[email protected] ~]# chkconfig --list

........

svnserve 0:關閉 1:關閉 2:關閉 3:關閉 4:關閉 5:關閉 6:關閉

sysstat 0:關閉 1:啟用 2:啟用 3:啟用 4:啟用 5:啟用 6:關閉

udev-post 0:關閉 1:啟用 2:啟用 3:啟用 4:啟用 5:啟用 6:關閉

winbind 0:關閉 1:關閉 2:關閉 3:關閉 4:關閉 5:關閉 6:關閉

xinetd 0:關閉 1:關閉 2:關閉 3:啟用 4:啟用 5:啟用 6:關閉

ypbind 0:關閉 1:關閉 2:關閉 3:關閉 4:關閉 5:關閉 6:關閉


基於 xinetd 的服務:

chargen-dgram: 關閉

chargen-stream: 關閉

daytime-dgram: 關閉

daytime-stream: 關閉

discard-dgram: 關閉

discard-stream: 關閉

echo-dgram: 關閉

echo-stream: 關閉

rsync: 關閉

swat: 啟用

tcpmux-server: 關閉

time-dgram: 關閉

time-stream: 關閉

[[email protected] ~]#service xinetd restart

停止 xinetd: [確定]

正在啟動 xinetd: [確定]

配置檔案路徑為:/etc/xinetd.d/swat

wKioL1jTHfrhHDD9AAMD0jA8N08632.jpg

通過客戶端訪問web介面的samb服務:

wKiom1jTL0-gjMspAAaZNpq9yxQ951.jpg



轉載於:https://blog.51cto.com/woyaoxuelinux/1909138