linuxsamba安裝
⑴ linuxsamba安裝掛起問題
在嵌入式系統開發應用平台中,tftp、nfs和samba伺服器是最常用的文件傳輸工具,本文詳細的介紹一下Linux Samba伺服器安裝配置,感興趣的可以了解一下
在嵌入式系統開發應用平台中,tftp、nfs和samba伺服器是最常用的文件傳輸工具,tftp和nfs是在嵌入式Linux開發環境中經常使用的傳輸工具,samba則是Linux和Windows之間的文件傳輸工具。
samba是模仿Windows網上鄰居的SMB的通訊協議,將Linux操作系統「假裝成」Windows操作系統,通過網上鄰居的方式來進行文件傳輸的。
虛擬機版本:VMware10
Linux操作系統版本:Red Hat Enterprise Linux 5
Samba伺服器介紹
Samba是在Linux系統上實現SMB(Session MessageBlock)協議的一個免費軟體,以實現文件共享和列印機服務共享。
Samba伺服器組件
samba有兩個主要的進程smbd和nmbd。smbd進程提供了文件和列印服務,而nmbd則提供了NetBIOS名稱服務和瀏覽支持,幫助SMB客戶定位伺服器,處理所有基於UDP的協議。
Samba伺服器相關的配置文件
/etc/samba/smb.conf
這是samba的主要配置文件,基本上僅有這個文件,而且這個配置文件本身的說明非常詳細。主要的設置包括伺服器全局設置,如工作組、NetBIOS名稱和密碼等級,以及共享目錄的相關設置,如實際目錄、共享資源名稱和許可權等兩大部分。
/etc/samba/lmhosts
早期的 NetBIOS name 需額外設定,因此需要這個 lmhosts 的 NetBIOS name 對應的 IP 檔。 事實上它有點像是 /etc/hosts 的功能!只不過這個 lmhosts 對應的主機名是 NetBIOS name 喔!不要跟 /etc/hosts 搞混了!目前 Samba 預設會去使用你的本機名稱 (hostname) 作為你的 NetBIOS name,因此這個檔案不設定也無所謂。
/etc/sysconfig/samba
提供啟動 smbd, nmbd 時,你還想要加入的相關服務參數。
/etc/samba/smbusers
由於 Windows 與 Linux 在管理員與訪客的賬號名稱不一致,例如: administrator (windows) 及 root(linux), 為了對應這兩者之間的賬號關系,可使用這個檔案來設定
/var/lib/samba/private/{passdb.tdb,secrets.tdb}
管理 Samba 的用戶賬號/密碼時,會用到的資料庫檔案;
/usr/share/doc/samba-<版本>
這個目錄包含了 SAMBA 的所有相關的技術手冊喔!也就是說,當你安裝好了 SAMBA 之後,你的系統裡面就已經含有相當豐富而完整的 SAMBA 使用手冊了!值得高興吧! ^_^,所以,趕緊自行參考喔!
至於常用的腳本文件案方面,若分為伺服器與客戶端功能,則主要有底下這幾個數據:
/usr/sbin/{smbd,nmbd}:伺服器功能,就是最重要的許可權管理 (smbd) 以及 NetBIOS name 查詢 (nmbd) 兩個重要的服務程序;
/usr/bin/{tdbmp,tdbtool}:伺服器功能,在 Samba 3.0 以後的版本中,用戶的賬號與密碼參數已經轉為使用資料庫了!Samba 使用的資料庫名稱為 TDB (Trivial DataBase)。 既然是使用資料庫,當然要使用資料庫的控制指令來處理啰。tdbmp 可以察看資料庫的內容,tdbtool 則可以進入資料庫操作介面直接手動修改帳密參數。不過,你得要安裝 tdb-tools 這個軟體才行;
/usr/bin/smbstatus:伺服器功能,可以列出目前 Samba 的聯機狀況, 包括每一條 Samba 聯機的 PID, 分享的資源,使用的用戶來源等等,讓你輕松管理 Samba 啦;
/usr/bin/{smbpasswd,pdbedit}:伺服器功能,在管理 Samba 的用戶賬號密碼時, 早期是使用 smbpasswd 這個指令,不過因為後來使用 TDB 資料庫了,因此建議使用新的 pdbedit 指令來管理用戶數據;
/usr/bin/testparm:伺服器功能,這個指令主要在檢驗配置文件 smb.conf 的語法正確與否,當你編輯過 smb.conf 時,請務必使用這個指令來檢查一次,避免因為打字錯誤引起的困擾啊!
/sbin/mount.cifs:客戶端功能,在 Windows 上面我們可以設定『網路驅動器機』來連接到自己的主機上面。在 Linux 上面,我們則是透過 mount (mount.cifs) 來將遠程主機分享的檔案與目錄掛載到自己的 Linux 主機上面哪!
/usr/bin/smbclient:客戶端功能,當你的 Linux主機想要藉由『網路上的芳鄰』的功能來查看別台計算機所分享出來的目錄與裝置時,就可以使用 smbclient來查看啦!這個指令也可以使用在自己的 SAMBA 主機上面,用來查看是否設定成功哩!
/usr/bin/nmblookup:客戶端功能,有點類似 nslookup 啦!重點在查出 NetBIOS name 就是了
/usr/bin/smbtree:客戶端功能,這玩意就有點像 Windows 系統的網路上的芳鄰顯示的結果,可以顯示類似『靠近我的計算機』之類的數據, 能夠查到工作組與計算機名稱的樹狀目錄分布圖!
安裝Samba
首先確認一下自己的Linux是否安裝了Samba,使用命令:
[root@localhost ~]# rpm -qa | grep samba
其中:samba、samba-common、samba-client三個程序是必須的。
如果沒有安裝,有兩種方式可以安裝:
第一種方式:yum安裝
yum是一個集與查找,安裝,更新和刪除程序的Linux軟體。它運行在RPM包兼容的Linux發行版本上,如:RedHat、Fedora、SUSE、CentOS、Mandriva。
yum install -y samba
第二種方式:安裝包安裝
安裝包都在光碟里,首先需要掛載:
[root@localhost ~]# mount /dev/cdrom /mnt
這個時候,會出現一個問題:
mount: block device /dev/sr0 is write-protected, mounting read-only
提示信息說,虛擬機掛著光碟機光碟機時提示只讀。用以下命令可解決該報錯:
mount -o remount,rw /dev/cdrom /mnt
此時,我們會發現,原本空的文件夾/mnt現在多了很多的文件。
在/mnt/Server文件夾中,會能找到關於Samba的安裝包:
找到安裝包之後,就是安裝Samba了(只需要安裝自己沒有的那個就行了)。使用命令:
rpm samba-3.0.25b-0.el5.4.i386.rpm
rpm samba-client-3.0.25b-0.el5.4.i386.rpm
rpm samba-commons-3.0.25b-0.el5.4.i386.rpm
安裝完之後,再使用命令驗證一下是否安裝完成:
[root@localhost ~]# rpm -qa | grep samba
配置Samba
修改配置文件
samba伺服器最主要的配置文件其實只有一個,就是/etc/samba/samba.conf,這個配置文件可以分為兩個部分,一個部分是全局參數,一部分是共享資源相關參數。
#1.全局部分參數設置:
[global]
#與主機名相關的設置
workgroup = zkhouse <==工作組名稱
netbios name = zkserver <==主機名稱,跟hostname不是一個概念,在同一個組中,netbios name必須唯一
serverstring = this is a test samba server <==說明性文字,內容無關緊要
#與登錄文件有關的設置
log file = /var/log/samba/log.%m <==日誌文件的存儲文件名,%m代表的是client端Internet主機名,就是hostname
max log size = 50 <==日誌文件最大的大小為50Kb
#與密碼相關的設置
security = share <==表示不需要密碼,可設置的值為share、user和server
passdb backend = tdbsam
#列印機載入方式
load printer = no <==不載入列印機
-----------------------------------------------------------
#2.共享資源設置方面:將舊的注釋掉,加入新的
#先取消[homes]、[printers]的項目,添加[temp]項目如下
[temp] <==共享資源名稱
comment = Temporary file space <==簡單的解釋,內容無關緊要
path = /tmp <==實際的共享目錄
writable = yes <==設置為可寫入
browseable = yes <==可以被所有用戶瀏覽到資源名稱,
guest ok = yes <==可以讓用戶隨意登錄
也就是說,將上面「#2共享資源設置方面」加入到配置文件的最後即可。
添加用戶並設置密碼
設置賬號用於登錄samba伺服器,同時並設置密碼。具體命令:
[root@localhost ~]# useradd sambauser
[root@localhost ~]# smbpasswd -a sambauser
New SMB password:
Retype new SMB password:
重啟Samba伺服器
[root@localhost ~]# /etc/init.d/smb restart
如果這段命令無法運行,就是Samba沒有正確安裝的原因。
登錄Samba
在Windows和Linux網路都暢通的情況下,在Windows下登錄Samba伺服器。使用命令查看Samba的IP地址:
[root@localhost ~]# ifconfig
在Windows的運行,輸入\\223.3.119.170(Samba對應的IP地址):
這個時候會彈出登錄界面,直接輸入之前設置的登錄賬號和密碼就行了。
問題匯總及補充
之前Samba的安裝和配置都是一步一步來的,沒有什麼問題。但是很多情況下,就是最後在Windows的運行中,輸入了\\IP地址之後,沒有任何反應。這是最麻煩的地方,因為完全不知道是什麼原因導致的。下面提供幾個可能出問題的地方:
網路選擇
在配置Samba伺服器的時候,網路選擇為bridge橋連接。
這是因為:要保證Linux下的IP和Windows下的IP處於同一網段中,並且保證相互可以ping通。
怎麼驗證?
在Windows的命令行中,輸入命令ipconfig:
同時在Linux中輸入命令ifconfig(兩個命令不一樣,需要注意):
可以看到:兩個IP地址223.3.119.239和223.3.119.170之間前3個都是一樣的,只有最後一個不同,這就保證了在同一網段。如果前3位不同,可在Linux中使用命令:
[root@localhost ~]# ifconfig eth0 223.3.119.130
只需要保證只有最後一個不同即可。
接下來驗證Windows和Linux之間的ping通,在Windows命令行中輸入ping Linux的IP地址:
結果如果不是timeout,就代表兩者之間ping通。
防火牆問題
如果防火牆不關閉,Windows和Samba之間的連通可能會被阻擋。
Windows上關閉防火牆:控制面板->系統和安全->Windows防火牆->打開或關閉Windows防火牆;
Linux上關閉防火牆:
[root@localhost ~]# setenforce 0
[root@localhost ~]# service iptables stop
記得要重啟Samba伺服器。
許可權問題
可能會出現許可權不夠的問題,修改你想要的那個文件的許可權。
[root@localhost ~]# chmod 777 /home
無法訪問
如果用windows訪問samba,跳出以下對話框的錯誤:
無法訪問。您可能沒有許可權使用網路資源。請與這台伺服器的管理員聯系以查明您是否有訪問許可權。
不允許一個用戶使用一個以上用戶名與一個伺服器或共享資源的多重連接。中斷與此伺服器或共享資源的所有連接,然後再試一次……或者直接重啟Windows。
怎麼斷開連接(即退出Samba伺服器)呢?
在Windows的命令行中輸入:
net use * /delete /y
自動連接
使每次打開Linux自動運行smba伺服器:
在終端中輸入setup->system service->找到smb,按下空格,便可選中->退出完成(注意切換用tab鍵)。
⑵ linux下如何安裝smb伺服器
下載rpm格式的Samba安裝程序安裝:yum install samba編輯配置文件:vim /etc/samba/smb.conf找到Standalone Server Options,將下面的security = share,使用戶登陸時不需要輸入帳號及密碼。設置公共訪問目錄,在smb.conf中找到:; [public]
; comment = Public Stuff
; path = /home/samba
; public = yes
; writable = yes
; printable = no
; write list = +staff將前面的分號去掉。path = /home/samba
指定公眾共享目錄路徑,該目錄就可以供不同用戶使用。public = yes
取值為yes時,允許公眾共享。否則,禁止公眾共享目錄。writable = yes
取值為yes時,公眾對/home/samba有可寫許可權。printable = no
取值為yes時,公眾對/home/samba有列印許可權。write list = +staff
指定具有可寫許可權的用戶名單或用戶組所有成員,這里允許staff用戶組的所有成員具有可寫許可權。設置smb開機自啟動:
chkconfig –level 345 smb on啟動smb服務:service smb start
此時打開\Linux主機IP,會看到有一個public的共享文件夾。
⑶ linux怎麼安裝samba伺服器
你使用的是什麼發行版?是centos么?如果是的話就跟隨以下我的方法來設置吧。
samba這款軟體應用確實非常廣泛,同時也為linux和windows之間文件傳輸提供了一個非常輕松的方式,同時它的安裝方法也是非常簡單的,我的方法適用於centos6.8及其以前的系統。
1.首先,看看系統裡面有沒有裝samba,這是最關鍵的一步,不然接下來可能會出問題。默認情況下,centos系統在默認安裝中應該已經安裝了Samba服務包的一部分 。
rpm-qa|grepsamba//默認情況下可以查詢到兩個已經存在的包:
samba-client-3.0.33-3.7.el5
samba-common-3.0.33-3.7.el5
2.上網找找samba主rpm包。
不過我這里先前就已經找過一個包,在伺服器上執行wget下載就好了。
[root@chunming-pc`]#wgetftp://195.220.108.108/linux/fedora-secondary/releases/23/Everything/s390/os/Packages/s/samba-4.3.0-0.1.rc4.fc23.s390.rpm
然後下載完成之後使用以下命令安裝即可(例如我這里下載的是samba-4.3.0-0.1.rc4.fc23.s390.rpm)
[root@chunming-pc`]#rpm-ivhsamba-4.3.0-0.1.rc4.fc23.s390.rpm
然後安裝完成之後就是需要修改配置文件了。
找到/etc/samba/smb.conf,打開它,然後把這段寫入smb.conf中
[global]
workgroup=LinuxSir
netbiosname=LinuxSir05
serverstring=LinuxSambaServerTestServer
security=share[linuxsir]
path=/opt/linuxsir
writeable=yes
browseable=yes
guestok=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@chunming-pc~]#mkdir-p/opt/linuxsir
創建之後,會發現所屬用戶和組是root,只需要chown 將對應的目錄所屬改成samba這個軟體的用戶就可以了。
然後到現在配置就完成了,把服務起來iptables開放埠就可以給外網訪問了。
⑷ linux訪問windows的samba配置,如何配置詳細教程
1,首先我們要知道samba的作用是做什麼的?
其實在我看來samba有三點好處
a:是一個文件共享伺服器,是linux與windows的溝通管道
b:可以作為列印print server提供windows遠程聯機列印,(有人會說windows也可以啊,但個人認為還是linux穩定些)
c:samba也可以作為wins server伺服器,配合dhcp伺服器可以管理NT網域。
2,samba每次啟動至少有兩個服務進程smbd,nmbd,它們分別的作用是?
smbd 用來管理samba主機分享什麼什麼目錄,列印服務等
nmbd 用來管理群組,netbios name的解析
3,當samba啟動的時候會用到那些埠呢?
samba啟動的時候會用到137,138,139,三個埠所以我們在配置防火牆的時候會用到這三個埠的
4,samba的安裝?
首先我們需要檢測自己到底安裝了samba服務沒有,因為我們裝系統的時候默認是裝了samba服務的(我這里裝的是fedora4)
[root@www ~]# rpm -qa |grep samba
samba-3.0.14a-2
system-config-samba-1.2.31-1
samba-common-3.0.14a-2
samba-client-3.0.14a-2
本機已經安裝了 ,其實我真的挺建議大家裝的時候用rpm包裝,而不用tar.gz,我給大家推薦個網站可以下載所有的rpm包,只需要安裝4個rpm包就可以了,以後缺少什麼rpm包就直接來這里下載了,這里提醒下samba的最新版本為3.0.28版本,下載地址為
5,確認samba服務是否啟動
[root@www ~]# ps aux |grep samba
root 32713 0.0 0.0 280 16 pts/0 R+ 15:46 0:00 grep samba
6.啟動samba服務
[root@www samba]# service smb start
啟動 SMB 服務: [ 確定 ]
啟動 NMB 服務: [ 確定 ]
想要開機就啟動samba服務,有兩種方法a. [root@www samba]# ntsysv b.[root@www samba]# chkconfig --level 345 smb on
7,samba是裝在默認是裝在etc目錄下的,而samba文件夾下有那些文件以及文件的含義?
[root@www ~]# cd /etc/samba/
[root@www samba]# ls
lmhosts 區域網內相關的netbios name對應的ip信息
secrets.tdb 這是加密庫
smb.conf samba的主配置文件
smbpasswd samba伺服器的使用者密碼對應表
smbusers user模式下的Samba 服務,在登錄的時候所使用的用戶名必需是在/etc/samba/smbusers中定意過。只有提供smbusers中定義過的用戶SAMBA才能允許登錄。
8.smb.conf配置
a,首先挑幾個比較重要的解釋下
workgroup = MYGROUP 工作組群:同一個區域網內,要有相同的workgroup
server string = Samba Server 主機的說明,可以隨便起名字
log file = /var/log/samba/%m.log 日誌登錄文件存放的位置
max log size = 50 最大日誌大小這里的50指的是50kB
security = user 需要用戶名和密碼才能登錄,與smbpasswd有關
= share 不需要用戶名和密碼進行登錄
= domin 就是讓你的samba作為主域控制器
[myshare] 共享目錄
comment = 對這個共享目錄的說明
path = /var/www/html 共享的路徑
public = no 是否讓所有登錄者都看到這個目錄
read only = no 不光可讀還可執行存取
writable = yes 是否可以寫入
printable = no 是否可以列印
valid users = zy 允許的登陸者
create mask = 0765 許可權是目錄所有者是可讀可寫可執行 同一個組的用戶可讀可寫 其他用戶只有讀和執行的權利
9,以security = share 寫一個實例
[root@www samba]# vi smb.conf
workgroup = MYGROUP
server string = 趙勇 Server
client code page = 950 想讓你的samba可以在windows上顯示中文就需要加入這句,沒設定默認的值是850
security = share 安全級別是share
log file = /var/log/samba/%m.log 日誌登錄文件存放的位置
max log size = 0 表示登錄檔案大小不限制
下面的是自己添加的
[zy]
comment = zy samba server
path = /tmp
read only = no
public = yes
然後測試samba伺服器
[root@www samba]# testparm
然後再按enter鍵 就會出現你的所有配置
從新啟動samba
[root@www samba]# service smb restart
客戶端的測試
打開網上鄰居 然後查看所有網路 然後找到mygroup 找到你的samba主機
10.接下來我們要設定需要密碼認證才能登陸的samba伺服器
workgroup = MYGROUP
server string = zy Server
hosts allow = 192.168.1.102 127. 需要說明我windows主機地址為192.168.1.102 這里是為了安全期間 只允許192.168.1.102這個地址才能訪問我的samba伺服器
client code page = 950 想讓你的samba可以在windows上顯示中文就需要加入這句,沒設定默認的值是850
security = user 安全級別是user
encrypt passwords = yes 使用加密密碼對samba訪問
smb passwd file = /etc/samba/smbpasswd 密碼保存文件路徑
log file = /var/log/samba/%m.log 日誌登錄文件存放的位置
max log size = 0 表示登錄檔案大小不限制
底下設定每個使用者的家目錄,這里我有兩個用戶zy,yy
[homes]
comment = zy yy homes
browseable = no browseable是yes/否no在瀏覽資源中顯示共享目錄,若為否則必須指定共享路徑才能存取
valid users = %s %s指的是任何可以登錄者都可以登錄的意思,比如是zy登錄則[homes]變為[zy],而yy登錄[homes]變為[yy]
writable = yes 可寫
create mask = 0755 創建檔案的權利是755
directory mask = 0755 創建目錄的權力是755
[public]
comment = zy yy
path = /home/public 指定路徑
public = yes 允許公開共享
writable = yes 可以寫入
11,創建public目錄,創建用戶,並測試從新啟動samba伺服器
[root@www home]# mkdir public
[root@www ~]# chmod 777 public 給這個目錄的許可權
[root@www ~]# useradd yy 創建系統用戶yy
[root@www ~]# smbpasswd -a yy 把yy用戶加入smbpasswd中
New SMB password:
Retype new SMB password:
Added user yy.
[root@www ~]# useradd zy
[root@www samba]# smbpasswd -a zy
New SMB password:
Retype new SMB password:
Added user zy.
[root@www samba]# service smb restart
我可以幫助你,你先設置我最佳答案後,我網路Hii教你。
⑸ 怎樣在Linux系統搭建Samba共享伺服器
安裝服務程序
通過安裝Samba服務程序後細致的分析其配置文件參數,更能夠幫助讀者們理解Samba服務的安全驗證方式。
安裝Samba服務軟體包:
[root@linuxprobe Desktop]# yum install samba
Loaded plugins: langpacks, proct-id, subscription-manager
………………省略部分安裝過程………………
Installing:
samba x86_64 4.1.1-31.el7 rhel7 527 k
………………省略部分安裝過程………………
Complete!
瀏覽Samba配置文件:
[root@linuxprobe ~]# cat/etc/samba/smb.conf
配置文件竟然有320行!有沒有被嚇到?其實Samba服務配置文件中大部分是注釋信息,我們可以來篩選過濾下:
備份原始的配置文件:
[root@linuxprobe ~]# mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
過濾掉無用的內容:
先使用cat命令讀入Smb配置文件後通過grep命令-v參數(反向選擇)去掉所有注釋信息,然後分別刪選掉包含#號的行("#"),包含;號的行(";")以及所有的空白行("^$"),最後最後將過濾後的信息覆蓋寫入到/etc/samba/smb.conf文件中。
cat /etc/samba/smb.conf.bak | grep -v "#" | grep -v ";" | grep -v "^$" > /etc/samba/smb.conf
讓我們來看看過濾後的配置文件吧:
[global] #全局參數。
workgroup = MYGROUP #工作組名稱。
server string = Samba Server Version %v #伺服器介紹信息,參數%v為顯示SMB版本號。
log file = /var/log/samba/log.%m #定義日誌文件存放位置與名稱,參數%m為來訪的主機名。
max log size = 50 #定義日誌文件最大容量為50Kb。
security = user #安全驗證的方式,總共有4種。
#share:來訪主機無需驗證口令,更加方便,但安全性很差。
#user:需由SMB服務驗證來訪主機提供的口令後才可建立訪問,更加的安全。
#server:使用獨立的遠程主機驗證來訪主機提供的口令(集中管理帳號)。
#domain:使用PDC來完成驗證
passdb backend = tdbsam #定義用戶後台的類型,共有3種。
#smbpasswd:使用SMB服務的smbpasswd命令給系統用戶設置SMB密碼。
#tdbsam:創建資料庫文件並使用pdbedit建立SMB獨立的用戶。
#ldapsam:基於LDAP服務進行帳戶驗證。
load printers = yes #設置是否當Samba服務啟動時共享列印機設備。
cups options = raw #列印機的選項
[homes] #共享參數
comment = Home Directories #描述信息
browseable = no #指定共享是否在「網上鄰居」中可見。
writable = yes #定義是否可寫入操作,與"read only"相反。
[printers] #列印機共享參數
comment = All Printers
path = /var/spool/samba #共享文件的實際路徑(重要)。
browseable = no
guest ok = no #是否所有人可見,等同於"public"參數。
writable = no
printable = yes
標準的Samba共享參數是這樣的:
參數 作用
[linuxprobe] 共享名稱為linuxprobe
comment = Do not arbitrarily modify the database file 警告用戶不要隨意修改資料庫
path = /home/database 共享文件夾在/home/database
public = no 關閉所有人可見
writable = yes 允許寫入操作
我們將上面的配置參數直接追加到SMB服務配置文件(/etc/samba/smb.conf)並重啟SMB服務程序即可生效。
但此時SMB服務默認的驗證模式為user,我們需要先創建用戶資料庫後才可以正常使用,現在來學習下如何創建吧~
12.2.2 安全共享文件
使用Samba服務口令驗證方式可以讓共享文件更加的安全,做到僅讓信任的用戶訪問,而且驗證過程也很簡單,要想使用口令驗證模式,我們需要先創建Samba服務獨立的資料庫。
第1步:檢查當前是否為user驗證模式。
[root@linuxprobe ~]# cat /etc/samba/smb.conf
第2步:創建共享文件夾:
[root@linuxprobe ~]# mkdir /database
第3步:描述共享文件夾信息。
在SMB服務主配置文件的最下面追加共享文件夾的配置參數:
[database]
comment = Do not arbitrarily modify the database file
path = /database
public = no
writable = yes
保存smb.conf文件後重啟啟動SMB服務:
[root@linuxprobe ~]# systemctl restart smb
添加到開機啟動項:
[root@linuxprobe ~]# systemctl enable smb
ln -s '/usr/lib/systemd/system/smb.service' '/etc/systemd/system/multi-user.target.wants/smb.service'
第4步:使用Windows主機嘗試訪問
讀者按照下表的IP地址規劃動手配置下Windows的網卡參數,應該都會吧~
主機名稱 操作系統 IP地址
Samba共享伺服器 紅帽RHEL7操作系統 192.168.10.10
客戶端 紅帽RHEL7操作系統 192.168.10.20
客戶端 微軟Windows7操作系統 192.168.10.30
在Windows主機的運行框中輸入遠程主機的信息
此時訪問Samba服務報錯
此時訪問Samba服務是報錯的,如果讀者已經看完Apache(httpd)服務程序的章節,應該還記得防火牆和SELinux規則吧。
第5步:清空防火牆規則鏈:
Windows訪問Samba主機提示報錯,我們懷疑是Iptables阻止了訪問操作,於是執行:
[root@linuxprobe ~]# Iptables -F
[root@linuxprobe ~]# service iptables save
因為Windows系統的緩存關系,可能需要先重啟下Windows主機再嘗試訪問Samba共享。
Windows系統被要求驗證帳戶口令
那麼這個問題就是出在Iptables防火牆的默認規則中了,所以請對SELinux多一點耐心,不要直接關閉SELinux。
第6步:創建SMB服務獨立的帳號。
現在Windows系統要求先驗證後才能訪問共享,而SMB服務配置文件中密碼資料庫後台類型為"tdbsam",所以這個帳戶和口令是Samba服務的獨立帳號信息,我們需要使用pdbedit命令來創建SMB服務的用戶資料庫。
pdbedit命令用於管理SMB服務的帳戶信息資料庫,格式為:「pdbedit [選項] 帳戶」。
參數 作用
-a 用戶名 建立Samba用戶
-x 用戶名 刪除Samba用戶
-L 列出用戶列表
-Lv 列出用戶詳細信息的列表
創建系統用戶:
[root@linuxprobe ~]# useradd smbuser
將此系統用戶提升為SMB用戶:
[root@linuxprobe ~]# pdbedit -a -u smbuser
new password:設置SMB服務獨立的密碼
retype new password:
Unix username: smbuser
NT username:
Account Flags: [U ]
User SID: S-1-5-21-4146456071-3435711857-2069708454-1000
Primary Group SID: S-1-5-21-4146456071-3435711857-2069708454-513
Full Name:
Home Directory: \\linuxprobe\smbuser
HomeDir Drive:
Logon Script:
Profile Path: \\linuxprobe\smbuser\profile
Domain: LINUXPROBE
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: Wed, 06 Feb 2036 23:06:39 CST
Kickoff time: Wed, 06 Feb 2036 23:06:39 CST
Password last set: Sat, 11 Jul 2015 18:27:04 CST
Password can change: Sat, 11 Jul 2015 18:27:04 CST
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours :
第7步:使用Windows主機驗證共享結果:
請您按照下面的幻燈片逐步操作,可點擊圖片兩側箭頭或下方小圓點「○」切換步驟。
Windows驗證SMB服務口令
Windows成功訪問SMB服務
Windows進入共享目錄失敗
1
2
3
<
>
第8步:允許SELinux規則
使用Windows主機訪問Samba共享果然可以使用smbuser用戶登入,但對於共享文件這么重要的事情,SELinux一定會強制管理,剛剛沒有妥當的配置好SELinux,現在果然又報錯了。
將共享目錄的所有者和所有組設置為smbuser用戶:
[root@linuxprobe ~]# chown -Rf smbuser:smbuser /database
允許SELinux對於SMB用戶共享家目錄的布爾值:
[root@linuxprobe ~]# setsebool -P samba_enable_home_dirs on
將共享目錄的SELinux安全上下文設置妥當:
[root@linuxprobe ~]# semanage fcontext -a -t samba_share_t /database
使新的安全上下文立即生效:
[root@linuxprobe ~]# restorecon -Rv /database/
第9步:使用Windows主機驗證共享結果
我們配置好Samba服務後又陸續的調整好了Iptables防火牆與SELinux安全規則,現在終於可以正常的使用共享了。
使用SMB服務並創建文件
第10步:使用Linux主機驗證共享結果
剛剛好像讓讀者產生了一些小誤解,Samba服務程序並不僅僅是能夠實現Linux與Windows系統間的文件共享,還可以實現Linux系統之間的文件共享哦,先動手配置下客戶端主機的IP地址吧:
主機名稱 操作系統 IP地址
Samba共享伺服器 紅帽RHEL7操作系統 192.168.10.10
客戶端 紅帽RHEL7操作系統 192.168.10.20
客戶端 微軟Windows7操作系統 192.168.10.30
在客戶端安裝cifs-utils軟體包:
[root@linuxprobe ~]# yum install -y cifs-utils
Loaded plugins: langpacks, proct-id, subscription-manager
………………省略部分安裝過程………………
Installing:
cifs-utils x86_64 6.2-6.el7 rhel7 83 k
………………省略部分安裝過程………………
Complete!
創建掛載目錄:
[root@linuxprobe ~]# mkdir /database
在root家目錄創建認證文件(依次為SMB用戶名、SMB用戶密碼、SMB共享域):
[root@linuxprobe ~]# vim auth.smb
username=smbuser
password=redhat
domain=MYGROUP
此文件太重要了,許可權應該給小一些:
[root@linuxprobe ~]# chmod -Rf 600 auth.smb
配置其掛載信息(內容依次為遠程共享信息、本地掛載目錄、文件系統類型、認證文件以及開機自檢選項):
[root@linuxprobe ~]# vim /etc/fstab
//192.168.10.10/database /database cifs credentials=/root/auth.smb 0 0
使用mount命令的-a參數掛載所有在fstab文件中定義的文件信息:
[root@linuxprobe ~]# mount -a
成功掛載Samba的共享目錄(能夠看到共享文件了):
[root@linuxprobe ~]# cat /database/Memo.txt
i can edit it .
Samba服務真的是太強大了,不僅能夠實現Linux系統之間分享數據還能與Windows主機進行文件共享。
使用Samba實現文件共享 http://www.linuxprobe.com/chapter-12.html 參考這里了……!@%¥#
⑹ linux 操作 Samba伺服器設置
在Linux平台,以二進製程序包和源代碼兩種方式安裝samba伺服器,並整理相關配置文件,並給出基本應用操作。
步驟:
1.機器上已經存在的samba服務,版本為3.0.21b,這是通過使用rpm命令得到的。如下:
# rpm –qa | grep samba
Samba-client-3.0.21b-2
Samba-common-3.0.21b-2
2.將上面的samba-client-3.0.21b-2卸載。使用命令:rpm –e samba-client-3.0.21b-2。
3.用rpm –e samba-common-3.0.21b-2來卸載common,因為依賴關系,不成功。
4.下載二進製程序包:
samba-common-3.0.23c-4.i386.rpm,
samba-client-3.0.23c-4.i386.rpm,
samba-doc-3.0.23c-4.i386.rpm,
samba -3.0.23c-4.i386.rpm。
5.安裝這些程序包。分別使用命令:
rpm –Uvh samba-common-3.0.23c-4.i386.rpm
rpm –ivh samba-client-3.0.23c-4.i386.rpm
rpm –ivh samba-3.0.23c-4.i386.rpm
rpm –ivh samba-doc-3.0.23c-4.i386.rpm
使用選項Uvh來安裝common是因為原來的common沒有被卸載,因此應進行升級安裝(U)。
6.安裝完畢後,可以使用rpm –qa samba來確認。會輸出samba-3.0.24c-4。
7.下面開始對samba服務進行配置。
8.首先,修改/etc/samba/lmhosts文件。加入一行,為本機上的Windows系統IP地址和主機名。這樣才可以通過Windows來訪問Unix的samba服務。
9.創建目錄/export/sambadir作為共享目錄。
命令:mkdir –p /export/sambadir
chmod 777 /export/sambadir
10.修改/etc/samba/smb.conf文件。這是samba的配置文件。
Security = user
Log file = /var/log/samba/log.%m
Path = /export/sambadir
11.使用testparam來測試修改結果。
12.加入一個用戶,並修改其密碼。
13.使用chkconfig命令來設置在啟動級別5中啟動samba。命令如下:
Chkconfig –list | grep smb
Chkconfig –level 5 smb on
Chkconfig –list | grep smb
14.重新啟動網路服務:
/etc/rc.d/init.d/cups stop
/etc/rc.d/init.d/smb restart
15.然後就可以在Windows系統中通過12步中設定的用戶名和密碼來訪問Linux。
16.使用源代碼的安裝方式:下載samba-3.0.23c.tar.gz源代碼包,解壓。
Cd samba-3.0.23c/source
./autogen.sh
./configure –prefix=/usr –localstatedir=/var –with-configdir=/etc/samba –with-privatedir=/etc/samba –with-fhs –with-quotas –with-smbmount –enable-cups –with-pam_smbpass –with-syslog –with-utmp –with-swatdir=/usr/share/swat –with-shared-moles=idmap_rid –with-libsmbclient
Make
Make install
17.其餘步驟與7之後相同。
這是我實驗時寫的,平台是redhat 9
⑺ 怎樣在Linux系統搭建Samba共享伺服器
Linux系統默認已經安裝了Samba,但是沒有安裝Samba服務:
1,先查看安裝情況:rpm -qa|grep samba
根據系統的安裝情況選擇下載或者通過光碟機安裝所缺的rpm包。
我的安裝情況是:
使用命令:mount /dev/cdrom1 /mnt/cdrom1
通過mount把cdrom1掛載到系統臨時目錄/mnt/cdrom1,在Packets包下面使用命令:rpm -ivh
samba.*.rpm包安裝。
切換到放置rpm文件的目錄
[root@smb_server root]# rpm
-ivh samba-common-3.6.9-151.el6.x86_64
這是Samba 必備的程序,必須安裝
[root@smb_server root]# rpm
-ivh samba-3.6.9-151.el6.x86_64
安裝Samba 伺服器程序,可以使我Windows 主機訪問Samba 伺服器共享的資源。
如果需要使Linux 主機訪問Windows 主機上的共享資源,則還應該安裝Samba 客戶端程序。
[root@smb_server root]# rpm
-ivh samba-client-3.6.9-151.el6.x86_64
2,安裝samba的rpm包完成後
samba-common-3.6.9-151.el6.x86_64
//主要提供samba伺服器的設置文件與設置文件語法檢驗程序testparm
samba-client-3.6.9-151.el6.x86_64
//客戶端軟體,主要提供linux主機作為客戶端時,所需要的工具指令集
samba-swat-3.6.9-151.el6.x86_64
//基於https協議的samba伺服器web配置界面
samba-3.6.9-151.el6.x86_64