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

 找回密碼
 立即註冊
快捷導航
  • 我愛av論壇BBS
  • 手機A片
  • 自拍偷拍外流區
  • 貼圖區
  • 52av裸聊室
  • 中文-中國主播
Yahoo!奇摩搜尋
熱搜: av4u論壇
Google搜尋
熱搜: av4u論壇
     
查看: 20572|回復: 2

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

[複製鏈接]
發表於 2017-9-3 21:06:35 | 顯示全部樓層 |閱讀模式
1、安裝及設定5 z3 m. q+ p6 m$ ^  I
分為二個部份說明分別為 Samba Server 與 Samba Client,及 CentOS 如何存取 Windows 所分享的資源。: n9 k  F# s+ O& l' y1 f

. B0 k, A* b2 k0 l" P( u& W2、Samba Server" _, T3 D1 r+ R* d
步驟1.安裝 samba 套件
5 Z& I2 M2 N% `" J) y! C: Z8 a! U* c5 S' X+ p$ D) ?' K
利用 yum 指令來安裝 samba 套件。
, B2 r7 |. u1 L0 U3 g9 t1 _#yum -y install samba    //安裝 samba 套件
. v! S' G6 s4 o+ e2 B% J! X; y6 r9 {  J2 ?6 d5 V6 R
***** 如果linux server 只單純當作 client端,那麼只需安裝smb client套件:
/ x: R  b& F5 l8 i#yum install samba-client samba-common cifs-utils
2 o9 H  F  ]+ r4 N1 c- R$ I6 L) v; |7 ?" x( h3 w1 d
步驟2.修改 samba 設定檔 (smb.conf)7 v! k) G# E, M: F
1 ^3 {8 `& W& f7 B) q! q) ]
修改 samba 設定檔 (smb.conf) 內容如下,其中允許 IP 可設定 IP 網段例如 192.168.1.0/255.255.255.0,或者是單一 IP 位址例如 192.168.1.18。# M2 `3 y7 {2 g$ m4 {& X
#vi /etc/samba/smb.conf  //修改 samba 設定檔! C) A$ d1 I7 S; y6 K4 w1 I3 p+ p" X

5 ~4 Z) G! v1 \  B& n6 r global                                 //通用設定2 w6 w# s& ~8 |

* }; v* {2 [3 y3 J$ W6 d netbios name = Linux-smb            //顯示於 Windows 網路芳鄰的電腦名稱3 V( g  V3 b( `
" y! e5 {1 j6 y7 k
workgroup = WORKGROUP                  //顯示於 Windows 網路芳鄰的工作群組名稱' i! ?) D9 |( x" M$ }! R1 L  c

+ n" ~- R+ Q+ ?$ w' P% L# t hosts allow = 127. 192.168.1.18        //允許此來源 IP 位址可存取 Samba 資源
7 [, |# T! A+ V* z: O# j, A. E' H2 Y( I0 n, G' K7 p3 {# x, p
hosts deny = ALL                       //除了上面允許的IP之外禁止其它IP存取Samba資源
& n' f8 [! r2 z& q, M/ W5 Z( T! ]3 b& q( u3 Z5 `$ J) h# A5 c& n* ~
security = user                        //安全等級user需在Samba主機上擁有帳號者才可登入0 c/ p, x/ Q+ j. U

2 H6 m. F! }  v encrypt passwords = yes                //是否對密碼部份進行加密
2 Z0 ]9 C* ?6 F  Y8 _9 v% U- M8 B, Q4 M" q
display charset = utf8                 //Samba 上所顯示的編碼
0 l$ `! A' E; V8 b! p  d8 j4 C5 z4 |4 R0 b
unix charset = utf8                    //Linux 上所顯示的編碼( w8 w$ V7 w1 G, \; L
2 |, ]5 Z* R$ N0 T
dos charset = cp950                    //Windows 用戶端的編碼 (可正確顯示中文)
& V4 u% a: Q. x( O- n
" [+ W0 B6 |0 j( ^ home                                   //分享設定,屆時顯示分享資料夾的名稱  l, @/ s# c; g9 ?6 R' u

9 B" Y2 Z- D5 q! s$ C comment = Weithenn Samba Files Shares  //分享資料夾的註解3 q2 s; R/ T4 W: q* u% k, z
  V  U5 |1 O3 [2 @. b( V
path = /home                           //分享路徑5 S, N/ u4 y7 @' S3 {

: `9 \& P* E  n' Q$ z valid users = user1,@smbuser        //允許user1使用者及smbuse群組可存取資源9 J# @2 ^1 ^3 p$ s) h9 z+ n

7 n" J/ A/ k5 `* b# a& O8 b public = yes                           //允許使用者登入後可看到此分享資料夾1 p- Z! N- u+ {: U$ e* O2 _% e
! ?4 X; E, m4 N# V) S0 L1 Q3 N+ e: W
writable = yes                         //允許寫入+ F( q  `% t. X

$ z6 k' t: v* w0 \1 e create mode = 664                      //建立檔案的權限 (該檔案在 Samba 中權限為 664): N# `8 U" |4 t- B% p9 I+ C

; ]# o( y) g+ t/ F: J5 w$ h directory mode = 775                   //建立資料夾的權限 (該資料夾在 Samba 中權限為 775)
% K8 h5 o: o( X% ~6 `# B5 Z+ q
3 N% Y3 i1 S! }/ l% j
. T- ^2 o! w* b8 f步驟3.建立 samba 帳號
0 R& e+ e+ _# c* P, g6 I: ~8 @2 g+ }1 e- z3 i3 B
設定完成後我們可利用 smbpasswd 指令來建立 Samba 帳號及設定 samba 密碼,下列指令為建立名稱 user1 的 samba 帳號。/ v8 I; v# z3 g$ Q0 _; S: B( \& ^
#smbpasswd -a user1  //建立 samba 使用者帳號 user14 |, t8 e; |2 i  ]/ t2 v

* `5 P) e: g, a4 m0 K New SMB password:        //輸入使用者帳號 user1 的 samba 密碼# P3 v5 `; }; o' o0 a9 {/ s
4 M2 O, X$ a" z) b# [' p8 C
Retype new SMB password: //再輸入一次使用者帳號 user1 的 samba 密碼
) n8 j+ e# _1 _! Y/ j2 Y5 l) m& p2 T: r, U
Added user user1.     //新增 samba 使用者帳號 user1 成功
6 ?# d& a" g6 a! o" w. ~+ t4 i' [2 X7 [- T3 H
新增完成後可查看 samba 的使用者帳號密碼檔案,確定該帳號確實已新增且密碼為加密過
) Z" @! z, R3 J#cat /etc/samba/smbpasswd  或者
: `! U! `4 E+ I6 x* x) w  R#cat /var/lib/samba/private/smbpasswd
) P* M2 S# @8 s; H/ y user1:0:52867A67D9C33529AAD3B435B51404EE:96FAFEDB623AA395895B19578404B070:U          : LCT-41CAF287 :
4 M& s8 {7 L2 l. v# Y$ H' J$ e4 H6 g/ k& f) `1 I, L0 W9 G
步驟4.啟動 samba 服務. |! j0 a7 ]; x! x+ S- G, ?# Z: B
& g1 p9 R0 X5 r. E+ `& w
在啟動 samba 服務以前我們先將 samba 服務 (smb) 設定為若系統重新開機會自動啟動 smb 服務。: y8 e5 M9 E: X/ u1 T3 J1 h
#chkconfig smb on
2 Y% f9 m# _! u# `* I
4 c) S8 {; j% k; U. b  E使用 chkconfig 指令來查看 smb 在各 runlevel 下狀態 (也就是 runlevel 在 2、3、4、5 時會啟動 smb 服務)。
" d# }: e7 B- {( m: ~) P#chkconfig --list |grep smb
& S, y2 m' k) r# s1 R" n7 F2 D; w+ a7 _8 @
smb             0 : off   1 : off   2 : on    3 : on    4 : on    5 : on    6 : off
* j4 H2 P. l6 P4 g# J* T6 ?. l( J# m3 }5 t
完成上述設定後便可以啟動 smb 服務
2 @" Y6 F# ]8 R! }- Z) p3 q#/etc/rc.d/init.d/smb start; \* i5 z0 W# M
' Q9 U2 U" w5 g* [. G
Starting SMB services:                        [OK] 3 i  P" v. I% l! G7 ]! o1 M
! E: S$ e: f& F# |9 v3 T/ ~
Starting NMB services:                        [OK]  
& ~9 m3 r' y! i' N% _" Y4 X- ^" c6 W; i; z6 o! f, r& k
檢查服務是否啟動成功,其中 Port 139 為 NetBIOS Session Service 服務而 Port 445 為用於 CIFS Protocol。
0 y( |5 n2 q3 X" u# {& F#netstat -tnl
: F- u2 p; q) v6 o+ q
* w% Y9 Z: c8 C; O* y Active Internet connections (only servers)$ H8 c' M* l5 G+ [, _

2 w/ g0 O4 x; \) |0 U Proto Recv-Q   Send-Q   Local Address    Foreign Address    State' w0 a  j: V. Z  [

* a" M: }5 x5 M& N/ C tcp        0        0     0.0.0.0:139          0.0.0.0:*    LISTEN
4 t- N" @; ?0 K, e
, M7 q& ^9 O3 v/ u$ x3 m tcp        0        0     0.0.0.0:445          0.0.0.0:*    LISTEN
/ p1 S- F7 L, T/ O; R' q6 ]
4 L+ y+ x# P  \' c' Q/ Z6 B3、Samba Client6 v  |0 U7 O) ~& g, i/ y9 L. E
以下為說明 Samba Client (Windows、CentOS) 如何存取 Samba 分享資源。0 g8 M- V6 Z( O# ?0 o& L5 F8 i

$ n1 n+ h8 W9 y+ z- E! xWindows Client
0 \" r4 j; }1 i, N6 Q# V5 S5 T% C. s" K) y
上述設定步驟完成後 Windows 只要開啟檔案總管在網址欄輸入 \\<samba_server> 即會跳出必須輸入帳號及密碼的驗證視窗,您只要輸入剛才新增的 Samba 使用者帳號及密碼即可存取 Samba 資源,若以剛才上述步驟設定所填入的值如下:- M1 ^; Z9 [1 j
檔案總管網址列輸入: \\weithenn-smb\home,也就是 /etc/samba/smb.conf 中所設定的 netbios name = Weithenn-smb 及 home。  |) t( `, C$ ?8 s7 e1 ]
驗證視窗欄位輸入: 使用者帳號: user1、使用者密碼: 123456。
. X5 m! W# M/ g$ V% f4 M0 g5 j
& v& m5 l, G1 G若使用命令提示字元則輸入如下 (成功後可將內容存成 Batch File 以利快速設定):
  U' Q7 ]+ ], A1 i1 j! `0 p! @* w
# L% b- V$ c3 \2 q. S0 q% N方式一、將 Samba 資源連接至 W: 網路磁碟機 (需手動輸入驗證資料)- f+ a* _7 `  l/ R1 y. z
net use w: \\Samba_Server_IP\home
- V# l( w' `8 K2 M( N' o: `: C: x1 u0 a5 z9 G3 W2 T$ ^
方式二、將 Samba 資源連接至 W: 網路磁碟機 (不需手動輸入驗證資料)
) Q4 a& K3 i2 v) z4 A net use w: \\Samba_Server_IP\home /user:user1 123456$ \2 m" {  G. g- L% j

( I2 G! W1 v( C6 @CentOS Client7 {3 h( a9 B2 \( P
" ~7 {/ @3 X/ u5 d% u3 i2 i* l4 v
若是 CentOS 欲存取資源時可利用如下指令來掛載 Samba 所分享的資源。
/ q$ Z+ L! {; n( ?0 m3 k/ H( I& H1 U& C) ~
方式一、將 Samba 資源掛載至 /mnt/home (需手動輸入驗證資料)! N$ C8 v6 a" ~$ n# `* N
mount.cifs //Samba_Server_IP/home /mnt/home -o8 ?9 J. |& N) R: k
7 {( X' ?6 s6 E( {, E& ~
方式二、將 Samba 資源掛載至 /mnt/home (不需手動輸入驗證資料)3 ~- s! T$ g4 g- p: R1 u
mount.cifs //Samba_Server_IP/home /mnt/home -o username=user1,password=1234566 y6 Z" i2 d2 l2 M9 z9 K
6 Y9 H1 f3 G! ]; L0 o7 h- `6 F
若存取資源完畢要卸載時可執行如下指令即可 (記得先離開 /mnt 下哦)。
. Y: A5 ~, k4 b6 o6 T; O* Xumount.cifs /mnt/home

6 G$ |' j8 ]' B* t$ R5 K0 H! l8 Yumount /mnt/home
5 t5 x, r7 k2 b2 J# f2 w
; B2 O! K& g& d% L5 \4、CentOS 存取 Windows 分享資源  p0 Q% p! Q" k" X5 f( x
Samba Server 是用於 Windows 存取 CentOS (SMB) 機器所分享的資源,若 CentOS 欲存取 Windows 所分享的資源呢? 以下先說明實作時的相關條件:+ s( n: V# q/ b% h7 D* ^) r7 Y

+ o" e) f. c! z; d/ l" R; C7 WWindows 電腦名稱: user1-XP
2 P* B7 }) ~/ r+ H& O$ D分享資料夾名稱: Shares. ]  {$ J) M& {0 G7 O# S
可存取 Windows 分享資料夾的使用者帳號: user1 (請確定該使用者帳號存在於 Windows 機器內)
6 i8 a. B8 T( z' B2 z可存取 Windows 分享資料夾的使用者密碼: 1234565 h' {1 i" `8 e2 O

8 v) h# E, J/ e2 I# z8 sCentOS 掛載至本地端檔案系統: /mnt/shares
; f! H  S5 L3 ?+ y+ L( E8 uCentOS 帳號密碼檔: /home/user1/secret.txt
. q$ Z+ u! y' _0 F2 B% T) t安全性權限設定: chmod 600 secret.txt
3 e5 f" r2 k9 v7 M1 A: [9 e9 y9 Z5 M
# w0 v) Q3 ]3 a5 ]; ]2 [; J* T& S- I了解後我們修改檔案系統設定檔 /etc/fstab。, z6 b, I2 r4 k' i" b2 D4 x$ m
#vi /etc/fstab
. k/ H  j  p3 {$ D+ E5 i* v$ P# o) ]0 X; X( o
LABEL=/1           /        ext3    defaults        1 1
3 O  i% T5 J" @4 A( T7 }9 K! R" \1 H
LABEL=/home1      /home     ext3    defaults        1 2  A4 |6 _9 n* P% ?

9 Z( U/ m) }% _6 n, m LABEL=/tmp1       /tmp      ext3    defaults        1 2
$ Y+ O5 H! |2 i* V" `! A
; h4 h  y+ F! _6 N' ^% @4 e LABEL=/usr1       /usr      ext3    defaults        1 2
" e; g' D( F( G- G: X, x' k
7 P- f2 z' `) j# w% t LABEL=/var1       /var      ext3    defaults        1 2
( x. ]$ J5 W4 r) _" `0 T. F9 Q0 F& W- h  B
tmpfs             /dev/shm  tmpfs   defaults        0 0
- p" b; J5 ^- p  w" I3 T
' E  }+ Z! q/ |  @! e$ r devpts            /dev/pts  devpts  gid=5,mode=620  0 0" n4 i, ]! n" R$ X% }' F5 U" P' w

/ ^0 B0 c2 F' S2 O# h sysfs             /sys      sysfs   defaults        0 0( n& O: y. ~5 `  E

: k9 c0 I/ d. }+ \4 S9 W  m proc              /proc     proc    defaults        0 07 [  H% ]0 |! Q' z8 a
& R1 z/ U: i' a; L% f% _" {
LABEL=SWAP-sda6   swap      swap    defaults        0 0
8 d; q/ g  O4 x& f/ ~# o
2 M& S+ b* k) j0 W( o //user1-XP/Shares  /mnt/shares cifs user,uid=0,rw,suid,credentials=/home/user1/secret.txt 0 0 //加入此行& P" A! e3 @4 o( T* ~; D
) D) n# q" L- y4 i5 J
建立存取 Windows 分享資料夾的帳號密碼檔案,請確定該使用者帳號存在於 Windows 機器內:4 ]) `$ ~/ O& Z5 ]" G
#vi /home/user1/secret.txt' a! u* ]/ R3 k2 t2 M( _, J  D: N
4 |; J0 r0 \  C& l2 m, {+ s
username=user1
8 V/ B8 j3 M# h) l. N
8 `9 B6 x: _. V0 a  S password=123456
  X5 Y3 q3 R6 L1 ]/ [/ A
7 S) r3 o, U+ S5 _' G設定完成後可使用 mount 指令來更新目前的檔案系統 (也就是讀取 /etc/fstab 更新)。
5 s4 s% s! u+ i#mount -a     //讀取 /etc/fstab 更新( i: q# L# F, \# [2 ^3 ^0 o  V
9 U" M/ B' X9 O
#df -h        //檢查是否成功存取 Windows 資源
9 m# ~0 T, F* b% ]; j4 D2 Q
3 y  c3 r2 R8 e8 u; [+ M0 z7 q Filesystem            Size  Used Avail Use% Mounted on& D5 |6 y2 |: O1 s

: R- e6 @" G9 H0 U) J) a% l /dev/sda1             9.7G  2.3G  6.9G  25% /2 V3 _4 ~9 w, U
% r' [( o% |* H
/dev/sda7             414G  211G  183G  54% /home
' U* R; H/ ]- m% j" j  ^
9 ]# ^8 l5 S: K /dev/sda5             4.9G  139M  4.5G   3% /tmp( P8 T. Z4 ^3 b% F" u, e. I

( g$ r3 F2 {( V; B7 f /dev/sda3             9.7G  2.3G  6.9G  26% /usr- z( B1 D+ H* U( Q- Y, W

+ i% k+ d/ i( O /dev/sda2             9.7G  255M  9.0G   3% /var
# y1 w4 |4 R2 b( z" q6 z0 s4 K  k/ E
tmpfs                 2.0G     0  2.0G   0% /dev/shm  `9 i# ~! i' q. Y) P

: W( `% |; g) u5 D' Z( t% A$ n/ M/ V //user1-XP/Shares  251G  236G   15G  95% /mnt/shares  //存取 Windows 資源成功

4 S3 L# Q8 B* }  g1 @

- f9 {% ]$ [  _[Troubleshooting]
9 J  y- U6 N5 H+ T& x2 U8 t* }8 ~6 M從client連到server端時出現error:  , U5 t; b8 ~0 }% K
samba mount error(110): Connection timed out
' O% u$ m2 s1 m/ Z/ I$ D+ M一般這都是防火牆的問題,包含server端跟client都要設定正確,尤其server端需開放port 139,client端需開放 port 445
3 E: X8 y/ ~% v2 w  r( j4 K
* t( ^5 z% e8 Z! s9 q1 D% u
至於 使用 sshfs 來掛載 別台主機上SSH server的檔案系統:1 M7 Z) F$ T2 ~

  q! _8 Q8 Z3 l) y1 f9 W) `7 g6 H4 @
用 yum 查一下有什麼 sshfs 相關的套件:
& ?' h+ G6 p- ^4 I8 p6 L& m# yum search sshfs
1 b- Q: @; o  f4 s1 d, r=====================================================================( I& ]: p  u' U  E
fuse-sshfs.x86_64 : FUSE-Filesystem to access remote filesystems via SSH% I+ E% t! y" ^( P9 m8 Q
安裝sshfs:, V) k/ Y' g" L" X8 G! @
#yum install fuse-sshfs
$ q7 {( H+ N( G) q( x, ]/ a建立掛載目錄:! M! P% \8 d# t8 O! q* b: j
#mkdir /mnt/temp0 j; c! V0 D  {5 j
用sshfs 掛載遠端的目錄:6 }, R) u6 d* @/ |" y3 }8 P2 e
#sshfs -p 22 [email protected]:/root/  /mnt/temp     //-p port_number , 可以掛載遠端任一目錄,包含 / 根目錄
4 E; h2 `) z) b4 A' l[email protected]'s password:    //接著要你輸入遠端ssh root密碼
/ K  a  O  _- ?* T正常情況此時應該可以看到 /mnt/temp/內已經有些檔案了,而不是空的( A) O* \; R  O  j# q
如果之前你有設定與主機 192.168.1.2建立公鑰私鑰免密碼連線,你就可以省略輸入密碼的程序,而直接掛載遠端目錄,比較方便
& o( y5 r# N7 W8 `# @, x) Z# y
3 d6 y. Q+ T) f; {3 P2 C' u2 a& }( V帶上密碼而不用手動輸入密碼( O$ M. o/ Z/ |5 I
#
sshfs -o ssh_command='sshpass -p my_password ssh' -o cache=yes,allow_other -p 10022 [email protected]:/root/ /mnt/temp
% C  ^$ U8 F2 W3 p7 T註: 如果掛載有問題,可以開啟 debug mode 觀察過程:
( B2 X3 y5 G7 U$ R, fsshfs -p 10022 -o sshfs_debug -o debug [email protected]:/  /mnt/temp
# L3 X4 g# \+ e% i* D

; J7 [" e) I0 w- x: c3 T% [以一般帳號(非root)掛載時,出現error :% |' A- M* v* Q/ x2 P5 H! W
fuse: failed to exec fusermount: Permission denied ==> 因一般使用者沒fuse的使用權限* T3 p" V( Y- Z0 Z! o& B! E! s4 N
ls -l /bin/fusermount
; f9 ^8 V, J8 ~9 D5 p. w-rwsr-x--- 1 root fuse 32368 May 11  2016 /bin/fusermount3 H" i) ]* j4 a- r% b5 p9 _
故 usermod -a -G fuse qqqbox 需加入群組才可使用 fuse
/ s" s: X; f6 Z" i
0 _% S, M/ R# Y+ ^8 v
可參考 : 在 CentOS 上使用 sshfs 來掛載 SSH server 上的檔案系統     SSHFS:透過 SSH 掛載遠端 Linux 伺服器上的硬碟(適用於 Windows、Mac OS X 與 Linux)
- h7 I: \& P  H8 i" J$ p1 W3 u
0 N3 x5 c( O& L- b/ \. W" \! j8 a& O' D" T  f" {; x1 n6 \
回復

使用道具 舉報

發表於 2021-3-10 21:39:32 | 顯示全部樓層
now the best way is to use WSL (Windows Subsystem for Linux)
回復 支持 反對

使用道具 舉報

發表於 2022-3-18 16:28:04 來自手機 | 顯示全部樓層
原來如此
回復 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

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

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

GMT+8, 2026-7-5 14:39 , Processed in 0.009315 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

連絡站長.廣告招商

[email protected] | Telegram:@asa00061     since 2015-01

快速回復 返回頂部 返回列表