天天看點

Linux下簡單配置SAMBA服務,實作與Windows系統檔案共享.

首先你的LINUX系統上必須安裝samba服務

執行下面的指令,進行檢查:

# rpm –qa | grep samba

如果螢幕顯示以下資訊,則說明已經安裝了Samba服務。

samba-common-2.2.1a-4

samba-swat-2.2.1a-4

samba-2.2.1a-4

samba-client-2.2.1a-4

如果沒有安裝,請從安裝CD光牒安裝。執行下面的指令:

# mount /dev/cdrom /mnt/cdrom

# cd /mnt/cdrom/

# rpm -ivh samba-common-2.2.1a-4.i386.rpm

# rpm -ivh samba -2.2.1a-4.i386.rpm

# rpm -ivh samba –clinet-2.2.1a-4.i386.rpm

完成安裝後進入samba配置檔案 /etc/samba/smb.con 進行修改 ,以本機共享 /var/rhcepkg 檔案為例

通常修改如下的參數:

#修改檔案夾權限,定義組和其他權限為RWX

#chmod 777 /var/rhcepkg

#設定samba伺服器所在的工作組為mygroup

workgroup=mygroup

#設定Samba伺服器的主機名。

server string = Samba Server

#設定hosts allow = 127. 192.168.1. (這裡隻取IP位址的前三位,隻要指定IP網段就行了)

#設定Samba的安全等級,将預設的user改成share,這樣将不需要密碼驗證,即可登入Samba主機。security=share

#設定 /var/rhcepkg 作為共享目錄。該共享目錄權限完全開放(如果是隻讓其他使用者讀,不能寫,則将改成read only=yes)。

[rhcepkg]

comment=rhcepkg

path= /var/rhcepkg

read only=no

browseable=yes

writeable=yes

public=yes

……

啟動Samba服務

# /etc/rc.d/init.d/smb start

如果在修改完相應參數後,需要重新啟用,則執行下面的指令:

# /etc/rc.d/init.d/smb restart

關閉SElinux開關為permisive ,(如果是enforcing,會導緻權限問題而無法通路)

#setenforce 0 (這裡隻是在記憶體中改變SELINUX的開關,如果需要下次重新開機也改變,需要修改 /etc/sysconfig/selinx參數

檢查Selinux狀态

#sestatus

當然你還可以在selinux=enforcing狀态下,通過設定BOOLING值來解決權限通路的問題.

Samba的boolean值的檢視: #getsebool –a | grep samba

如果你共享檔案夾在家目錄下,你可以這麼做

If you want to share home directories via samba please run:

# setsebool -P samba_enable_home_dirs on

如果你建立了一個新的目錄進行共享,你可以這麼做

If you create a new directory you want to share you should mark it as

"samba-share_t" so that selinux will let you write into it.

Make sure not to do that on system directories as they may already have

been marked with othe SELinux labels.

# chcon -t samba_share_t  /var/rhcepkg (隻能解決/rhcepkg目錄的通路權限,而在/rhcepkg下的檔案夾,需要繼續設定)

例如:# chcon -t samba_share_t  /var/rhcepkg/* (推薦用這個)

關閉Linux防火牆

如果Linux上安裝了防火牆,會導緻無法通路共享檔案夾,這時可以先試試關閉防火牆。

# chkconfig iptables off

# service iptables stop

如果關閉防火牆後,能正常通路,則需要進一步确定防火牆開放Samba服務需要使用的端口(135、139)。這樣就可以實作檔案夾共享了。

如果需要開機時自動啟動Samba服務,則可以執行下述指令:

# chkconfig –level 35 smb on

如果在另一台LINUX系統的PC上需要共享SAMBA服務

#smbclient -L 192.168.x.x -N (192.168.X.X為目标SAMBA伺服器IP,此指令可以列出該伺服器上共享的SAMBA目錄和share name)

#mount //192.168.x.x/share name /mnt -o username=使用者名%密碼

PS : 其實以上的方法在安全上還很欠缺,比如security=share,允許所有使用者都能通路

還有關閉了SELINUX這個LINUX系統的法律規則.

繼續閱讀