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

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

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

[複製鏈接]
發表於 2017-9-3 21:06:35 | 顯示全部樓層 |閱讀模式
1、安裝及設定3 v  x! a: v- H# T8 {0 R+ s
分為二個部份說明分別為 Samba Server 與 Samba Client,及 CentOS 如何存取 Windows 所分享的資源。6 Z4 n; ~4 G" S

( _# F, R& k" q4 c# y  P2、Samba Server2 Z6 t6 D* U2 m9 O2 C, B
步驟1.安裝 samba 套件- l1 u, L; o& F0 {+ e
1 m9 M5 u0 k* p+ u3 y
利用 yum 指令來安裝 samba 套件。* N7 K, A* H( j: e" w
#yum -y install samba    //安裝 samba 套件/ j7 h1 M% q* g/ j" o

. x: f$ c7 R: M+ G/ @***** 如果linux server 只單純當作 client端,那麼只需安裝smb client套件:
. v9 O1 X# z0 e#yum install samba-client samba-common cifs-utils
6 n. Q9 W# L9 @: L: I( T; U( Q" f4 Q$ a7 v5 v  s
步驟2.修改 samba 設定檔 (smb.conf)
. R8 c  q9 \' _9 z6 H9 {3 s3 J5 o  X' @
修改 samba 設定檔 (smb.conf) 內容如下,其中允許 IP 可設定 IP 網段例如 192.168.1.0/255.255.255.0,或者是單一 IP 位址例如 192.168.1.18。, _3 H$ N! `  [% h
#vi /etc/samba/smb.conf  //修改 samba 設定檔
3 w5 y9 k# Y: J, d  U& N6 f6 V. B5 S" p' C
global                                 //通用設定% T7 `- Y, C$ n3 `/ `! S
- s& F4 N) Y: q$ a
netbios name = Linux-smb            //顯示於 Windows 網路芳鄰的電腦名稱0 H+ b. p3 Q. Y; W5 v8 h. p
6 ]6 g' P& B- w; I
workgroup = WORKGROUP                  //顯示於 Windows 網路芳鄰的工作群組名稱( d2 N3 X( z, a- {

* g+ X; }% P# h hosts allow = 127. 192.168.1.18        //允許此來源 IP 位址可存取 Samba 資源$ f0 Q' x- g; Q1 m* e

$ l5 Q: F3 t4 Y hosts deny = ALL                       //除了上面允許的IP之外禁止其它IP存取Samba資源
" i* p% ?- x8 i4 X; |( `# y3 K* }- U  E8 \
security = user                        //安全等級user需在Samba主機上擁有帳號者才可登入+ j; L6 p# z" n  Z4 O! w4 Y: _4 t
# @; P  a) }. M: ?$ y2 r
encrypt passwords = yes                //是否對密碼部份進行加密- v$ O7 k+ O  k9 L+ z2 k0 o' V1 C
5 ?7 B+ `9 m+ @- q
display charset = utf8                 //Samba 上所顯示的編碼" x3 v& C9 j0 [6 ~

7 a# u% {$ r2 p9 t9 i  U unix charset = utf8                    //Linux 上所顯示的編碼
6 Z7 x5 q) T8 d7 l1 M
% ^( D+ H& U& v. n) z) p2 @ dos charset = cp950                    //Windows 用戶端的編碼 (可正確顯示中文)
6 \) [/ I" h6 L5 W
/ A+ f3 g% r  [' h/ _4 I3 g home                                   //分享設定,屆時顯示分享資料夾的名稱
% R; s2 I# U9 l5 G
; V& n  H7 C, v1 R comment = Weithenn Samba Files Shares  //分享資料夾的註解( i/ Q& g! u& r2 Z1 f! o( z

* B2 c* J# \) B1 a+ C% o path = /home                           //分享路徑0 \' p8 l6 y, Z5 i9 s" \

# n( e3 B% Q5 @; O6 G( A valid users = user1,@smbuser        //允許user1使用者及smbuse群組可存取資源; M, K% S3 g# L* P: F; S

# @7 V' F5 }& {$ V& x public = yes                           //允許使用者登入後可看到此分享資料夾
( D& X! o* |8 k: o1 v4 p4 ^
2 ?7 S/ U' b1 t3 ^, x+ ~ writable = yes                         //允許寫入7 k5 C& g1 K, s5 q
, L3 G3 }& a4 d: u+ f9 H- Z
create mode = 664                      //建立檔案的權限 (該檔案在 Samba 中權限為 664)  B) [. O) k* H3 f
9 j* T* ?$ [# N2 j/ }7 f
directory mode = 775                   //建立資料夾的權限 (該資料夾在 Samba 中權限為 775)
8 k! W# s9 H9 G1 ^, K. R$ H7 c: `$ j$ d9 S5 V3 F8 L/ M
# N% r7 h" f9 h  p: r6 X
步驟3.建立 samba 帳號
) {+ R7 `" n; B) `3 B1 |3 ]9 @1 J3 W5 }8 u
設定完成後我們可利用 smbpasswd 指令來建立 Samba 帳號及設定 samba 密碼,下列指令為建立名稱 user1 的 samba 帳號。
; ?$ U% ^" C" S8 ^% b4 J  T#smbpasswd -a user1  //建立 samba 使用者帳號 user1
7 j, m. O3 }# w' C$ d" V( G, _7 ^* A# d4 D0 E
New SMB password:        //輸入使用者帳號 user1 的 samba 密碼
! O" \' q- H9 j3 Z5 m3 \( u; u9 @) U; s- ~7 S+ O* e
Retype new SMB password: //再輸入一次使用者帳號 user1 的 samba 密碼; l# X) r$ J: d3 t2 R& x

* N8 d/ L8 S1 o# u Added user user1.     //新增 samba 使用者帳號 user1 成功/ A) _9 G( t8 Y0 l1 b4 j$ y- y
3 @! ~8 e; \+ o7 G0 V% C
新增完成後可查看 samba 的使用者帳號密碼檔案,確定該帳號確實已新增且密碼為加密過
5 W0 n* L! g: \7 u2 B#cat /etc/samba/smbpasswd  或者
) x0 ]/ f! X: }; q: q$ f#cat /var/lib/samba/private/smbpasswd
1 Y2 i7 P' @8 ?! n: |3 h user1:0:52867A67D9C33529AAD3B435B51404EE:96FAFEDB623AA395895B19578404B070:U          : LCT-41CAF287 :2 [4 Y" w% a8 w6 @/ b
+ t. _% z) ]: a6 Y3 }1 N( g- A
步驟4.啟動 samba 服務
! e  o" {, }! g8 {2 q# d" {* X, |$ a% q0 D: ]; j$ i% K% ?5 u
在啟動 samba 服務以前我們先將 samba 服務 (smb) 設定為若系統重新開機會自動啟動 smb 服務。# J6 L% {$ a5 o' f1 b
#chkconfig smb on" y! _( U4 {. r6 ~" w5 p

/ d  b+ |# Z3 {. A, S2 j使用 chkconfig 指令來查看 smb 在各 runlevel 下狀態 (也就是 runlevel 在 2、3、4、5 時會啟動 smb 服務)。
5 j  o2 K" H) [5 X3 b# s#chkconfig --list |grep smb
7 h) Z. h6 G& J& g5 |; ~8 N8 _4 Z3 }4 @5 L( ^
smb             0 : off   1 : off   2 : on    3 : on    4 : on    5 : on    6 : off/ {  E- o3 B4 }' I. |) o; W% w
6 x9 X8 B, d) a) [% A" e
完成上述設定後便可以啟動 smb 服務# D- m1 f# ~9 D! ^6 U# v1 N
#/etc/rc.d/init.d/smb start" H& ?) }* l$ y- t  Z  z3 L1 P

# C. h$ j' @# E* _+ J Starting SMB services:                        [OK] " ~# B8 O, X% _: \% h! R& l4 l. G
  P1 ~; l" B: D
Starting NMB services:                        [OK]  
; l$ u; B  q0 n8 E: k$ C' R0 b. C; S" W  G; Y4 e- d( l
檢查服務是否啟動成功,其中 Port 139 為 NetBIOS Session Service 服務而 Port 445 為用於 CIFS Protocol。
( o# I; |) o5 g4 \#netstat -tnl8 x7 A+ k/ K' a2 K6 v0 D8 b

9 K; p5 F% X# s5 ^% M2 M, o3 p& q1 n Active Internet connections (only servers)* t5 _; t  n: U* w
4 m5 Z. i. ~- w1 G' i
Proto Recv-Q   Send-Q   Local Address    Foreign Address    State
* y7 n  O8 Y, ?4 i$ }4 A
& O  h/ v) k- m2 v1 Y1 a9 g  Q3 V tcp        0        0     0.0.0.0:139          0.0.0.0:*    LISTEN3 N% f. s+ `8 @" v& {" S: d

: r% E+ v) h) Y" K tcp        0        0     0.0.0.0:445          0.0.0.0:*    LISTEN
9 @3 U6 d, B2 Y2 d: k7 _7 s6 k, D9 b) j! h  i3 \2 Z1 L
3、Samba Client
4 t, w/ l. K* k% O  I8 o% _以下為說明 Samba Client (Windows、CentOS) 如何存取 Samba 分享資源。
! q7 ]. Q' ]( e/ }
* d3 O2 A% y$ u0 I" n# N6 f2 qWindows Client+ u9 k: h2 |) k9 n, o9 K  Z( g& i

8 }4 [) z8 p9 p0 {上述設定步驟完成後 Windows 只要開啟檔案總管在網址欄輸入 \\<samba_server> 即會跳出必須輸入帳號及密碼的驗證視窗,您只要輸入剛才新增的 Samba 使用者帳號及密碼即可存取 Samba 資源,若以剛才上述步驟設定所填入的值如下:3 b' _2 q  M: k. a  C
檔案總管網址列輸入: \\weithenn-smb\home,也就是 /etc/samba/smb.conf 中所設定的 netbios name = Weithenn-smb 及 home。
! |" Z$ x/ b' T8 h驗證視窗欄位輸入: 使用者帳號: user1、使用者密碼: 123456。
" Y8 ]0 e* o: c- p# ^2 R8 @/ e- g% e- d8 [" k4 ?& i$ T
若使用命令提示字元則輸入如下 (成功後可將內容存成 Batch File 以利快速設定):
0 w1 R1 \. F, T) M1 q' ?/ h8 U5 Q
方式一、將 Samba 資源連接至 W: 網路磁碟機 (需手動輸入驗證資料). L$ G9 S6 ?2 F6 h: T
net use w: \\Samba_Server_IP\home
  F. G) \$ F( H) @$ f
1 S& [3 J( F+ V  q. u& l, Z7 g方式二、將 Samba 資源連接至 W: 網路磁碟機 (不需手動輸入驗證資料)
' r1 ]. m- C7 o( p& o( _ net use w: \\Samba_Server_IP\home /user:user1 123456) J) s) Q, h% C7 v

* u% w% H! x2 XCentOS Client
( u4 C9 U  `4 K) l* ~3 \# A+ X, W2 k
若是 CentOS 欲存取資源時可利用如下指令來掛載 Samba 所分享的資源。$ |% X4 D0 d% F- r! J1 n
: c. i, e. u; O' Y4 [, W
方式一、將 Samba 資源掛載至 /mnt/home (需手動輸入驗證資料)
7 s! {4 |) \- n; P& \2 pmount.cifs //Samba_Server_IP/home /mnt/home -o- b: t8 `8 h9 S+ r; A
. {* T/ M; |8 }
方式二、將 Samba 資源掛載至 /mnt/home (不需手動輸入驗證資料)+ x) |8 a6 L. U
mount.cifs //Samba_Server_IP/home /mnt/home -o username=user1,password=1234561 N' r( C- j" g' s9 j( w: ]

% F0 Z) A8 p- r' B  h& {若存取資源完畢要卸載時可執行如下指令即可 (記得先離開 /mnt 下哦)。
' A" i8 j; V8 f( P; b+ |4 B# fumount.cifs /mnt/home

& U/ N% ~* m) P4 g3 K8 Pumount /mnt/home4 n) f4 g  a( o( ]- @9 o' Z; s

- G* l" U( E* j- ^* `/ v4、CentOS 存取 Windows 分享資源& G' e3 V+ j  U8 M
Samba Server 是用於 Windows 存取 CentOS (SMB) 機器所分享的資源,若 CentOS 欲存取 Windows 所分享的資源呢? 以下先說明實作時的相關條件:% p! B! ]1 P+ ^  r

3 K9 g  ^, L$ _# M' PWindows 電腦名稱: user1-XP* S7 H+ C0 @$ E4 ^, F1 r, F
分享資料夾名稱: Shares' k, K  ?% l# j7 }! N5 a( e
可存取 Windows 分享資料夾的使用者帳號: user1 (請確定該使用者帳號存在於 Windows 機器內)5 t+ L& E* e) a+ r8 X* n
可存取 Windows 分享資料夾的使用者密碼: 123456; S6 r+ V+ Y9 ~/ k

3 N. }  G' A# I" cCentOS 掛載至本地端檔案系統: /mnt/shares3 m, M0 ]! V, C1 t& I" n" u; Q
CentOS 帳號密碼檔: /home/user1/secret.txt# U5 r; f3 [, S- q
安全性權限設定: chmod 600 secret.txt: Z8 g8 o( t5 |5 t# _! Y# \4 u, @

8 |/ @' G+ {4 @# z: h0 \! x了解後我們修改檔案系統設定檔 /etc/fstab。# v- R) s& x' ?$ i" V
#vi /etc/fstab1 ^* v- c1 t" @% ?& c
5 z! W4 T) C) O
LABEL=/1           /        ext3    defaults        1 15 Z; c3 x0 o+ Z: w( ?0 N) j

; R- @4 F. G2 ?3 R/ ?9 }7 } LABEL=/home1      /home     ext3    defaults        1 2- v  ]+ U" x& U

6 _' |% I% \$ R LABEL=/tmp1       /tmp      ext3    defaults        1 23 K' U7 y; S9 B/ u" q& R
" r& o- f5 r% F3 F3 T0 q$ m6 {" A
LABEL=/usr1       /usr      ext3    defaults        1 2& a% t& A! j4 n) b# L& [/ o1 g

" @3 h7 z2 t) x# S1 _ LABEL=/var1       /var      ext3    defaults        1 2* I# I: n4 ^# H% V5 W( T
6 C8 e: O3 H8 {. g. _. o9 n
tmpfs             /dev/shm  tmpfs   defaults        0 0
( q7 u/ U+ A: a5 C/ Z" F
0 d* g; p& P& Y$ a/ ^ devpts            /dev/pts  devpts  gid=5,mode=620  0 0
" k5 @4 Q) ?5 e1 M6 ]  |# _8 l! h6 x+ e) ^
sysfs             /sys      sysfs   defaults        0 0, Q2 `; r2 L5 ^

5 Q# i' |# {5 e' o9 L9 w. J& a proc              /proc     proc    defaults        0 0
: ?7 O0 s% A. h1 H( e
4 s# M5 h/ p  B" f* ~9 L LABEL=SWAP-sda6   swap      swap    defaults        0 0
' {. C& M1 V: P6 ~. J2 r# k1 ^2 @/ h
//user1-XP/Shares  /mnt/shares cifs user,uid=0,rw,suid,credentials=/home/user1/secret.txt 0 0 //加入此行  p' }8 `) T2 S! s- o

$ Q2 @* s! `. i+ f( w. b$ n建立存取 Windows 分享資料夾的帳號密碼檔案,請確定該使用者帳號存在於 Windows 機器內:
' Y% k5 D# h2 m# s/ j: R# L#vi /home/user1/secret.txt# v2 L2 u5 @9 t2 i" H

9 B3 L( N5 l- C username=user12 j4 w+ j! q) x2 S
' I, V! H$ i! Z" o/ G5 x9 F
password=1234563 J/ B. s# T; K$ c

7 n# J. Q. h# [6 s# F! r設定完成後可使用 mount 指令來更新目前的檔案系統 (也就是讀取 /etc/fstab 更新)。# y8 x1 r4 |* j, ~" E+ q) T* r
#mount -a     //讀取 /etc/fstab 更新
6 ?5 _( N( l2 O" s
3 J2 h' K' I" e) F$ P#df -h        //檢查是否成功存取 Windows 資源1 o  R9 B2 Z- K! E, r2 o) c' e7 t' j
  T, n+ l. d1 U  V1 u0 a
Filesystem            Size  Used Avail Use% Mounted on7 X6 b. q- }( X; o5 m# \  F# ?! w

3 _5 X$ s9 ]% p- ^$ r3 R6 K& _) P8 q /dev/sda1             9.7G  2.3G  6.9G  25% /
) n4 F# r8 [" l1 \4 Z7 n, K  E4 ?) ^5 X( s5 E& Y7 I
/dev/sda7             414G  211G  183G  54% /home; S! Z* f; u, ~7 B

" z; o8 o1 K7 T. D9 K$ l7 \6 _ /dev/sda5             4.9G  139M  4.5G   3% /tmp; L3 D; a' i8 p# I; p5 y5 y
6 y( r3 D0 l3 @; r0 }+ @4 ^
/dev/sda3             9.7G  2.3G  6.9G  26% /usr
+ Q" L. |, _: V! ?7 F
+ z) I% s4 b+ O# t /dev/sda2             9.7G  255M  9.0G   3% /var
" t+ {/ u5 b) T; f! ^2 y+ u7 T. U. X5 N" V6 ]9 A( r
tmpfs                 2.0G     0  2.0G   0% /dev/shm
  j0 m* K1 C" P1 E" Q
/ ]7 v9 C- D, E+ D //user1-XP/Shares  251G  236G   15G  95% /mnt/shares  //存取 Windows 資源成功

+ n* _6 v: ^% T8 G2 Z

( v  n4 M4 ^0 L0 ^[Troubleshooting]
. C- L- D% {! X3 y3 N) H從client連到server端時出現error:  $ I8 F* t( P4 Z. l
samba mount error(110): Connection timed out0 }5 c$ R4 N7 h) W5 |7 o9 c6 G, D' U) [
一般這都是防火牆的問題,包含server端跟client都要設定正確,尤其server端需開放port 139,client端需開放 port 445
$ j  a* `8 O7 G
& a: E; |' C* G! R7 |
至於 使用 sshfs 來掛載 別台主機上SSH server的檔案系統:$ _5 u" j! f" l; P! M) Q
" e+ j1 a0 D- J
用 yum 查一下有什麼 sshfs 相關的套件:: K8 l- \, f4 e( w( U) p, Y
# yum search sshfs* E5 W4 ~, @3 ~5 ?. f) A# m3 S
=====================================================================
; i; Q: u- I! o) {fuse-sshfs.x86_64 : FUSE-Filesystem to access remote filesystems via SSH
; W' {' W8 J0 J9 e8 ^& I( m安裝sshfs:
$ }+ T' n6 l/ e#yum install fuse-sshfs . J9 G& X$ ?1 I- |
建立掛載目錄:1 F! `  E: r5 c/ h6 J& O0 q6 q
#mkdir /mnt/temp
3 Q& N, p* e$ C8 i用sshfs 掛載遠端的目錄:
* X8 B5 {: w# g0 L8 h#sshfs -p 22 [email protected]:/root/  /mnt/temp     //-p port_number , 可以掛載遠端任一目錄,包含 / 根目錄
) @8 e: C/ X) p5 q+ }9 j[email protected]'s password:    //接著要你輸入遠端ssh root密碼
/ U$ w1 v0 L& t1 p/ C/ ]) I  N正常情況此時應該可以看到 /mnt/temp/內已經有些檔案了,而不是空的
4 K& P' W( ]- R( ]& c" v% [7 [如果之前你有設定與主機 192.168.1.2建立公鑰私鑰免密碼連線,你就可以省略輸入密碼的程序,而直接掛載遠端目錄,比較方便' q- ~$ ?8 Z: \; A6 g, N3 g) N( X( F
% q8 f1 r, p% L( C; h2 Z6 e9 k2 m
帶上密碼而不用手動輸入密碼" Q: H* _9 G) x0 h
#
sshfs -o ssh_command='sshpass -p my_password ssh' -o cache=yes,allow_other -p 10022 [email protected]:/root/ /mnt/temp
' X1 l" h; d$ E7 L# {6 E% W4 C8 g" K註: 如果掛載有問題,可以開啟 debug mode 觀察過程:9 Y: x/ ?8 D- h/ |% s9 n
sshfs -p 10022 -o sshfs_debug -o debug [email protected]:/  /mnt/temp4 z7 H5 Q8 U8 c9 I! c
% i) ]7 a6 p' y; L! Q2 U, r
以一般帳號(非root)掛載時,出現error :
$ q+ _- V* c0 }( Rfuse: failed to exec fusermount: Permission denied ==> 因一般使用者沒fuse的使用權限8 S' o# L3 K% @& F
ls -l /bin/fusermount
" V0 h5 a" O1 c7 I3 p) X0 g-rwsr-x--- 1 root fuse 32368 May 11  2016 /bin/fusermount2 R: \# I: r9 Z9 g' A# h
故 usermod -a -G fuse qqqbox 需加入群組才可使用 fuse
; Z* Q  y2 l7 {+ G2 m- Q, u
' d0 v9 f/ i' t5 L
可參考 : 在 CentOS 上使用 sshfs 來掛載 SSH server 上的檔案系統     SSHFS:透過 SSH 掛載遠端 Linux 伺服器上的硬碟(適用於 Windows、Mac OS X 與 Linux)
9 r$ U  W3 h# A/ [0 V9 U* A0 Z
& W1 `) d6 H) U) z$ k5 ~. R2 i3 ]( q- M; m) ^
回復

使用道具 舉報

發表於 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-5-1 05:52 , Processed in 0.010783 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

連絡站長.廣告招商

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

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