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

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

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

[複製鏈接]
發表於 2017-9-3 21:06:35 | 顯示全部樓層 |閱讀模式
1、安裝及設定; `7 H& Q& J, i& V* n
分為二個部份說明分別為 Samba Server 與 Samba Client,及 CentOS 如何存取 Windows 所分享的資源。
6 }5 }! B# P# l
% I0 G2 [3 a# x/ O2、Samba Server* [" f" o, k3 I; e9 M
步驟1.安裝 samba 套件& ^, D( {4 \" g3 E2 u3 g

+ V- F4 f$ [, }  ^* A6 j利用 yum 指令來安裝 samba 套件。
* m/ F+ q+ \1 V4 }#yum -y install samba    //安裝 samba 套件
/ w+ L' I# i6 T- ~% t8 P5 y5 E# m+ K
9 P) [9 K# {+ y  }1 Y* u7 S***** 如果linux server 只單純當作 client端,那麼只需安裝smb client套件:
" ?4 ?' \  B. n" v) ^$ j9 M#yum install samba-client samba-common cifs-utils0 E$ p+ N4 x4 i1 B

- l8 O' O9 n4 M; l5 ~4 @步驟2.修改 samba 設定檔 (smb.conf)) ]! ]; p; K" E9 B) E, ~

( T0 i- z  b: ]0 W  @' X* i+ @修改 samba 設定檔 (smb.conf) 內容如下,其中允許 IP 可設定 IP 網段例如 192.168.1.0/255.255.255.0,或者是單一 IP 位址例如 192.168.1.18。" u: O* U3 G* W( n, f/ U" p0 X9 P# s
#vi /etc/samba/smb.conf  //修改 samba 設定檔) f" }  E6 m, a! s! Q

' J! U& `1 S* \3 X global                                 //通用設定
* D, _6 g5 |% q- S
6 y" v: r& M; @- B! L& U netbios name = Linux-smb            //顯示於 Windows 網路芳鄰的電腦名稱
0 L. f5 m1 d" Q  J/ z5 ?
1 c9 c8 T: R* x3 s0 J workgroup = WORKGROUP                  //顯示於 Windows 網路芳鄰的工作群組名稱
1 D0 J7 z3 M- J2 E/ G% m1 U" u# F% ?$ p7 ~, _6 Q& x
hosts allow = 127. 192.168.1.18        //允許此來源 IP 位址可存取 Samba 資源
) l( u- @7 E) a1 v! i. J* E+ t: v, {- }. \
hosts deny = ALL                       //除了上面允許的IP之外禁止其它IP存取Samba資源
( @4 ?8 p: a+ ?% V; i1 R7 W9 a7 J' b/ o
security = user                        //安全等級user需在Samba主機上擁有帳號者才可登入
  w, W3 f, \5 s" o  r3 k' Z8 z3 V7 G5 W: x$ `. L! s
encrypt passwords = yes                //是否對密碼部份進行加密
7 ]/ Q; S) W4 ^4 {: `  u( {2 @" E/ L+ p$ J: A1 i% t
display charset = utf8                 //Samba 上所顯示的編碼
! d; E% S5 J& d0 K8 Z, d7 Z
& \" e" U4 k; w2 o: m5 U  V unix charset = utf8                    //Linux 上所顯示的編碼
6 W1 V. S0 r. m; T- H
9 ?+ F+ E  X7 @/ c dos charset = cp950                    //Windows 用戶端的編碼 (可正確顯示中文)
% H5 c! \; |# j% ?) _; J, V. N- M4 v0 L
home                                   //分享設定,屆時顯示分享資料夾的名稱+ x) Y3 J- Q+ B( f  B
& b0 ^- l' B! o/ M: _5 t
comment = Weithenn Samba Files Shares  //分享資料夾的註解
9 Y5 d" o# `/ [$ H; ~- E, c+ R# W5 E9 z0 J$ ^& Z3 _
path = /home                           //分享路徑; b9 M' f) O+ V  E% \( g( c2 ]8 u

# f% y5 Z+ }. R% [3 ~, W" L4 f valid users = user1,@smbuser        //允許user1使用者及smbuse群組可存取資源
+ W# A8 f! C8 Y6 T* e
; z* A) E% j1 ]. ?# ^ public = yes                           //允許使用者登入後可看到此分享資料夾& K  J6 H5 t# o) k5 @0 ?, u* Q3 @
8 K& s' i" q* H9 x& I, T
writable = yes                         //允許寫入
4 V) o9 S3 ]9 w% Y  x8 e. u) i
; p; Y" [; R" g: A& U create mode = 664                      //建立檔案的權限 (該檔案在 Samba 中權限為 664)" e3 Y5 ^; G4 Z8 j
6 {$ d+ k! Q# m/ P/ w
directory mode = 775                   //建立資料夾的權限 (該資料夾在 Samba 中權限為 775)
+ E. q: _. _% y" X6 K$ q5 X; Q4 e% }! |) n; C
5 v- Q1 Y$ j1 T5 v
步驟3.建立 samba 帳號9 x7 d. i8 a. e6 p! n7 l' G

4 z" `& I  ~6 X6 S/ l( B$ A  t設定完成後我們可利用 smbpasswd 指令來建立 Samba 帳號及設定 samba 密碼,下列指令為建立名稱 user1 的 samba 帳號。
, k) ?; k$ \; B' M) o$ j  j#smbpasswd -a user1  //建立 samba 使用者帳號 user1
  C, p* k% P& w1 s% S8 c# R
( i8 n0 V+ j  A, Z2 Z$ P% ~ New SMB password:        //輸入使用者帳號 user1 的 samba 密碼4 E% y, C! U1 Q0 ~% z
0 L# G6 ]7 ~! @7 H2 h
Retype new SMB password: //再輸入一次使用者帳號 user1 的 samba 密碼
8 N0 R3 g: a: [- L3 R4 r9 S  {. a: a7 R0 [/ U2 g
Added user user1.     //新增 samba 使用者帳號 user1 成功2 u( i) _" B% f  r9 k2 Z+ L6 \! }/ T
+ l' a4 z/ g3 J
新增完成後可查看 samba 的使用者帳號密碼檔案,確定該帳號確實已新增且密碼為加密過7 [. W+ {6 M+ Z% x
#cat /etc/samba/smbpasswd  或者
9 A2 B' s; |9 ^#cat /var/lib/samba/private/smbpasswd
! f& `, b& q$ q user1:0:52867A67D9C33529AAD3B435B51404EE:96FAFEDB623AA395895B19578404B070:U          : LCT-41CAF287 :. O# h( _+ e- O( A+ E$ ^

* m3 c/ g9 s/ _& A! I. D步驟4.啟動 samba 服務* ?5 N) f6 V' S. ]. ~

! C$ w* X* }3 d- O; Z' S: F- h2 {在啟動 samba 服務以前我們先將 samba 服務 (smb) 設定為若系統重新開機會自動啟動 smb 服務。# ^- w/ l. [- M' e8 h
#chkconfig smb on1 y6 B& K( N  m' Z

% X# _' F5 B* C$ g/ S使用 chkconfig 指令來查看 smb 在各 runlevel 下狀態 (也就是 runlevel 在 2、3、4、5 時會啟動 smb 服務)。
8 {. N, y! D, J" D+ }' d9 B#chkconfig --list |grep smb5 p5 Q5 Q7 V5 H5 Q1 t

# ?  E! N+ B( V( F6 U2 W6 L smb             0 : off   1 : off   2 : on    3 : on    4 : on    5 : on    6 : off
& R1 @" R4 X2 o3 P# W. r* w4 f7 a- ~5 i. J/ J8 N
完成上述設定後便可以啟動 smb 服務
: h# z. |& h, \4 e#/etc/rc.d/init.d/smb start: g1 L$ q9 J. n2 @- s. p1 n
; d+ z; f  c  V& E" w) B
Starting SMB services:                        [OK] $ c4 d9 E( v, s( `( L
6 p! j+ N( ^# k9 E- I8 ?
Starting NMB services:                        [OK]  
* z) n. K7 ]* T) ^
, |5 Q: i' l* L檢查服務是否啟動成功,其中 Port 139 為 NetBIOS Session Service 服務而 Port 445 為用於 CIFS Protocol。
" V, @/ d, r& n#netstat -tnl
4 s' W: Y, r) w5 A- o' s/ L% Y8 C$ q! w* O" B: h
Active Internet connections (only servers)
- S4 X% C. U7 U; a6 R  _
1 ]7 a0 k% T1 Q. E3 \4 J) w5 K8 ~! x Proto Recv-Q   Send-Q   Local Address    Foreign Address    State) F6 D8 B# l) ]8 |
8 e- z' [1 o4 }- \" |
tcp        0        0     0.0.0.0:139          0.0.0.0:*    LISTEN% a5 r2 r; x& Z3 o

* I! i! `( e  \; s7 `, H& T tcp        0        0     0.0.0.0:445          0.0.0.0:*    LISTEN
. b" y: u& {0 B+ G& h: B- P
2 I3 f; q. [+ t. `3、Samba Client. m$ C% ^1 f5 a' U3 G
以下為說明 Samba Client (Windows、CentOS) 如何存取 Samba 分享資源。7 c" O  j. z7 E+ ]3 G: k

. Y6 U. b) D9 P8 I) q6 s4 rWindows Client& L2 `. D5 d- o  D- a' \9 W

* U% W$ G! }$ c+ d1 p9 d3 s* r% f上述設定步驟完成後 Windows 只要開啟檔案總管在網址欄輸入 \\<samba_server> 即會跳出必須輸入帳號及密碼的驗證視窗,您只要輸入剛才新增的 Samba 使用者帳號及密碼即可存取 Samba 資源,若以剛才上述步驟設定所填入的值如下:
, L! \  a# [$ x, i* m, b檔案總管網址列輸入: \\weithenn-smb\home,也就是 /etc/samba/smb.conf 中所設定的 netbios name = Weithenn-smb 及 home。
  |4 W- _( F: n) ~驗證視窗欄位輸入: 使用者帳號: user1、使用者密碼: 123456。
' q  |9 [. U7 E* q& j  k+ j, n+ c1 `3 G  I
若使用命令提示字元則輸入如下 (成功後可將內容存成 Batch File 以利快速設定):/ t$ L9 C5 |9 r2 c3 }0 _2 p

& @3 O" o  }, ]1 K+ [; ~方式一、將 Samba 資源連接至 W: 網路磁碟機 (需手動輸入驗證資料)
* r8 d: ^# k0 L+ {9 v, y5 }% m- X- F! G net use w: \\Samba_Server_IP\home
$ b( v# }! o' N* _$ D" G
2 y% _$ F* }- o  E5 w# H方式二、將 Samba 資源連接至 W: 網路磁碟機 (不需手動輸入驗證資料)0 @$ K$ E  w+ ?, b4 M
net use w: \\Samba_Server_IP\home /user:user1 123456
( R, K( N- z: i. U$ Q2 M
! {- k# l, m; F3 x5 o8 eCentOS Client4 |: I( y1 V0 b& `* ?" @

- p8 L$ {2 {+ V8 k若是 CentOS 欲存取資源時可利用如下指令來掛載 Samba 所分享的資源。
7 r! k) N9 a8 Z1 k& z
" {$ [/ [7 C; V& O( u& @方式一、將 Samba 資源掛載至 /mnt/home (需手動輸入驗證資料)2 S' k2 v& A9 P# u
mount.cifs //Samba_Server_IP/home /mnt/home -o
8 q# Q* }1 D9 t& Y; k& l/ V) E6 p* Y5 o$ j  Z2 S$ B
方式二、將 Samba 資源掛載至 /mnt/home (不需手動輸入驗證資料)
( M1 n% a' F+ ?8 Y8 \5 n) y1 Lmount.cifs //Samba_Server_IP/home /mnt/home -o username=user1,password=123456
" h% h& w& ?" h/ l
; L* k2 K; P9 Y' c& v# M若存取資源完畢要卸載時可執行如下指令即可 (記得先離開 /mnt 下哦)。3 T+ c6 q' y* x$ B
umount.cifs /mnt/home
- v/ v- d# V+ c: G- m
umount /mnt/home$ {/ |2 d) s9 \* `+ G

! w/ i8 f6 g1 S0 ^; y, T1 ^4、CentOS 存取 Windows 分享資源% Y' Z8 d9 ]6 y- Q, g% v
Samba Server 是用於 Windows 存取 CentOS (SMB) 機器所分享的資源,若 CentOS 欲存取 Windows 所分享的資源呢? 以下先說明實作時的相關條件:  X& Z7 r, N  z7 Y1 w& O9 u9 l5 q

% A4 E! r* B6 |Windows 電腦名稱: user1-XP
+ Q; S1 L5 s- p) D分享資料夾名稱: Shares
& z; Z+ \1 n7 H可存取 Windows 分享資料夾的使用者帳號: user1 (請確定該使用者帳號存在於 Windows 機器內)
1 b: N0 \. T, S; D4 l; B( g; ~3 }可存取 Windows 分享資料夾的使用者密碼: 123456( \' b$ t0 Y. I1 U2 p8 I

/ s5 ?" B4 e- E5 c1 V  PCentOS 掛載至本地端檔案系統: /mnt/shares
3 d7 ~9 A! H7 @+ ]CentOS 帳號密碼檔: /home/user1/secret.txt
! N6 _3 J' u" I- |0 }安全性權限設定: chmod 600 secret.txt- b7 z: D1 h0 v/ F: h; d3 L0 Z

; N& Y' X" Y/ X了解後我們修改檔案系統設定檔 /etc/fstab。1 Y* l1 I' e$ ]& a6 m' N3 t) ~( w
#vi /etc/fstab
% D9 Q* I9 i5 o
# F( W0 o' p4 X  d! [8 O- I! i LABEL=/1           /        ext3    defaults        1 1
/ x- B  q( N0 k! q
& Y, M2 i- `& x LABEL=/home1      /home     ext3    defaults        1 2  f; V9 S) ^. p3 D
! x2 }, ~8 ^5 F
LABEL=/tmp1       /tmp      ext3    defaults        1 2
4 ]8 n- q8 `7 l) ?& e
) F8 C6 {( a: S. t. l LABEL=/usr1       /usr      ext3    defaults        1 2
! B" r( V3 M/ t- n( s$ u% S% }1 T8 n, F: u$ |: ~
LABEL=/var1       /var      ext3    defaults        1 2
. I7 v1 q2 U! G
. p& U; o( H# A0 t" [ tmpfs             /dev/shm  tmpfs   defaults        0 00 ^& ~7 f! M) ~+ K: A

% d' B# G' C) Y& ? devpts            /dev/pts  devpts  gid=5,mode=620  0 0! m/ O0 p& U& S1 z: O' c
1 ~/ s, k6 d9 g6 e7 U6 w
sysfs             /sys      sysfs   defaults        0 0
4 H+ ^& P. ^; V4 i8 O% K0 O+ L) O- o) h" A) t' M9 [4 B9 o" s; T
proc              /proc     proc    defaults        0 01 O0 x5 u$ ]+ d8 K! x

1 `9 Q3 S5 _; d0 ^! H9 V% f LABEL=SWAP-sda6   swap      swap    defaults        0 0
" ?& V) O+ J' [4 G/ p* w. x- A: R5 K! D- {( }' w8 U
//user1-XP/Shares  /mnt/shares cifs user,uid=0,rw,suid,credentials=/home/user1/secret.txt 0 0 //加入此行2 V4 _# k" s2 j3 J

1 [3 a0 }# [: V$ F2 R建立存取 Windows 分享資料夾的帳號密碼檔案,請確定該使用者帳號存在於 Windows 機器內:/ i- g" I( \0 ]# \$ S. U
#vi /home/user1/secret.txt
# \2 ^6 D  b: O. ^& A* u4 s! |# X2 ]3 r$ u; ~" U" d% ^0 ^+ c
username=user15 X. I% _! ?  [, h% j

; S5 C6 l" f- Z# ~1 x password=123456
' f5 j* q) h2 d. ~8 e$ ]- u0 [0 v% E5 u
設定完成後可使用 mount 指令來更新目前的檔案系統 (也就是讀取 /etc/fstab 更新)。1 f' I; G5 v9 W9 A  r( Z$ v
#mount -a     //讀取 /etc/fstab 更新, a+ t% q8 I2 u+ J7 c9 w  o! Z
9 ]; W$ l2 b2 ?8 v# ?6 g
#df -h        //檢查是否成功存取 Windows 資源
: x, |! a% b( Y7 d
, c; d$ |, A& ?! ~ Filesystem            Size  Used Avail Use% Mounted on
$ e& J, d) i4 [- V" [1 {- j& {8 V; @1 m2 P. e+ H
/dev/sda1             9.7G  2.3G  6.9G  25% /
# ]; ^, D/ _5 {  L5 @3 f$ |
6 G, S' M: `. f2 z5 k  ~ /dev/sda7             414G  211G  183G  54% /home
( w% u' ?5 T# V3 J! t6 F
. J  y% m, j9 {6 l6 y$ m4 G /dev/sda5             4.9G  139M  4.5G   3% /tmp/ ^6 e: ~) D( `$ A' j7 l4 @
" w+ f% r: E3 k, n) B% }
/dev/sda3             9.7G  2.3G  6.9G  26% /usr
$ t) i) X, x/ q  H' b  D& n  C0 w
  R* J4 s( E5 a2 u( d /dev/sda2             9.7G  255M  9.0G   3% /var5 `# r% b  Y$ d: E* g! `' p
8 a" P$ V1 [1 r7 \
tmpfs                 2.0G     0  2.0G   0% /dev/shm
, t) {6 i% _" E3 ?# f; J- C0 F2 A  r9 v8 [+ E6 e6 D2 r
//user1-XP/Shares  251G  236G   15G  95% /mnt/shares  //存取 Windows 資源成功

0 R( q* L* Y; \! |

, h) y* Z3 B5 X/ ]/ j- O" _0 C[Troubleshooting]' d9 T6 p  x5 _2 [9 R* M
從client連到server端時出現error:  " X0 o2 {! S2 t+ z  t1 B5 S5 B, k. S
samba mount error(110): Connection timed out
; s5 O3 C5 S/ {# K9 _# R# f一般這都是防火牆的問題,包含server端跟client都要設定正確,尤其server端需開放port 139,client端需開放 port 4459 ^; K9 Z& V2 N! `
& @9 u5 U7 `9 e2 O
至於 使用 sshfs 來掛載 別台主機上SSH server的檔案系統:4 }$ v5 d2 w$ r7 Y. k( n, j

" m8 [$ }+ y+ Q2 h6 U
用 yum 查一下有什麼 sshfs 相關的套件:' a; s  A# J2 J; s7 I
# yum search sshfs5 j  K, `# D+ @, n, Z9 f; }
=====================================================================
) A. c8 q) S* Wfuse-sshfs.x86_64 : FUSE-Filesystem to access remote filesystems via SSH
$ D" i* v/ }2 J/ V* p' U安裝sshfs:* @/ p6 @# k% Z- V; H
#yum install fuse-sshfs
& `8 B5 z6 \9 @: {9 t建立掛載目錄:$ w* g! b5 z8 y
#mkdir /mnt/temp
7 w, ]- l1 ^% k/ G用sshfs 掛載遠端的目錄:& i' R& M+ ^9 u; \$ _0 ~
#sshfs -p 22 [email protected]:/root/  /mnt/temp     //-p port_number , 可以掛載遠端任一目錄,包含 / 根目錄
/ ]2 x* C, D2 I! b: u[email protected]'s password:    //接著要你輸入遠端ssh root密碼
. J/ A; Z" n' P. {: G* }正常情況此時應該可以看到 /mnt/temp/內已經有些檔案了,而不是空的
3 Q1 X+ D) s7 q+ M. ?: P如果之前你有設定與主機 192.168.1.2建立公鑰私鑰免密碼連線,你就可以省略輸入密碼的程序,而直接掛載遠端目錄,比較方便" c/ r3 |, @$ z# o% l) W7 T

6 `0 q5 S; m+ ]: L) ]帶上密碼而不用手動輸入密碼
  w8 V7 y7 a# h7 @$ j( K#
sshfs -o ssh_command='sshpass -p my_password ssh' -o cache=yes,allow_other -p 10022 [email protected]:/root/ /mnt/temp! P  ~' Z3 z9 b: g. E
註: 如果掛載有問題,可以開啟 debug mode 觀察過程:
0 ?8 I$ Q+ A) L0 S3 w2 a, \sshfs -p 10022 -o sshfs_debug -o debug [email protected]:/  /mnt/temp, n( S- o& |' p( }9 N( w7 @( k; M
, ^; a1 ~- Y: `8 D3 {
以一般帳號(非root)掛載時,出現error :6 Z5 _; V1 Q, f# j8 v: r
fuse: failed to exec fusermount: Permission denied ==> 因一般使用者沒fuse的使用權限, I9 {/ a& P1 g8 r# k$ I  d  k
ls -l /bin/fusermount& g: q3 j& V: k; D0 Z
-rwsr-x--- 1 root fuse 32368 May 11  2016 /bin/fusermount% d7 z7 @2 k; Y7 [$ |
故 usermod -a -G fuse qqqbox 需加入群組才可使用 fuse/ l6 L* m- u4 I( O

( k: h7 p( U/ D* k5 o/ m可參考 : 在 CentOS 上使用 sshfs 來掛載 SSH server 上的檔案系統     SSHFS:透過 SSH 掛載遠端 Linux 伺服器上的硬碟(適用於 Windows、Mac OS X 與 Linux)
! r. g" ]1 E3 o  y& t" l( G9 U& n  ?

  u4 E" `+ [7 y  n, B
回復

使用道具 舉報

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

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

連絡站長.廣告招商

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

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