in header_common.htm --> -->

52AV手機A片王|52AV.ONE

 找回密碼
 立即註冊
快捷導航

請登入會員才有搜尋功能
     
查看: 15732|回復: 3
打印 上一主題 下一主題

[linux指令] Linux與Windows間共享資源 --- 架設 Samba 伺服器(或使用sshfs)

[複製鏈接]
跳轉到指定樓層
樓主
發表於 2017-9-3 21:06:35 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

1、安裝及設定
" O- T0 N% P% m9 t分為二個部份說明分別為 Samba Server 與 Samba Client,及 CentOS 如何存取 Windows 所分享的資源。" T$ J- X; o, r
+ P5 {3 M. H( Q/ _2 j" S9 x% i
2、Samba Server
+ c! v9 }# P4 p# d步驟1.安裝 samba 套件
5 I4 r: a8 d. k/ @  O' I
, L2 b8 p( B2 W8 P" F$ ?利用 yum 指令來安裝 samba 套件。9 h# A; f7 X1 t- F
#yum -y install samba    //安裝 samba 套件1 s1 d2 s2 f2 D- _8 v1 ^: M
% Y5 @9 c$ K: j) [; Y5 K2 i
***** 如果linux server 只單純當作 client端,那麼只需安裝smb client套件:
, O6 m4 B6 ?# J+ I7 K: c#yum install samba-client samba-common cifs-utils- ]: m/ I/ s3 Z  H) M1 E
! t) X5 E) K$ F3 k6 r$ F
步驟2.修改 samba 設定檔 (smb.conf), C0 e0 h' a1 {
% @4 _9 V" i) I- M; j
修改 samba 設定檔 (smb.conf) 內容如下,其中允許 IP 可設定 IP 網段例如 192.168.1.0/255.255.255.0,或者是單一 IP 位址例如 192.168.1.18。$ y, N8 z+ l+ C% B
#vi /etc/samba/smb.conf  //修改 samba 設定檔( U+ V  Q9 E7 k; _

" N, t! j1 Y3 U2 _1 `& l) g global                                 //通用設定( l5 E. n" k0 C1 ~' ]" A( @

* P! g, Z& H( R. j8 a# n" R& k netbios name = Linux-smb            //顯示於 Windows 網路芳鄰的電腦名稱3 c6 c3 m& q; j  ]& Z' L. S  z
* y  N! i; |8 u+ g- R8 W* V# B3 [& S
workgroup = WORKGROUP                  //顯示於 Windows 網路芳鄰的工作群組名稱
" R4 h& i# |% z( V; K# w0 @5 Q! D5 B7 n) H+ p5 _: o/ H6 n  k
hosts allow = 127. 192.168.1.18        //允許此來源 IP 位址可存取 Samba 資源
" q9 t+ ^8 I: @; I7 g0 P* \  i+ }, Q5 y
hosts deny = ALL                       //除了上面允許的IP之外禁止其它IP存取Samba資源
+ @" q4 Z  i# L7 X5 c$ A
+ q. l6 s, P, F# C. D# \ security = user                        //安全等級user需在Samba主機上擁有帳號者才可登入
# Y; H. J3 i" W6 W3 |3 A+ X  u2 P+ z* W6 l. {% k, L
encrypt passwords = yes                //是否對密碼部份進行加密
$ P" H7 [  ?: |) k
% M7 a  |4 `( [5 n, K+ r display charset = utf8                 //Samba 上所顯示的編碼
- ^# X+ G& `+ N/ M2 M9 a, s7 R* T, H& @  j. B; H
unix charset = utf8                    //Linux 上所顯示的編碼: W9 ]% Q8 e. T, U5 @& F# H1 |3 h
! D" P- b; \3 Z/ b5 g  _
dos charset = cp950                    //Windows 用戶端的編碼 (可正確顯示中文)
0 J5 z0 f5 [0 O5 I' z! }- E9 |: O3 I2 Y) S3 o1 w$ ]* P
home                                   //分享設定,屆時顯示分享資料夾的名稱
& ^- _4 E, y$ [! m/ l2 y- b
4 @2 o7 k2 e+ C; d: w comment = Weithenn Samba Files Shares  //分享資料夾的註解
: W9 M9 A/ Y0 R& K2 H0 p3 R
' m& ]! |; i% H& i* u path = /home                           //分享路徑) m2 Q* I- D* m) `5 |  v1 O
& {# G1 l' w( e) W7 l4 u$ S
valid users = user1,@smbuser        //允許user1使用者及smbuse群組可存取資源
5 h, @" Y) P, M1 Z  V0 s( r" _+ |  B
public = yes                           //允許使用者登入後可看到此分享資料夾5 f( R" |8 t5 |2 p* Q9 u

3 ]; a' }4 A; w. Q  i writable = yes                         //允許寫入
, c- L5 q  M0 U' q! x+ ^7 ~8 A5 |# }- ?
create mode = 664                      //建立檔案的權限 (該檔案在 Samba 中權限為 664)" {/ k1 ^! Z; f* K

+ |/ E9 Z/ z6 `  D: T! M5 T directory mode = 775                   //建立資料夾的權限 (該資料夾在 Samba 中權限為 775)
+ h7 K) v. R% D! F( }& _. W& Z- I0 b4 F5 i8 d9 u% j. t
/ R. K* b! H' P% Y) G' a5 {2 G, Y$ l
步驟3.建立 samba 帳號
  L" r0 Y0 ^0 `
* ^6 D3 }( @  d. q2 D+ n& q# N: i設定完成後我們可利用 smbpasswd 指令來建立 Samba 帳號及設定 samba 密碼,下列指令為建立名稱 user1 的 samba 帳號。, M, A8 ~* z# `" F" _
#smbpasswd -a user1  //建立 samba 使用者帳號 user1
$ O+ T7 ?* X! B9 ^5 D- M, V, g" S* p
New SMB password:        //輸入使用者帳號 user1 的 samba 密碼- }4 y- x% _, N6 d- Y7 n9 a: }

  K+ J. J8 R% f& W( {. j' ~$ ? Retype new SMB password: //再輸入一次使用者帳號 user1 的 samba 密碼
, e7 v% n8 u( x/ X! _2 W! @, U# M8 m. W7 c1 C6 P  F' Q0 c5 q# g+ k
Added user user1.     //新增 samba 使用者帳號 user1 成功9 c/ I; h! [; |/ f! ~  \
, N( G/ k5 l- T  B6 X6 n+ v* C
新增完成後可查看 samba 的使用者帳號密碼檔案,確定該帳號確實已新增且密碼為加密過
- H/ `8 E+ G0 M9 J6 q& }( q) f" b6 L6 F#cat /etc/samba/smbpasswd  或者
5 H+ l5 @' Z  [9 r, q#cat /var/lib/samba/private/smbpasswd1 E% j' i5 f0 ?0 k: c
user1:0:52867A67D9C33529AAD3B435B51404EE:96FAFEDB623AA395895B19578404B070:U          : LCT-41CAF287 :% Y5 \" t; |3 g# x" k
0 ?' X1 Q+ a% F1 G: U) @
步驟4.啟動 samba 服務" H# w, p3 {& n. _; W; p4 [  r

5 G. A: E( t7 u( n2 d在啟動 samba 服務以前我們先將 samba 服務 (smb) 設定為若系統重新開機會自動啟動 smb 服務。
3 ~9 y5 L: s, p* Z#chkconfig smb on
1 d& {  l' ?$ S0 D/ A6 y5 I( b% E/ {; ]
使用 chkconfig 指令來查看 smb 在各 runlevel 下狀態 (也就是 runlevel 在 2、3、4、5 時會啟動 smb 服務)。9 W9 }5 v' G0 b" G/ T9 H: i( c! x
#chkconfig --list |grep smb* F: K' f2 H  H
# [: ]2 b( Y" Q* u( q5 @! f6 a
smb             0 : off   1 : off   2 : on    3 : on    4 : on    5 : on    6 : off
& q1 Y% ~4 E1 m* {; ?$ Z  D$ h3 Y* f
3 U1 k9 k/ i* v% N; f% {/ m; q- E完成上述設定後便可以啟動 smb 服務
/ {$ n& r; o" d$ C. z' X2 B1 }#/etc/rc.d/init.d/smb start% N0 D$ k5 e4 t& r/ P( N( Z

7 @& {$ H- L1 v4 N7 n! X Starting SMB services:                        [OK]
/ ?7 k0 E; J8 F# z/ Z" N
% W$ ?0 x5 _* ~0 a Starting NMB services:                        [OK]  - k8 F" w0 |# l8 v, u% X: u
* g$ q8 s) X' T/ W1 S+ `( l/ d
檢查服務是否啟動成功,其中 Port 139 為 NetBIOS Session Service 服務而 Port 445 為用於 CIFS Protocol。9 ]) ?  U( d+ s  v
#netstat -tnl7 }. N1 S% p+ J1 C
, S; q" e1 y7 ~" H9 h  {
Active Internet connections (only servers)
1 I8 o7 S  e0 u  L: l3 Q7 J, _* R* a0 j* X" J" `
Proto Recv-Q   Send-Q   Local Address    Foreign Address    State; [$ r- C: k# ]0 E. j$ L3 B1 ?+ ?

  E8 _6 U" f& B! d; a6 a+ V tcp        0        0     0.0.0.0:139          0.0.0.0:*    LISTEN; @' E; H6 E( ^# G

5 s- k9 j3 e4 J1 b$ G  b  u tcp        0        0     0.0.0.0:445          0.0.0.0:*    LISTEN$ O8 [3 j; z- `' y9 M3 ^

, W5 _( v7 b2 A( k; |3、Samba Client* p; Y, A' s1 `
以下為說明 Samba Client (Windows、CentOS) 如何存取 Samba 分享資源。
4 t) m# E% P; i/ B' q: {" {. J4 o* z3 V9 L  S! }9 G( g6 V
Windows Client
  y4 x2 A1 Y3 S! p7 z6 v" @3 Z4 }3 p6 v
上述設定步驟完成後 Windows 只要開啟檔案總管在網址欄輸入 \\<samba_server> 即會跳出必須輸入帳號及密碼的驗證視窗,您只要輸入剛才新增的 Samba 使用者帳號及密碼即可存取 Samba 資源,若以剛才上述步驟設定所填入的值如下:
& e9 u* b/ u  G! I7 @檔案總管網址列輸入: \\weithenn-smb\home,也就是 /etc/samba/smb.conf 中所設定的 netbios name = Weithenn-smb 及 home。
  W6 c) S2 ~& p8 }4 f# a: l7 a6 x驗證視窗欄位輸入: 使用者帳號: user1、使用者密碼: 123456。
/ B( h. c0 m, |7 S9 C; k3 ?9 D1 _! `& h* v9 k
若使用命令提示字元則輸入如下 (成功後可將內容存成 Batch File 以利快速設定):
/ j' U( B" g3 ?& @- O( H6 @; G5 b/ L5 H' H# I
方式一、將 Samba 資源連接至 W: 網路磁碟機 (需手動輸入驗證資料)! I. a9 q% ?: Q% p4 J) t
net use w: \\Samba_Server_IP\home
" z" q( L! t) ?' ?: {- y) `
2 Z9 @$ X4 ]% C( \方式二、將 Samba 資源連接至 W: 網路磁碟機 (不需手動輸入驗證資料)9 {+ }) K1 S/ V8 ?" \
net use w: \\Samba_Server_IP\home /user:user1 123456
3 |, v  r* A- H7 }/ }6 l) h% D5 {- F. g2 h# n; @& `
CentOS Client  P$ y9 j! r9 k- \( G: p& ~
; `# z$ {2 H/ R$ y. y2 M, ?$ e
若是 CentOS 欲存取資源時可利用如下指令來掛載 Samba 所分享的資源。. I* e6 @; c! h- K$ j5 f/ R  ?

( Q- P; I7 c% P* Z方式一、將 Samba 資源掛載至 /mnt/home (需手動輸入驗證資料)
$ K3 y: t' R8 |mount.cifs //Samba_Server_IP/home /mnt/home -o
1 J5 x0 W( d( ~( F0 z( n# Z/ a4 ?9 a- G! |
方式二、將 Samba 資源掛載至 /mnt/home (不需手動輸入驗證資料)
8 G; R; Y9 F- p9 kmount.cifs //Samba_Server_IP/home /mnt/home -o username=user1,password=123456
. A, V# b4 v. F/ y! k( V. K
$ V: T  P  b3 ^7 x7 g若存取資源完畢要卸載時可執行如下指令即可 (記得先離開 /mnt 下哦)。
' K% M* t, W$ p8 P; X% Z3 Bumount.cifs /mnt/home

; ?9 e6 D$ k1 e7 v+ X6 m8 vumount /mnt/home: P& Y1 M. x5 A" g' W2 m' X

4 d4 E5 Z' k" r4、CentOS 存取 Windows 分享資源7 B3 {2 s; n4 z% N
Samba Server 是用於 Windows 存取 CentOS (SMB) 機器所分享的資源,若 CentOS 欲存取 Windows 所分享的資源呢? 以下先說明實作時的相關條件:8 e" p% [$ c6 ~/ o) m

  R1 p# b0 U) T1 g- j/ n) `Windows 電腦名稱: user1-XP
, Z- I2 [# m* ?! B3 O, \$ C" {5 [分享資料夾名稱: Shares
- \+ `3 x" J) F( K可存取 Windows 分享資料夾的使用者帳號: user1 (請確定該使用者帳號存在於 Windows 機器內)
3 v% L9 o3 j1 n! Q& e可存取 Windows 分享資料夾的使用者密碼: 123456
: H% B* E2 x3 A$ P/ r; H" ?4 p, g3 U$ o( v, h8 c* |( I: N, S/ R
CentOS 掛載至本地端檔案系統: /mnt/shares1 O8 R' t9 e$ ?6 x2 O
CentOS 帳號密碼檔: /home/user1/secret.txt) D0 M& y' a  _% Q* E/ T
安全性權限設定: chmod 600 secret.txt
) f% y/ f' D0 U7 m5 W6 k' w$ a, Q; [8 A
了解後我們修改檔案系統設定檔 /etc/fstab。
4 f% X; D( S6 y& o#vi /etc/fstab1 C+ U$ ]) `& t& g! Q7 S  q5 v

: j* G5 N- F) j# y1 J, V0 h+ O5 t LABEL=/1           /        ext3    defaults        1 1
0 Q; w' ~3 s" d  _" i% Z9 D: @. Y1 q- s7 p" Q* T: K# `
LABEL=/home1      /home     ext3    defaults        1 2
2 O6 I6 s! j: Q9 C
/ L1 Q; N; a6 ?% s5 d LABEL=/tmp1       /tmp      ext3    defaults        1 2
. n% z# O9 O) m  d8 h9 F% s* j9 I
4 @' w, L0 t# o8 ^ LABEL=/usr1       /usr      ext3    defaults        1 2
1 ?, a* J8 r5 \1 a; @$ r  A! m! _
3 p( _5 r( O. B5 O/ S& l- L; H LABEL=/var1       /var      ext3    defaults        1 2, {0 Z* G1 q# N4 [: T
& {) |8 ~. I+ e4 w, H6 I: d0 e
tmpfs             /dev/shm  tmpfs   defaults        0 04 }8 N) ~6 I- z/ `; a2 `

% F" u) {  s9 h. W devpts            /dev/pts  devpts  gid=5,mode=620  0 0
# ~$ e% B8 y" h9 f( l6 O# ^) p. Q
' u, N4 M' o1 ~; ]/ ? sysfs             /sys      sysfs   defaults        0 00 @% o, l. _! E1 n# N9 G

4 ]5 o0 U: B) _8 U# ?, } proc              /proc     proc    defaults        0 0
7 ^0 h/ t2 w$ W
$ f2 U  K0 T1 `' L5 s; @' n LABEL=SWAP-sda6   swap      swap    defaults        0 0
: {* \. s: S# [; f8 O7 z
5 J# T. C7 X1 d" n //user1-XP/Shares  /mnt/shares cifs user,uid=0,rw,suid,credentials=/home/user1/secret.txt 0 0 //加入此行: |* ^$ i+ o9 \
* ^- Z: E9 r' T6 e$ e2 W
建立存取 Windows 分享資料夾的帳號密碼檔案,請確定該使用者帳號存在於 Windows 機器內:. z( g" }+ `1 e
#vi /home/user1/secret.txt
  P, ^8 K0 [5 n$ D2 Z8 m
1 m/ |2 O0 y/ S* H2 \( {! i username=user11 T* s! u5 i* I+ j- E  ?
- B# N, ^1 j. ^7 y) F( b
password=123456
0 T' f3 m, H! v6 E  V1 S, u0 `9 l0 W2 H# t1 _6 b4 ?( a- o' X
設定完成後可使用 mount 指令來更新目前的檔案系統 (也就是讀取 /etc/fstab 更新)。6 r, v: m. x- k; L& F. |2 Y
#mount -a     //讀取 /etc/fstab 更新
) z( j+ i  ~3 ~2 q
- Z/ P' D, J3 V1 O) p7 p#df -h        //檢查是否成功存取 Windows 資源
* \; S- i% ~4 o4 r) h' o$ t% |$ ?# z' G5 n3 F) o0 K
Filesystem            Size  Used Avail Use% Mounted on( p+ |$ T0 S# [3 q. n( G
$ W3 P. ~2 B6 \  q( F, y' E6 Z
/dev/sda1             9.7G  2.3G  6.9G  25% /% }+ Q: z1 V3 A/ `
4 j/ ?1 n5 ]1 {9 v' `  m8 x
/dev/sda7             414G  211G  183G  54% /home! |  `* U* `$ c
5 `/ g$ [) G6 }: M. Y9 k' p
/dev/sda5             4.9G  139M  4.5G   3% /tmp
; _0 s6 _  T5 i9 D$ c: T1 V
2 o  s3 J+ x! X5 E: h5 B /dev/sda3             9.7G  2.3G  6.9G  26% /usr
' |7 a. s7 y9 k: P1 x8 _! y# a4 o& t1 l/ M! P
/dev/sda2             9.7G  255M  9.0G   3% /var
9 Q3 b* f; C( [" h  Y" d5 i' o0 q
tmpfs                 2.0G     0  2.0G   0% /dev/shm
" s5 u; w2 Y. J: |# L
+ V8 @' p( E7 ?3 I( n //user1-XP/Shares  251G  236G   15G  95% /mnt/shares  //存取 Windows 資源成功
, ~) m) f3 T) h9 U' [0 O
% b4 w6 ~" U7 ~% G. ^3 L
[Troubleshooting]' e  }/ e7 }3 _5 ~0 I+ G8 H" l
從client連到server端時出現error:  / N9 Z9 O9 [+ _% z9 z$ ^3 t
samba mount error(110): Connection timed out. u- s+ f- U$ R$ ~
一般這都是防火牆的問題,包含server端跟client都要設定正確,尤其server端需開放port 139,client端需開放 port 445
/ X' _! m* t: [# Q
& N9 y% z  G  R5 R3 C
至於 使用 sshfs 來掛載 別台主機上SSH server的檔案系統:
# l: p# u& k0 \% c

+ c# V, P% P* `2 V8 t9 l7 j
用 yum 查一下有什麼 sshfs 相關的套件:
; v/ a: ~  }% o3 Q5 A+ Q# yum search sshfs1 `6 _( D/ R; `
=====================================================================: p  `6 u8 s5 ^; s: h
fuse-sshfs.x86_64 : FUSE-Filesystem to access remote filesystems via SSH
- [6 P0 h; v5 c- L安裝sshfs:6 r4 W0 o: P% I$ p
#yum install fuse-sshfs * ~/ [7 d3 r; z8 ?
建立掛載目錄:( J9 b" g! s. u8 b# }$ q& f
#mkdir /mnt/temp
0 H7 {9 t! r) t6 h/ u9 Q3 n- i6 r用sshfs 掛載遠端的目錄:8 G1 u8 j& ^) q  x5 F* B
#sshfs -p 22 [email protected]:/root/  /mnt/temp     //-p port_number , 可以掛載遠端任一目錄,包含 / 根目錄
( l4 k8 G; `0 p[email protected]'s password:    //接著要你輸入遠端ssh root密碼6 K. k1 c; W5 q; g# W0 [
正常情況此時應該可以看到 /mnt/temp/內已經有些檔案了,而不是空的
  T# X& ]4 W' Q. j8 o& p4 O) ?如果之前你有設定與主機 192.168.1.2建立公鑰私鑰免密碼連線,你就可以省略輸入密碼的程序,而直接掛載遠端目錄,比較方便/ e. [, |! l  r3 T5 G
. I* M  F4 t) x& l) P
帶上密碼而不用手動輸入密碼
+ B- {# W4 ?" \9 M/ o0 X: ^#
sshfs -o ssh_command='sshpass -p my_password ssh' -o cache=yes,allow_other -p 10022 [email protected]:/root/ /mnt/temp
8 W1 |' t; h* o, m9 n; ^註: 如果掛載有問題,可以開啟 debug mode 觀察過程:
+ \+ J3 O6 B; Ksshfs -p 10022 -o sshfs_debug -o debug [email protected]:/  /mnt/temp4 M0 d+ ^0 L( W7 T

) W/ o0 L( _# ~+ p/ a: l2 E/ c. x8 U以一般帳號(非root)掛載時,出現error :
5 A: T' z! ~7 T$ E9 |8 F) ^7 xfuse: failed to exec fusermount: Permission denied ==> 因一般使用者沒fuse的使用權限
6 f1 N* A0 u" M9 a) p3 r  m3 h1 y0 L4 vls -l /bin/fusermount2 }) j) s0 I1 ?( Q- \
-rwsr-x--- 1 root fuse 32368 May 11  2016 /bin/fusermount( T1 J) Q2 F6 m3 }
故 usermod -a -G fuse qqqbox 需加入群組才可使用 fuse
0 C) o2 {$ Z; ~# x% m: [, |& M

9 y1 C. b3 M  V! r7 L+ C  V可參考 : 在 CentOS 上使用 sshfs 來掛載 SSH server 上的檔案系統     SSHFS:透過 SSH 掛載遠端 Linux 伺服器上的硬碟(適用於 Windows、Mac OS X 與 Linux)
9 h8 U* [2 Z3 c: N% d; M2 O6 k, D( X0 V2 Z: h0 ~3 d6 S9 ~8 r' Q$ u
9 V! A7 i) h* H9 w5 V; v6 _' c" f3 Z! Z
-->
沙發
發表於 2021-3-10 21:39:32 | 只看該作者

now the best way is to use WSL (Windows Subsystem for Linux)
-->
-->
板凳
發表於 2022-3-18 16:28:04 來自手機 | 只看該作者

原來如此
-->
您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則


-->

聚BT福利

本區塊內容依據『電腦網路內容分級處理辦法』為限制級網站,限定年滿18歲以上或達當地國家法定年齡人士方可進入,且願接受本站各項條款,未滿18歲 謝絕進入瀏覽。為防範未滿18歲之未成年網友瀏覽網路上限制級內容的圖文資訊,建議您可進行網路內容分級組織ICRA分級服務的安裝與設定。 (為還給愛護 本站的網友一個純淨的論壇環境,本站設有管理員)

QQ|小黑屋|手機板|52AV手機A片王

GMT+8, 2025-1-2 15:51 , Processed in 0.070945 second(s), 15 queries .

連絡站長.廣告招商

[email protected] | QQ:2405733034     since 2015-01

裸聊妹 快速回復 返回頂部 返回列表