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

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

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

[複製鏈接]
發表於 2017-9-3 21:06:35 | 顯示全部樓層 |閱讀模式
1、安裝及設定
  E; Z% y2 i# D/ ]' u5 L; M分為二個部份說明分別為 Samba Server 與 Samba Client,及 CentOS 如何存取 Windows 所分享的資源。4 o6 T; Z; u+ c1 U
; h$ s4 [- g- t+ X, W# G
2、Samba Server' R; c& y- X! z# s- F. O
步驟1.安裝 samba 套件
- l, E9 A+ r" S) j( H0 l+ a, p9 D* \8 n- F% }
利用 yum 指令來安裝 samba 套件。/ f+ j* _, N1 |# n
#yum -y install samba    //安裝 samba 套件2 i2 A3 K! c# a3 |

7 L% J& i; h+ p- `* z0 W***** 如果linux server 只單純當作 client端,那麼只需安裝smb client套件: % N, x+ Z/ g3 |# b
#yum install samba-client samba-common cifs-utils; d3 x% w2 \' i- e; v

6 e+ O* T  M' \' d$ j步驟2.修改 samba 設定檔 (smb.conf)& Y1 e: C; e  d6 d8 z# S
6 c9 D$ n* l) P9 k& D
修改 samba 設定檔 (smb.conf) 內容如下,其中允許 IP 可設定 IP 網段例如 192.168.1.0/255.255.255.0,或者是單一 IP 位址例如 192.168.1.18。
4 \! {4 {% g/ Q  {1 a& p4 `#vi /etc/samba/smb.conf  //修改 samba 設定檔' \9 n/ G( c  |5 Y" S

: C3 G$ m) S+ t% z8 L global                                 //通用設定
$ ~* r: \8 j* k" G' U' d. V5 w% m
netbios name = Linux-smb            //顯示於 Windows 網路芳鄰的電腦名稱$ E0 D, i, I; U) Q
- q( |' w+ u1 o6 p
workgroup = WORKGROUP                  //顯示於 Windows 網路芳鄰的工作群組名稱8 P# o. V, {9 r' ^; o

/ H& R3 j3 i$ h+ r. {3 Z hosts allow = 127. 192.168.1.18        //允許此來源 IP 位址可存取 Samba 資源$ @: P6 ~3 z  I# `: ]) C
, S2 n! Y/ W8 s0 c% i* d, S9 h. x# ~
hosts deny = ALL                       //除了上面允許的IP之外禁止其它IP存取Samba資源
  _0 S) y+ e/ q  s0 F0 @
3 p  z5 Z6 y% I+ m( X/ [8 a# T* R security = user                        //安全等級user需在Samba主機上擁有帳號者才可登入
1 {, B' ^  X5 p
0 U1 S2 |! S1 q0 i- X- D$ G encrypt passwords = yes                //是否對密碼部份進行加密
, S: u% h) G' M" ~0 m6 w# {6 b0 c/ [. h5 Q
display charset = utf8                 //Samba 上所顯示的編碼/ m& j1 p5 Y7 B/ G- V

4 `* ~% j4 c) {( I/ O3 C) D  M unix charset = utf8                    //Linux 上所顯示的編碼# [& J4 F0 @$ T! f8 o/ M5 Z

5 U# m0 @: ^# N, \, ]( G/ I3 d dos charset = cp950                    //Windows 用戶端的編碼 (可正確顯示中文)
! V; M* h3 U. t) T+ T: f5 S6 s% O3 w: p3 t
home                                   //分享設定,屆時顯示分享資料夾的名稱9 [* t( w  C8 _9 v

* a& N) u) ~6 Q  S' J4 P comment = Weithenn Samba Files Shares  //分享資料夾的註解: r- ^2 H& W% y3 t  f" M3 `
- R# o7 t( L/ H
path = /home                           //分享路徑* x# s1 Q2 c4 e
% C8 H- z( a/ C* _- U, ^6 U, J
valid users = user1,@smbuser        //允許user1使用者及smbuse群組可存取資源
9 M# S+ S: ?; F9 ~- k7 s; e/ |, D7 Y4 C$ @5 I& B
public = yes                           //允許使用者登入後可看到此分享資料夾
0 c3 I9 n& f, K6 u. J( |; j6 o2 Y
$ y6 C) z) z$ f6 A/ L/ i$ |+ ]5 s7 r writable = yes                         //允許寫入; T$ K/ ?# l6 L  \3 s6 z

7 F% n0 ~3 ^  P8 \ create mode = 664                      //建立檔案的權限 (該檔案在 Samba 中權限為 664)
5 Y% X  o+ C1 u) {  `, F. S7 w& D* T& m0 _- S4 w, @
directory mode = 775                   //建立資料夾的權限 (該資料夾在 Samba 中權限為 775)
# M2 f4 Q- ]+ ~
) d3 h+ G9 O- e& A7 R+ r3 e
( |6 |# d9 T8 \  U& j/ V; H$ E步驟3.建立 samba 帳號" K  w; J7 k+ d/ T' q9 Y0 {
+ ]- v; p" J( f5 ^7 J% J+ N% T  w7 ?: p- u
設定完成後我們可利用 smbpasswd 指令來建立 Samba 帳號及設定 samba 密碼,下列指令為建立名稱 user1 的 samba 帳號。' G4 Y5 B8 C7 }; h3 _  i! |
#smbpasswd -a user1  //建立 samba 使用者帳號 user14 r4 i; s0 n8 B0 Q$ q+ C; p+ h

9 O/ ^# }2 m" b- B New SMB password:        //輸入使用者帳號 user1 的 samba 密碼1 U3 j! A& k2 y- C
1 P  R0 m; y, D: G" Y. Q
Retype new SMB password: //再輸入一次使用者帳號 user1 的 samba 密碼6 G$ K2 o3 R) b

- y; Z& N; A" _ Added user user1.     //新增 samba 使用者帳號 user1 成功
5 V7 R' r& l" @  s- T3 M  G
; k+ w& @3 q9 F6 G, \; n新增完成後可查看 samba 的使用者帳號密碼檔案,確定該帳號確實已新增且密碼為加密過
5 E$ M& V  z4 ?: p+ ^#cat /etc/samba/smbpasswd  或者
, K# |( f1 o$ [/ k#cat /var/lib/samba/private/smbpasswd
+ M2 z, E2 @1 k' [5 Y user1:0:52867A67D9C33529AAD3B435B51404EE:96FAFEDB623AA395895B19578404B070:U          : LCT-41CAF287 :
7 t, W, R( |! ?' S" w- e% |: ?( e9 T" f
步驟4.啟動 samba 服務
5 e0 a1 b* x& b
& H6 \8 E6 K3 m. b. C- }0 J9 Q在啟動 samba 服務以前我們先將 samba 服務 (smb) 設定為若系統重新開機會自動啟動 smb 服務。
, a- E5 w4 J$ v- P#chkconfig smb on7 V. F1 G& p, ~- A  t) l. x

* j' [5 u+ s+ U0 Z4 ~/ Q使用 chkconfig 指令來查看 smb 在各 runlevel 下狀態 (也就是 runlevel 在 2、3、4、5 時會啟動 smb 服務)。% ?* n! @! ~0 @3 b9 T' Y
#chkconfig --list |grep smb8 ?/ u% g, O  M; D$ a
$ @9 c- p2 g6 P, S
smb             0 : off   1 : off   2 : on    3 : on    4 : on    5 : on    6 : off
" h+ @) E7 }, ~0 t; V
8 z: A" [* Z, j, N6 G完成上述設定後便可以啟動 smb 服務+ f# E1 o( e# V
#/etc/rc.d/init.d/smb start
& S! U3 f/ X  N$ e4 F
; O' t4 M; P% r6 y) ^5 i Starting SMB services:                        [OK]
4 o6 ~% g0 b) s; j& A7 d" m( f$ t/ c+ R) |: j9 u4 _3 g* ?( X
Starting NMB services:                        [OK]  3 q/ ]' M2 ^$ T" |9 b  }

& o6 q+ I' ^9 L9 x檢查服務是否啟動成功,其中 Port 139 為 NetBIOS Session Service 服務而 Port 445 為用於 CIFS Protocol。5 V. O9 t, g; _' T
#netstat -tnl
) C; h2 L' V- i" I, U! o2 g" ~# c( W. O0 ]+ L* A  H6 W
Active Internet connections (only servers)
" \) A& \) i& w% w# h# v0 F9 k2 F9 B0 n; ~; c# v- X& Y) d
Proto Recv-Q   Send-Q   Local Address    Foreign Address    State, p$ v8 i& h6 r/ q  d) q7 `

$ W) C; M* e0 Z# X  {6 u/ H+ ^. y tcp        0        0     0.0.0.0:139          0.0.0.0:*    LISTEN/ R1 P1 L2 x# S$ W, s0 p$ F5 p

0 p/ ]* c2 P5 |  w! k5 f0 F tcp        0        0     0.0.0.0:445          0.0.0.0:*    LISTEN) t9 q4 |& m( X' O* i/ I0 v3 @

% g2 P8 j! g7 I  Z. e' s3、Samba Client
* |: ^/ o4 A5 X) V# H/ _以下為說明 Samba Client (Windows、CentOS) 如何存取 Samba 分享資源。
( F+ u0 ~$ ?" r. z! _  u! q: J) X7 ~: Z- I: Z0 |4 g1 v
Windows Client* \( s$ C  ^9 Y! z

% V* i, E7 W$ ~0 W. r* p上述設定步驟完成後 Windows 只要開啟檔案總管在網址欄輸入 \\<samba_server> 即會跳出必須輸入帳號及密碼的驗證視窗,您只要輸入剛才新增的 Samba 使用者帳號及密碼即可存取 Samba 資源,若以剛才上述步驟設定所填入的值如下:; y: @  O+ l% |2 x* V8 d8 J. T
檔案總管網址列輸入: \\weithenn-smb\home,也就是 /etc/samba/smb.conf 中所設定的 netbios name = Weithenn-smb 及 home。
- Z/ q* y5 m% Q  n/ j+ A' h/ N驗證視窗欄位輸入: 使用者帳號: user1、使用者密碼: 123456。% w4 p" k# |$ D* ~" k

% T5 Y. S$ J- h若使用命令提示字元則輸入如下 (成功後可將內容存成 Batch File 以利快速設定):, X& d& I+ u" Z1 m( S2 U4 L. g; H& Q
) @4 e  C+ c! l' n" _7 S
方式一、將 Samba 資源連接至 W: 網路磁碟機 (需手動輸入驗證資料)
6 \- |6 {' f/ \9 ?- `1 E net use w: \\Samba_Server_IP\home
. B4 M% W* t" J) M# N! D) u! \$ F+ R8 k
方式二、將 Samba 資源連接至 W: 網路磁碟機 (不需手動輸入驗證資料)& F/ a# R, M+ }
net use w: \\Samba_Server_IP\home /user:user1 123456
8 P4 h! g( f* [. a& ^- ?  Y4 x
4 s9 i2 d( _$ i2 sCentOS Client# C% }, Z* Y* b. z0 S
% \& U, J/ p7 E# c; U  q
若是 CentOS 欲存取資源時可利用如下指令來掛載 Samba 所分享的資源。
4 g) ]5 ]5 ?3 H" z2 T( B) D+ `$ a9 x) t  Z9 D- [
方式一、將 Samba 資源掛載至 /mnt/home (需手動輸入驗證資料)4 c4 D  F$ ^1 t2 a# F2 ~& T
mount.cifs //Samba_Server_IP/home /mnt/home -o
' j, ?3 @  G/ \; C) s7 V8 }: G+ Y& ~
6 L0 c. k% s/ I# }' g7 f方式二、將 Samba 資源掛載至 /mnt/home (不需手動輸入驗證資料)! ~1 l! d& P0 ]2 G$ D8 ~0 o1 D! p
mount.cifs //Samba_Server_IP/home /mnt/home -o username=user1,password=123456! Z2 e9 C) H: F
0 L2 v; Y  \# V0 Y: P$ u
若存取資源完畢要卸載時可執行如下指令即可 (記得先離開 /mnt 下哦)。
3 Y1 x' ]( M8 c# C( k/ {* ^8 iumount.cifs /mnt/home
- P" w# V+ c; i+ k6 D: d* T$ _
umount /mnt/home
' z0 R7 W7 c, w0 Q5 m( R8 m; l, U/ J( M; b5 U( l) L
4、CentOS 存取 Windows 分享資源
4 V1 Y1 L( a4 ^Samba Server 是用於 Windows 存取 CentOS (SMB) 機器所分享的資源,若 CentOS 欲存取 Windows 所分享的資源呢? 以下先說明實作時的相關條件:) e6 h( y) W1 `1 g; ]  C% r* Z

3 i$ B3 x! v$ B: c1 @% wWindows 電腦名稱: user1-XP
: P% [1 E+ A) d1 y! _7 b分享資料夾名稱: Shares  {6 R9 K9 }& [* K& T
可存取 Windows 分享資料夾的使用者帳號: user1 (請確定該使用者帳號存在於 Windows 機器內)
1 ?$ |+ q/ P) N) Z可存取 Windows 分享資料夾的使用者密碼: 123456& ^3 ?4 I3 O' d) b$ J5 Y

1 H% ~3 S/ w) T" G" p9 TCentOS 掛載至本地端檔案系統: /mnt/shares; p8 Y# [1 _; S7 \% j3 M3 x; O0 c
CentOS 帳號密碼檔: /home/user1/secret.txt
. e* J, l8 E+ r1 M+ R* e( ~6 j0 n安全性權限設定: chmod 600 secret.txt, ], u. d0 D6 T6 B

9 ?0 l  p2 O* S- ~5 d2 A了解後我們修改檔案系統設定檔 /etc/fstab。5 [: {% {. R# d4 j
#vi /etc/fstab
$ O0 y; s5 w+ q$ B
" Z: b# ?) v# M$ C LABEL=/1           /        ext3    defaults        1 1
3 V! L* J& a. g6 O
4 w# o5 V- l* h5 r. Z LABEL=/home1      /home     ext3    defaults        1 2
- k. ^4 t0 Z) g
) w3 A" m% P+ \5 n% s+ m LABEL=/tmp1       /tmp      ext3    defaults        1 2
! o% N4 g6 g2 n4 g9 H1 |( S$ x* b- l* M
8 f8 z1 l, J- ~8 p# Z) l( \" c6 ]+ x LABEL=/usr1       /usr      ext3    defaults        1 2
, k; r! Y- V4 {  v1 u3 D6 t0 r3 {( B, y: m7 Y% v& `+ Y
LABEL=/var1       /var      ext3    defaults        1 2/ u8 x9 x' J* V/ Q. F

% @5 r6 {( Q; ]8 C; [7 C- e tmpfs             /dev/shm  tmpfs   defaults        0 0
' }: q3 h& l# \) {, Z! y  |7 Y( a8 j* Y  |! P7 b; l
devpts            /dev/pts  devpts  gid=5,mode=620  0 0# V( T) `, o; p( B" x  w, c
& g' {; u6 f2 J0 G4 x) [
sysfs             /sys      sysfs   defaults        0 0, R' K7 i! |( {+ ?. }
7 Z8 l5 \6 V3 _7 E7 Q8 K
proc              /proc     proc    defaults        0 0) @5 `! K. V8 p) ?3 j3 C6 Z

+ q2 Y) r% M& U% g LABEL=SWAP-sda6   swap      swap    defaults        0 0
( ~- a! K: }* z6 ^) K1 C4 `; O" Q; ]$ }9 J  o3 i
//user1-XP/Shares  /mnt/shares cifs user,uid=0,rw,suid,credentials=/home/user1/secret.txt 0 0 //加入此行
+ u/ v* w! g1 V' d
# x' ]' s% ^7 `8 v# a/ S/ T) Y! y7 E建立存取 Windows 分享資料夾的帳號密碼檔案,請確定該使用者帳號存在於 Windows 機器內:
6 Q  N$ ]7 `7 G* {9 z7 y#vi /home/user1/secret.txt
" s/ m* F1 j3 f% w- r2 \" w( Q" Q" `3 w) _/ ~2 A0 e0 O' b& M: G6 |0 K
username=user1
- g0 _5 i, T- @% u( }; H+ w7 ?9 j0 h3 f7 {3 i* P
password=123456$ Q2 N) \, r8 h) Y6 z

/ m' Q4 u! D0 _7 N設定完成後可使用 mount 指令來更新目前的檔案系統 (也就是讀取 /etc/fstab 更新)。7 C# G# |* G+ u7 B5 p5 p; n" w
#mount -a     //讀取 /etc/fstab 更新8 V' ]3 s. T, D: P. s4 K0 @" K, ^
4 R" {# l' n" e/ u2 a! H
#df -h        //檢查是否成功存取 Windows 資源
+ v% t& n- \# d8 e2 y3 i! B9 }7 m. b, x$ b( Q
Filesystem            Size  Used Avail Use% Mounted on
: e' D- w: f: t3 q* e7 Y, H4 \( X' I( e" b
$ p  ~1 G9 r2 R% ]; w /dev/sda1             9.7G  2.3G  6.9G  25% /& O6 M( S3 g0 G$ v4 z
* y0 I" o- M+ E3 W3 k" y
/dev/sda7             414G  211G  183G  54% /home4 ]$ N" l3 Z: G" Y. |! R

# ]" F! k% d" i& _! T& v /dev/sda5             4.9G  139M  4.5G   3% /tmp: b. Q7 v6 L) T; O, J2 e
9 r3 k, o6 ]7 A
/dev/sda3             9.7G  2.3G  6.9G  26% /usr
) z0 W9 S- W) m* `# n" {# ?% w9 k8 c& F! I. Q6 L5 q
/dev/sda2             9.7G  255M  9.0G   3% /var& U5 P! R3 u7 n- H% h9 q. H1 z
! b3 b8 X8 A8 ~3 w4 M# A
tmpfs                 2.0G     0  2.0G   0% /dev/shm2 }- b& t& w& ^, z& f1 V; [: @5 i
9 O  q" P- Y2 A+ N
//user1-XP/Shares  251G  236G   15G  95% /mnt/shares  //存取 Windows 資源成功
+ w# x, h  I" a5 \! f
& i, R0 M% L1 Y# p# Z6 b' j
[Troubleshooting]# X4 C3 ~# Q& d: G
從client連到server端時出現error:  1 I, s! `8 b8 \2 j$ ]
samba mount error(110): Connection timed out$ F, m8 A0 l' _% L7 w0 q! t
一般這都是防火牆的問題,包含server端跟client都要設定正確,尤其server端需開放port 139,client端需開放 port 4454 d# _, q+ y, [( S( M
8 W2 n; C$ w2 B  b* d; ~4 y
至於 使用 sshfs 來掛載 別台主機上SSH server的檔案系統:
: T2 f& z. J  g1 Y' |

" W; i; g3 c3 ~
用 yum 查一下有什麼 sshfs 相關的套件:3 p" p( r% u. M5 w: j
# yum search sshfs
: N& s; g* V6 R=====================================================================4 h' O% z# j; u1 E/ G# g
fuse-sshfs.x86_64 : FUSE-Filesystem to access remote filesystems via SSH
+ M* n* x) c2 ^: A: o! A: @' l9 B9 r安裝sshfs:& B/ }  J& ?; C% O5 U0 a
#yum install fuse-sshfs
# v* B# S9 Z2 J7 @* O8 m建立掛載目錄:& y  w' s( N: J# X( N" \
#mkdir /mnt/temp
' l/ a4 j2 m  W4 |; w# b7 }用sshfs 掛載遠端的目錄:
2 I# l8 [  e/ O& Z+ P1 F, J% `#sshfs -p 22 [email protected]:/root/  /mnt/temp     //-p port_number , 可以掛載遠端任一目錄,包含 / 根目錄
+ q4 I: a7 f# [4 R[email protected]'s password:    //接著要你輸入遠端ssh root密碼- K( b2 N' @! d, W8 [: w5 t
正常情況此時應該可以看到 /mnt/temp/內已經有些檔案了,而不是空的3 z( g' L6 q- K1 X
如果之前你有設定與主機 192.168.1.2建立公鑰私鑰免密碼連線,你就可以省略輸入密碼的程序,而直接掛載遠端目錄,比較方便& ]5 |6 P1 m3 J( D
* d: ~9 R$ G5 t$ |7 ]5 _: c. y' B& B4 I
帶上密碼而不用手動輸入密碼4 P4 d% H6 T  D1 k$ I+ h
#
sshfs -o ssh_command='sshpass -p my_password ssh' -o cache=yes,allow_other -p 10022 [email protected]:/root/ /mnt/temp! z+ p1 g3 R: i# l2 R+ d, c
註: 如果掛載有問題,可以開啟 debug mode 觀察過程:
  _1 M) O2 \: l; e" Y$ O: P. g* Usshfs -p 10022 -o sshfs_debug -o debug [email protected]:/  /mnt/temp
8 T0 \: {7 m: P9 U

% ?* ]7 e) U9 e# T- g, W' U以一般帳號(非root)掛載時,出現error :6 a5 H2 O" }' I, e7 [+ {/ h% k
fuse: failed to exec fusermount: Permission denied ==> 因一般使用者沒fuse的使用權限
; z  ?" ~0 ~  _" V6 Z. ^/ Als -l /bin/fusermount
+ O; ?4 w1 ~' _$ W-rwsr-x--- 1 root fuse 32368 May 11  2016 /bin/fusermount
, O. U( @4 n3 g7 h; q1 G故 usermod -a -G fuse qqqbox 需加入群組才可使用 fuse
) \: Z2 N7 z7 \; J& N

* m3 W) ]" f- g# n3 r" l/ m+ t可參考 : 在 CentOS 上使用 sshfs 來掛載 SSH server 上的檔案系統     SSHFS:透過 SSH 掛載遠端 Linux 伺服器上的硬碟(適用於 Windows、Mac OS X 與 Linux)1 y& P3 H1 f+ Z
; ~4 P) J) g& X& y
3 z: ]& T7 b7 g3 Y8 d
回復

使用道具 舉報

發表於 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 18:24 , Processed in 0.008993 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

連絡站長.廣告招商

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

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