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

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

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

[複製鏈接]
發表於 2017-9-3 21:06:35 | 顯示全部樓層 |閱讀模式
1、安裝及設定
, [: ~8 s0 L6 C5 G8 p$ A分為二個部份說明分別為 Samba Server 與 Samba Client,及 CentOS 如何存取 Windows 所分享的資源。( Z) Z8 ^7 p( Y: D7 f  y
$ G4 I8 Z$ Z: Y0 d( k
2、Samba Server
" I/ |3 S8 @2 @: h6 T' ?3 O: F步驟1.安裝 samba 套件
8 {8 `$ P- t  ?- B- f0 k: t1 W' H, G6 F9 r& Z! d* m
利用 yum 指令來安裝 samba 套件。- M/ i3 }) p4 X# j4 Y
#yum -y install samba    //安裝 samba 套件8 r: N9 u5 m/ m4 u9 R% j
1 J* a4 v% N$ d
***** 如果linux server 只單純當作 client端,那麼只需安裝smb client套件:
& f/ I- Q) B& h+ Z/ B/ Z#yum install samba-client samba-common cifs-utils
4 j4 Z" P! v: Z! [3 w. B$ V( v6 ?$ @$ M" l& I: H: [1 P
步驟2.修改 samba 設定檔 (smb.conf)
  |/ }1 b% K% D
0 U. g8 H( B( h/ x修改 samba 設定檔 (smb.conf) 內容如下,其中允許 IP 可設定 IP 網段例如 192.168.1.0/255.255.255.0,或者是單一 IP 位址例如 192.168.1.18。
; N+ x8 ]4 P9 X/ L' Z#vi /etc/samba/smb.conf  //修改 samba 設定檔
( F+ y9 y: G* D/ T) C! t6 y% r- Q6 ^6 l& F: D" K! b0 t
global                                 //通用設定) |& b+ T& \$ O8 C, h2 I2 [

$ I  s; E9 U+ ?$ x: z' D9 Q netbios name = Linux-smb            //顯示於 Windows 網路芳鄰的電腦名稱
# F/ B7 {0 [9 p, |2 Z/ J3 o& B( L; \- }; J, j# B* N  P
workgroup = WORKGROUP                  //顯示於 Windows 網路芳鄰的工作群組名稱+ K; B) i$ }( _; ?
  `3 R1 a$ X6 A" _. L4 C- q
hosts allow = 127. 192.168.1.18        //允許此來源 IP 位址可存取 Samba 資源- M2 f: q6 Q3 A8 j7 g) Q0 V

+ _2 Y6 J9 M' _9 ~3 B hosts deny = ALL                       //除了上面允許的IP之外禁止其它IP存取Samba資源
, D$ o1 f9 Y2 ]  M5 m; y7 v, h; s+ m) ?3 e; q. t5 u
security = user                        //安全等級user需在Samba主機上擁有帳號者才可登入
4 v1 W7 u1 j" d8 |* O* g* E4 F2 u- F, Y) j
encrypt passwords = yes                //是否對密碼部份進行加密  S7 @) {+ P; }. }( }

/ }# L* s3 c  [3 I# ? display charset = utf8                 //Samba 上所顯示的編碼( ~6 V* M7 {: K/ `- m+ K

/ Z! i& {) b+ U7 E! j) L unix charset = utf8                    //Linux 上所顯示的編碼" L, j9 [8 u: Z1 W

# G# Q0 T; A& d0 ?- E dos charset = cp950                    //Windows 用戶端的編碼 (可正確顯示中文)5 B/ R) Z" L: X( G2 S2 S

7 w# f) v. p# H$ S& y home                                   //分享設定,屆時顯示分享資料夾的名稱
4 k& C/ Z+ l1 }3 ?- `7 R' @; }5 \. }0 ^3 m, g& `
comment = Weithenn Samba Files Shares  //分享資料夾的註解' A6 O/ ^$ z4 M& j/ ?- L6 i7 A

% s& m8 e4 Z! `1 Z- I. l path = /home                           //分享路徑/ g2 A) y* w  A: L% w# E+ u

" C" l8 m/ |" a9 m' G valid users = user1,@smbuser        //允許user1使用者及smbuse群組可存取資源: H" S6 s/ w) E4 R8 L4 B

+ ?* C2 G# S5 p, {+ S; _( p public = yes                           //允許使用者登入後可看到此分享資料夾
& C7 i2 i6 w' C, X5 k. G! X
9 B7 ^3 L" q7 H( |/ [ writable = yes                         //允許寫入
# X0 p1 L6 }  @: {3 z2 ^* E$ d$ Y/ _& V; q% _1 Q9 ~
create mode = 664                      //建立檔案的權限 (該檔案在 Samba 中權限為 664)
6 q3 V! g: e: ]$ J* a' m" a2 g9 |, p9 u' ~. ]8 Z2 w; M
directory mode = 775                   //建立資料夾的權限 (該資料夾在 Samba 中權限為 775)
: e% z1 j, h2 H& i3 _. {6 j$ j( R4 N1 B6 D! O% }4 \
8 ~. [5 c! F+ G( b, o- |
步驟3.建立 samba 帳號
8 Z2 t  g/ q9 S1 l. b0 I, y6 S/ u, n9 w
設定完成後我們可利用 smbpasswd 指令來建立 Samba 帳號及設定 samba 密碼,下列指令為建立名稱 user1 的 samba 帳號。
& P* `" D( P" q4 c( j7 r#smbpasswd -a user1  //建立 samba 使用者帳號 user1
* F* }" Z! r4 F& f$ \0 H+ n5 V' H3 M6 i
New SMB password:        //輸入使用者帳號 user1 的 samba 密碼
( D6 E' o5 ^; [9 g. _: |5 b* T. M& K9 k7 h9 i' |
Retype new SMB password: //再輸入一次使用者帳號 user1 的 samba 密碼
- B, S! j5 z. G
: i' W# G/ S5 J& b Added user user1.     //新增 samba 使用者帳號 user1 成功
  y0 z9 I8 q; `$ b( P' d2 |. N5 G5 l7 m4 w$ u2 `+ F
新增完成後可查看 samba 的使用者帳號密碼檔案,確定該帳號確實已新增且密碼為加密過
% r( P  w# R% n4 O#cat /etc/samba/smbpasswd  或者+ J/ `# i6 c8 F) c. S+ e
#cat /var/lib/samba/private/smbpasswd$ ^3 H* X* c) d  [
user1:0:52867A67D9C33529AAD3B435B51404EE:96FAFEDB623AA395895B19578404B070:U          : LCT-41CAF287 :8 p3 o% T0 Q, J& a, y
: ~  w: W2 v2 L) n8 D/ Z+ W9 k
步驟4.啟動 samba 服務
3 V2 A9 X1 Z5 C- x( a3 v: O# n( O) j$ S3 r, k- L4 P8 s+ c4 k5 L8 F
在啟動 samba 服務以前我們先將 samba 服務 (smb) 設定為若系統重新開機會自動啟動 smb 服務。
' O1 P* s4 Q. g" ]+ O2 A2 \% D#chkconfig smb on5 F. T" w8 u! Y, Y

  _! B# d) L# L7 K使用 chkconfig 指令來查看 smb 在各 runlevel 下狀態 (也就是 runlevel 在 2、3、4、5 時會啟動 smb 服務)。
+ J, z, r; J$ q" J% N#chkconfig --list |grep smb; i# u8 T  l0 [1 @' c

) s5 _+ x% r7 I' {7 P6 B; R smb             0 : off   1 : off   2 : on    3 : on    4 : on    5 : on    6 : off
' [% n5 |' m" g/ j& E) k: R$ n: M- s  W5 w6 ]% h9 l5 m
完成上述設定後便可以啟動 smb 服務
: k5 J& I* K& D4 ]#/etc/rc.d/init.d/smb start0 E( E* T' I' @: j3 V6 L
7 u% J9 O. j: g9 o) C
Starting SMB services:                        [OK]
' i0 O  R6 H2 m9 n5 J5 w6 _% ]4 w; e! L3 F$ J6 j( A: i
Starting NMB services:                        [OK]  4 v3 |: e  [4 _' Z" i
' T" Z1 B& L% Y! m$ d7 ~
檢查服務是否啟動成功,其中 Port 139 為 NetBIOS Session Service 服務而 Port 445 為用於 CIFS Protocol。* o- @4 T8 v+ o! X8 H
#netstat -tnl9 t. I; x  C4 E( s4 f6 G' `

& ^/ W! w  x7 j Active Internet connections (only servers)
' R7 H9 k) I; t9 S3 N2 n# ~6 c; d5 ?& Y6 M  J, t6 r6 d8 H
Proto Recv-Q   Send-Q   Local Address    Foreign Address    State
* d% a4 c* B# H% J, U* i1 N
  \6 Y5 ?$ _. D( p" |. k: s8 Y tcp        0        0     0.0.0.0:139          0.0.0.0:*    LISTEN' t8 F5 S/ n& L  N5 W0 K: \( ]- T$ z
4 |* s/ H7 T) n
tcp        0        0     0.0.0.0:445          0.0.0.0:*    LISTEN/ t% g+ N) H! }7 B' I
  Y3 d  j+ d! t# r
3、Samba Client3 z/ g+ Y0 n$ h9 {" r
以下為說明 Samba Client (Windows、CentOS) 如何存取 Samba 分享資源。; ?" R1 y) H7 f$ C

5 C; N9 V9 k  k0 }Windows Client
1 \( |; v5 w0 s: N- j" r, j) ]7 `
' ]9 F- ^, D: X5 s' e! j: r上述設定步驟完成後 Windows 只要開啟檔案總管在網址欄輸入 \\<samba_server> 即會跳出必須輸入帳號及密碼的驗證視窗,您只要輸入剛才新增的 Samba 使用者帳號及密碼即可存取 Samba 資源,若以剛才上述步驟設定所填入的值如下:3 O  _; N  T# {& a4 `3 l4 r9 T  ~2 x
檔案總管網址列輸入: \\weithenn-smb\home,也就是 /etc/samba/smb.conf 中所設定的 netbios name = Weithenn-smb 及 home。
6 j- A, l/ P5 @7 u! a. ]驗證視窗欄位輸入: 使用者帳號: user1、使用者密碼: 123456。' m* {6 a" Z9 u
; M6 n6 K- j0 ]+ h. v* F
若使用命令提示字元則輸入如下 (成功後可將內容存成 Batch File 以利快速設定):
- I0 z( y6 X! P! [  {7 n$ @! s* o9 m% T- ?1 c: N# P# o( ]4 k
方式一、將 Samba 資源連接至 W: 網路磁碟機 (需手動輸入驗證資料)
% r* k! B0 M" u9 J6 y net use w: \\Samba_Server_IP\home$ Z# m; U- v: ?- E+ E. Q
& o) y) y0 R' S8 u+ A7 r
方式二、將 Samba 資源連接至 W: 網路磁碟機 (不需手動輸入驗證資料)
* w0 k# H% }8 g% A0 v7 r7 ` net use w: \\Samba_Server_IP\home /user:user1 123456% A' r( R2 i$ y. B4 |1 j

& g9 n' o+ U2 ~( e) j# G/ ?CentOS Client5 T' |! w6 \( V+ T' o& g( z/ ]. c
# s" @  e" \6 y) p0 Q3 T
若是 CentOS 欲存取資源時可利用如下指令來掛載 Samba 所分享的資源。
0 {8 y% h- w. Q6 G
# F1 q, b6 j2 l方式一、將 Samba 資源掛載至 /mnt/home (需手動輸入驗證資料)
" P, _2 l9 {$ W! g; ~4 C4 Nmount.cifs //Samba_Server_IP/home /mnt/home -o
0 A! E  f* t+ x
! v/ s; o- \3 x& X9 Q方式二、將 Samba 資源掛載至 /mnt/home (不需手動輸入驗證資料)3 `  G, V- T- d* r1 m
mount.cifs //Samba_Server_IP/home /mnt/home -o username=user1,password=1234564 b4 L0 j. r& L

1 N, m, u% v( \$ e% k: u( c若存取資源完畢要卸載時可執行如下指令即可 (記得先離開 /mnt 下哦)。' J$ @7 W% u$ U$ l' }% F$ v
umount.cifs /mnt/home
* [$ Q" x, n% x) t
umount /mnt/home
& r4 e$ Z1 C+ J$ F; K1 S
& |. m1 p) @7 {" N8 b5 t) a' f3 V4、CentOS 存取 Windows 分享資源
! h  k) P/ d* V7 T0 BSamba Server 是用於 Windows 存取 CentOS (SMB) 機器所分享的資源,若 CentOS 欲存取 Windows 所分享的資源呢? 以下先說明實作時的相關條件:
+ K5 d, n- I7 {5 q6 o$ Z! I4 I8 Q  \2 v0 D* a1 k% }) j. T
Windows 電腦名稱: user1-XP
4 H/ z7 h+ g4 w6 s分享資料夾名稱: Shares! {* j* E1 E  b5 r4 J4 E
可存取 Windows 分享資料夾的使用者帳號: user1 (請確定該使用者帳號存在於 Windows 機器內)+ v0 q& u: f; X' g% e! b: w8 t0 o* t1 ]
可存取 Windows 分享資料夾的使用者密碼: 123456
0 Z7 Y9 h/ q3 f6 Y
# `: s$ [' B4 M  Y* qCentOS 掛載至本地端檔案系統: /mnt/shares/ J) T  x$ z- F5 C% u9 }$ x( o
CentOS 帳號密碼檔: /home/user1/secret.txt
$ n' R5 Q1 n: ^/ g- d8 K, L安全性權限設定: chmod 600 secret.txt
7 g5 O: [9 y, ?3 X+ J
1 w% A4 w; U1 `了解後我們修改檔案系統設定檔 /etc/fstab。0 a/ {8 l+ S9 @+ i$ Q
#vi /etc/fstab
% g. e, o+ d& G0 x# L4 [& o$ R6 D4 O( B* }
LABEL=/1           /        ext3    defaults        1 1% k9 Y3 S7 M9 ?' S
1 c& {/ U  V1 B
LABEL=/home1      /home     ext3    defaults        1 2, L  Y: J# q; {: A
. ], g% Y2 }- r( t, J
LABEL=/tmp1       /tmp      ext3    defaults        1 2/ z& ^, U1 `' g

5 S  Y( ~& |) j4 M4 ^# {, A LABEL=/usr1       /usr      ext3    defaults        1 2
9 l9 y' y' K! P+ i% j8 U% o/ B6 V* a
LABEL=/var1       /var      ext3    defaults        1 2) W# I1 g# N" @/ T2 R+ h. k

7 M0 ^& \* R! U tmpfs             /dev/shm  tmpfs   defaults        0 0
7 F) ]4 i) h3 N9 H! C0 P" ~# C7 W9 H3 L% ?0 P3 X
devpts            /dev/pts  devpts  gid=5,mode=620  0 07 g+ i9 Z; E% C5 I
; V, n" _6 j# ^
sysfs             /sys      sysfs   defaults        0 04 q: r0 \* P" ^
! o5 P! p+ n$ e9 z8 U
proc              /proc     proc    defaults        0 0
# b5 Z, w9 ]8 K5 ?1 n( W9 q- E' C* }$ G: ^; V: A
LABEL=SWAP-sda6   swap      swap    defaults        0 0
: O8 Q5 @$ _7 f. X; o
. r" W+ @5 W9 i5 Z3 v! d //user1-XP/Shares  /mnt/shares cifs user,uid=0,rw,suid,credentials=/home/user1/secret.txt 0 0 //加入此行
' J6 T3 J3 p! P- X) J
; b4 F) {0 N9 g5 ?建立存取 Windows 分享資料夾的帳號密碼檔案,請確定該使用者帳號存在於 Windows 機器內:& \) K! e! n+ `- W0 Z2 f/ ^
#vi /home/user1/secret.txt9 @* m% P/ m  y5 ]& e
6 g" j6 R( S; G9 h
username=user1* o. ]# l4 v  p0 V

! ?( D  ]. g! N2 h0 j password=123456
' `7 O" Y# u' ]" r2 {, u" O1 L3 D1 F# O/ M% q1 t6 K5 n& ~$ N7 u4 |
設定完成後可使用 mount 指令來更新目前的檔案系統 (也就是讀取 /etc/fstab 更新)。% H1 ?& U7 B9 k+ b$ E9 X
#mount -a     //讀取 /etc/fstab 更新& M; |$ g' c% K; S1 n: x* B

- l. X8 z  A8 E#df -h        //檢查是否成功存取 Windows 資源
7 [$ h# F1 V; y
6 \- u+ S" S5 M/ Y9 q- A Filesystem            Size  Used Avail Use% Mounted on
  V6 X) H8 ]* ^6 [
0 n7 r/ h2 p  D' e /dev/sda1             9.7G  2.3G  6.9G  25% /
: q7 }+ e2 n" Z/ q4 U  Y1 S0 N  q; [. r" Z4 n0 }! I
/dev/sda7             414G  211G  183G  54% /home- _& }" y. S$ z& J* Y2 I# z
8 ^: g2 ~  T) [6 b; u* r
/dev/sda5             4.9G  139M  4.5G   3% /tmp: J9 k: f2 w" }$ r* Y$ G

! z9 ^1 S3 y& x) R+ ]7 n* I7 ~5 B /dev/sda3             9.7G  2.3G  6.9G  26% /usr
) M; D1 A' z/ G; m7 Z$ [: v2 c4 y0 ?# B& r9 c! s* n5 _# ?% z# i1 f
/dev/sda2             9.7G  255M  9.0G   3% /var4 m" `+ K3 k( c% r3 L9 ?9 d4 @

% z2 U% c4 |+ n' v% v. v5 B tmpfs                 2.0G     0  2.0G   0% /dev/shm
2 k! T/ u! q1 ?# b$ P; F2 w% n) q
) S8 P% L" E  O1 ^ //user1-XP/Shares  251G  236G   15G  95% /mnt/shares  //存取 Windows 資源成功

% Q) g; s7 i1 T, a# y, w
" @" S* `4 s) [" `
[Troubleshooting]# }  f4 c/ n8 k/ U4 ~4 T' B8 }) {: Z
從client連到server端時出現error:  , F0 w5 v4 @4 O% B
samba mount error(110): Connection timed out7 t. C) f% w- ]% b/ t: s; y
一般這都是防火牆的問題,包含server端跟client都要設定正確,尤其server端需開放port 139,client端需開放 port 445
( R! f+ P6 x# Z( B) ~1 F/ c6 e

$ ?8 M8 d6 k0 Y  D至於 使用 sshfs 來掛載 別台主機上SSH server的檔案系統:
+ t: n+ i* V$ i4 L' }, B' i/ A" x

/ r# R4 @$ h* M- n- \0 K3 u; ^
用 yum 查一下有什麼 sshfs 相關的套件:0 Z  h$ \% q( k3 ~  f9 @8 y' {* u' R
# yum search sshfs
8 f6 |; U4 [6 e: B7 G& `0 C=====================================================================
# ]- u! l, H$ `- rfuse-sshfs.x86_64 : FUSE-Filesystem to access remote filesystems via SSH: P) t# o! J) ?$ O! N
安裝sshfs:' S* u! M. q1 H/ w  d
#yum install fuse-sshfs
# O/ k! j: f, w/ _建立掛載目錄:: y/ l7 Q) T. F2 W) P* i" C
#mkdir /mnt/temp
& ^! x5 Z7 O( {* \+ t7 b用sshfs 掛載遠端的目錄:
& b( b; n. Y7 [5 C/ }% g' L% s#sshfs -p 22 [email protected]:/root/  /mnt/temp     //-p port_number , 可以掛載遠端任一目錄,包含 / 根目錄
. Y6 C' E  i: h+ i[email protected]'s password:    //接著要你輸入遠端ssh root密碼( S9 u5 C; e7 I7 I2 e& k* ~
正常情況此時應該可以看到 /mnt/temp/內已經有些檔案了,而不是空的
- d4 B2 S; s% w# b3 v如果之前你有設定與主機 192.168.1.2建立公鑰私鑰免密碼連線,你就可以省略輸入密碼的程序,而直接掛載遠端目錄,比較方便
  u9 i" ?" u; v( [6 _0 B% C+ O' b% L
1 P9 F& `+ X6 g% h! y& J帶上密碼而不用手動輸入密碼9 h, h. c7 M! N7 X  h8 d
#
sshfs -o ssh_command='sshpass -p my_password ssh' -o cache=yes,allow_other -p 10022 [email protected]:/root/ /mnt/temp+ s& K3 ^- p4 @6 }' b' r
註: 如果掛載有問題,可以開啟 debug mode 觀察過程:% Q8 O; A. m9 I
sshfs -p 10022 -o sshfs_debug -o debug [email protected]:/  /mnt/temp& }( x/ B4 H2 v9 \( D8 j3 [
+ K. o/ ?( B6 P5 J: X
以一般帳號(非root)掛載時,出現error :: I, i9 }( I% D4 ]  S8 L0 R6 E4 x
fuse: failed to exec fusermount: Permission denied ==> 因一般使用者沒fuse的使用權限
. F% H/ N; u* W2 z+ dls -l /bin/fusermount
3 G2 o' \1 e& X. R- b* ?-rwsr-x--- 1 root fuse 32368 May 11  2016 /bin/fusermount
1 _4 c: O2 B( T; F. m故 usermod -a -G fuse qqqbox 需加入群組才可使用 fuse
* {8 n# G( Q6 \/ e! s4 B: G

5 \, W/ F* Z5 ?$ s  ^7 o" W7 V- r可參考 : 在 CentOS 上使用 sshfs 來掛載 SSH server 上的檔案系統     SSHFS:透過 SSH 掛載遠端 Linux 伺服器上的硬碟(適用於 Windows、Mac OS X 與 Linux)$ @: x$ E% H6 S/ v% ~9 [2 P  R, y

7 b( B( q5 ?" R; a8 Q" N* |$ m# \" P- L/ Y& S+ Q0 R
回復

使用道具 舉報

發表於 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 02:56 , Processed in 0.009772 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

連絡站長.廣告招商

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

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