in header_common.htm --> -->

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

 找回密碼
 立即註冊
快捷導航

Yahoo!奇摩搜尋
熱搜: 手機A片
Google奇摩搜尋
熱搜: 手機A片
     
查看: 14446|回復: 3
打印 上一主題 下一主題

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

[複製鏈接]
跳轉到指定樓層
樓主
發表於 2017-9-3 21:06:35 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

1、安裝及設定" i. b. W$ n: Y+ j9 M
分為二個部份說明分別為 Samba Server 與 Samba Client,及 CentOS 如何存取 Windows 所分享的資源。
" B* w( x# |: ^* G( c3 j  n: N. `$ L
2、Samba Server
$ Q8 t( U" H0 R5 B3 ~2 o6 s步驟1.安裝 samba 套件
) r5 E9 |1 a$ g+ |0 ~6 q
/ C1 P! Z/ e! }5 P4 D利用 yum 指令來安裝 samba 套件。  ?( E+ z8 {- y  ^+ R
#yum -y install samba    //安裝 samba 套件
' g$ q* b  q  `
. z$ H* ?) n5 @: Y( r! U1 r***** 如果linux server 只單純當作 client端,那麼只需安裝smb client套件:
' |! Y) O6 I6 o) O! u- |#yum install samba-client samba-common cifs-utils5 Z( J9 f- A6 w
) f4 P. C- b2 b
步驟2.修改 samba 設定檔 (smb.conf)8 t- q; G" w6 n

" n* j% G# C" R8 ^6 T6 _. P修改 samba 設定檔 (smb.conf) 內容如下,其中允許 IP 可設定 IP 網段例如 192.168.1.0/255.255.255.0,或者是單一 IP 位址例如 192.168.1.18。
5 _5 h. X' e4 r; r. Z4 `0 |#vi /etc/samba/smb.conf  //修改 samba 設定檔3 j  C6 y" e4 O7 q6 e' \  m
. E$ I9 r) a" p" N1 `# \+ a, `
global                                 //通用設定
- Y. D7 ~. y/ Q' B: f+ U6 E! x3 b* c6 O6 I
netbios name = Linux-smb            //顯示於 Windows 網路芳鄰的電腦名稱
4 ?: U) i( ?8 f' f8 d$ _
+ _* C$ u, @8 a0 u workgroup = WORKGROUP                  //顯示於 Windows 網路芳鄰的工作群組名稱% D3 g) F# L5 p, L

) ]6 _% m! d! C2 |! H hosts allow = 127. 192.168.1.18        //允許此來源 IP 位址可存取 Samba 資源
7 t. W% u) |0 K( S5 O! x
" v: V' B; l8 \6 y8 @7 B) A2 ?0 E hosts deny = ALL                       //除了上面允許的IP之外禁止其它IP存取Samba資源4 R1 x* ~& P7 s6 x- m
' I0 t" q/ ]8 J, t1 Y, P7 c! h1 t  Q
security = user                        //安全等級user需在Samba主機上擁有帳號者才可登入  U" }; N# c# a1 ~  P" f6 w! j

9 c2 M! Q- Y+ j$ T0 ^  K encrypt passwords = yes                //是否對密碼部份進行加密. n: D4 ]' G+ S: H
. w9 P7 @3 _3 V" P1 M& q" M* d
display charset = utf8                 //Samba 上所顯示的編碼  w* ~- _& ]# {1 E

0 Q7 G2 x* m2 j& S; N4 A' u+ [7 M unix charset = utf8                    //Linux 上所顯示的編碼
  ]/ f, V+ i$ J7 q
0 u" _( _! |* R% [1 x5 Z dos charset = cp950                    //Windows 用戶端的編碼 (可正確顯示中文)3 S  {; y4 |. E& o& Q4 z6 j

' D9 x8 V' c% D: j: @5 `. y; h home                                   //分享設定,屆時顯示分享資料夾的名稱" z- H. o" Z8 ^

' C) J! W6 X! ~- p- d$ F& J comment = Weithenn Samba Files Shares  //分享資料夾的註解
: _2 |1 O9 H2 B3 Y, {  L( X. Z  [
5 }: v" K0 G. b# L0 X& S$ ?) ~- w  Z path = /home                           //分享路徑6 e2 |, ?7 i( D; J, N+ K% A$ ~
2 s) |$ `; b% g( _
valid users = user1,@smbuser        //允許user1使用者及smbuse群組可存取資源$ `) c5 d/ W' T$ U( S

+ M6 {, G% d& a* P0 ~- q public = yes                           //允許使用者登入後可看到此分享資料夾/ `; `+ G  q1 t
, k% x3 d+ s6 f) E- l) F+ ?
writable = yes                         //允許寫入
1 H  q8 [% P/ j) O2 V( ^' K: a2 y( a7 h# I& w: h
create mode = 664                      //建立檔案的權限 (該檔案在 Samba 中權限為 664), y; {% H3 x! U

: x" F6 V, p6 k) h& d" p directory mode = 775                   //建立資料夾的權限 (該資料夾在 Samba 中權限為 775)
& c4 B! \  C) ^# m
, J) U- U1 ?* Z7 }
% i# V) p$ o$ H6 j步驟3.建立 samba 帳號
9 R/ M; t' k! O( o' z' {' [( C6 T* s
設定完成後我們可利用 smbpasswd 指令來建立 Samba 帳號及設定 samba 密碼,下列指令為建立名稱 user1 的 samba 帳號。& J5 n* ?5 ~" ^7 f  B
#smbpasswd -a user1  //建立 samba 使用者帳號 user1
+ T/ Y7 b, e( e$ Q8 q  i
7 t6 y9 g* q( Y New SMB password:        //輸入使用者帳號 user1 的 samba 密碼
/ |" K8 t( d8 n& s0 M0 {/ p# Z. Y9 p: }/ v0 |( s
Retype new SMB password: //再輸入一次使用者帳號 user1 的 samba 密碼
( C* O! l1 O- ?2 I, i: `" _' e" g( p% Q# U: P. [* Y( `2 B1 w$ E
Added user user1.     //新增 samba 使用者帳號 user1 成功7 s1 x+ p4 E5 y7 @
; G, }( X' Y, h+ O
新增完成後可查看 samba 的使用者帳號密碼檔案,確定該帳號確實已新增且密碼為加密過: W  f0 \$ Y6 Z$ z; j' ^$ W
#cat /etc/samba/smbpasswd  或者
% z7 g& U& S, n. l. S#cat /var/lib/samba/private/smbpasswd) h( G1 ?+ r5 `( Z& t4 K
user1:0:52867A67D9C33529AAD3B435B51404EE:96FAFEDB623AA395895B19578404B070:U          : LCT-41CAF287 :
0 ?, `# d: ~% w7 e9 x1 A% O* @  q8 b4 z$ F9 @6 Y- \& s" c
步驟4.啟動 samba 服務
8 A' A% p8 S8 R9 g- }, u
  ^7 j- M. h8 @5 |+ w9 q5 Y在啟動 samba 服務以前我們先將 samba 服務 (smb) 設定為若系統重新開機會自動啟動 smb 服務。
8 t3 ~( S6 t9 y6 A/ O+ e#chkconfig smb on
, Q  h* a1 i2 Q+ e& B/ s' o+ b% R- t" X( w, I9 J2 H: h* f
使用 chkconfig 指令來查看 smb 在各 runlevel 下狀態 (也就是 runlevel 在 2、3、4、5 時會啟動 smb 服務)。
; T( C) q* V( m. i#chkconfig --list |grep smb& g, h) r% A5 ~, G" ]
% N3 T" l% e  Q: x9 A& S
smb             0 : off   1 : off   2 : on    3 : on    4 : on    5 : on    6 : off
9 d, Y% v; c  p+ s
- q) x/ a2 q" O$ c/ `0 C5 t完成上述設定後便可以啟動 smb 服務) B. @- e) v" P2 T
#/etc/rc.d/init.d/smb start
' P( X9 ?& f8 g, h8 Q, \% t% T( m5 ~- O5 v
Starting SMB services:                        [OK]
9 R. B7 K# J% E$ g
) O7 H7 g6 k& r' o4 O. a Starting NMB services:                        [OK]  $ ^  ~! |! W# h* ?

' k5 B1 O+ t8 w檢查服務是否啟動成功,其中 Port 139 為 NetBIOS Session Service 服務而 Port 445 為用於 CIFS Protocol。! }" W8 h+ h4 z7 f  S) C" Y
#netstat -tnl
6 J2 Y: ^& V; H, W  S" c
# Z0 A3 m, v& ~2 n% N Active Internet connections (only servers)5 Y7 {% I5 |. L
8 U$ V$ p8 |! q$ U+ }% Z$ y, \
Proto Recv-Q   Send-Q   Local Address    Foreign Address    State' k" j5 M. l9 C: m# ^3 W' `! @

4 U4 h) T' u( ?7 y2 M; u$ w$ o$ U tcp        0        0     0.0.0.0:139          0.0.0.0:*    LISTEN) }) [5 ?6 Q) t4 N
! {7 P. z1 S% A" `! Y2 v8 o
tcp        0        0     0.0.0.0:445          0.0.0.0:*    LISTEN
% ^" J2 c5 X8 Z7 a) Q  ^; }( A/ }' i8 y+ U0 u! `( \6 i
3、Samba Client/ m# ]: s- O8 x) e% K3 v4 }
以下為說明 Samba Client (Windows、CentOS) 如何存取 Samba 分享資源。( {' R2 |# |5 J+ Y) Z7 v# n
* N- q: W. }- b0 U
Windows Client
9 ?/ m" h$ y( I. ?  v
) p5 \3 ?5 t' C& t2 Y上述設定步驟完成後 Windows 只要開啟檔案總管在網址欄輸入 \\<samba_server> 即會跳出必須輸入帳號及密碼的驗證視窗,您只要輸入剛才新增的 Samba 使用者帳號及密碼即可存取 Samba 資源,若以剛才上述步驟設定所填入的值如下:3 g+ R2 Q& E) A
檔案總管網址列輸入: \\weithenn-smb\home,也就是 /etc/samba/smb.conf 中所設定的 netbios name = Weithenn-smb 及 home。
8 y+ \3 \4 r2 A8 Y6 k; R驗證視窗欄位輸入: 使用者帳號: user1、使用者密碼: 123456。* K7 _7 `! J& t6 X2 c, G8 G
) `* `1 ?6 W+ W: `# W( R' `
若使用命令提示字元則輸入如下 (成功後可將內容存成 Batch File 以利快速設定):# U; M) Y8 }) _* |. E2 J0 R7 W! ~

; U/ b0 t! P* n) m' ^8 ~) O& h! z方式一、將 Samba 資源連接至 W: 網路磁碟機 (需手動輸入驗證資料)5 ?+ K5 W" B! G+ D7 e4 g
net use w: \\Samba_Server_IP\home
5 Q. W0 d. H" Z8 F3 w8 B3 O5 n' P0 G" x+ V! G
方式二、將 Samba 資源連接至 W: 網路磁碟機 (不需手動輸入驗證資料)4 e" l) w2 z+ V" X5 @9 p" v
net use w: \\Samba_Server_IP\home /user:user1 1234567 s* U- P& h" C0 C9 Y# M( i1 O

0 n6 r; K) J: I  q6 kCentOS Client
' d' k* r9 D8 a' N! d- n. R; }! p  f1 B+ m/ V
若是 CentOS 欲存取資源時可利用如下指令來掛載 Samba 所分享的資源。- B& {6 g4 b) o  _" ]" ~) K3 T

& n5 `* Z4 y5 h$ H2 T) ]4 r方式一、將 Samba 資源掛載至 /mnt/home (需手動輸入驗證資料)
: |9 S# s' q3 z9 S/ [# Pmount.cifs //Samba_Server_IP/home /mnt/home -o
! v8 b9 [  o  `- m- f% L8 F, v: x$ M; Y) ^; @/ N
方式二、將 Samba 資源掛載至 /mnt/home (不需手動輸入驗證資料)+ M% X1 D" H! F+ L/ n2 s& N* K! m
mount.cifs //Samba_Server_IP/home /mnt/home -o username=user1,password=1234566 J# Y5 {$ c' J7 F8 F4 h

% u: |; ?- ]: r) A# v9 X5 c5 n6 D若存取資源完畢要卸載時可執行如下指令即可 (記得先離開 /mnt 下哦)。
/ L; Z. x% S$ M2 \/ A' f! ?: ?umount.cifs /mnt/home
: U% x! q! @$ X' ]2 W4 D0 y4 ^
umount /mnt/home
6 o7 T0 l5 s1 ~$ _8 g+ E# {: J5 Z+ H* D2 n' b. O
4、CentOS 存取 Windows 分享資源
7 N9 r# M4 A8 M6 b: gSamba Server 是用於 Windows 存取 CentOS (SMB) 機器所分享的資源,若 CentOS 欲存取 Windows 所分享的資源呢? 以下先說明實作時的相關條件:3 x  x( g' G' z" q( ~: u0 [
' v  J9 `0 m" k$ [/ g8 \
Windows 電腦名稱: user1-XP
* x# v( l8 L+ R1 o& C% M0 K分享資料夾名稱: Shares
+ _( S( _4 ]% g& X" n$ T可存取 Windows 分享資料夾的使用者帳號: user1 (請確定該使用者帳號存在於 Windows 機器內)
( g3 ^. k3 o' c6 l9 ~可存取 Windows 分享資料夾的使用者密碼: 123456
' ?% F/ ~! j( u( z( \1 S
3 w& m' \( h& p! n) h  q* y8 q8 ^0 pCentOS 掛載至本地端檔案系統: /mnt/shares5 p: |( l6 R- R5 G
CentOS 帳號密碼檔: /home/user1/secret.txt' b- [5 l- ~; l4 A- A6 x5 Q/ ?/ w& e: {9 b
安全性權限設定: chmod 600 secret.txt* v+ K7 q: L$ N# }

0 |' t: Z$ r2 |; c了解後我們修改檔案系統設定檔 /etc/fstab。6 F1 q: h3 n5 M4 n3 a! K* T3 D3 n
#vi /etc/fstab: K2 ~' b& R* \
7 f8 [9 i4 h( B- B
LABEL=/1           /        ext3    defaults        1 1/ L( p( k2 p0 ]( m- k
  S5 N0 C$ u: p( b- U
LABEL=/home1      /home     ext3    defaults        1 2
  r# m% N2 k7 J% m
9 V  `: b& ~7 q% x% G4 M LABEL=/tmp1       /tmp      ext3    defaults        1 2* d& g% Y3 W% M9 C$ F5 p
' c) i1 @& V% p3 N" [% k% c# z
LABEL=/usr1       /usr      ext3    defaults        1 2; I1 D% \9 o  i4 ^5 Q. P( Y

, r9 \1 W* m8 Y7 m! C9 p0 z) y/ j LABEL=/var1       /var      ext3    defaults        1 2) z) L/ y* F8 S/ O: @! j

! ]. Z! U5 g0 r0 t6 Y. c. O- \5 l tmpfs             /dev/shm  tmpfs   defaults        0 0
' n5 ^" F" y. t4 t$ _4 L
3 {3 j4 s3 u6 W2 L! W* q& y devpts            /dev/pts  devpts  gid=5,mode=620  0 0
8 ?) C4 p  `/ Y9 F# X# V
3 f' ~- V+ G8 i5 M, Q: ~ sysfs             /sys      sysfs   defaults        0 0
$ A9 p& l. x' c
4 l) A' c# w, J( p$ r. ^) G proc              /proc     proc    defaults        0 0
2 ~. T% Y* Y$ V, S0 ~4 @. G
4 |* J: X% ~$ \ LABEL=SWAP-sda6   swap      swap    defaults        0 09 @  o$ L3 y; L1 i* k0 U, H

: p4 T) F# `7 C( J //user1-XP/Shares  /mnt/shares cifs user,uid=0,rw,suid,credentials=/home/user1/secret.txt 0 0 //加入此行" e) m0 W1 {( C' K" q0 j, z  I
  n# K: `% D+ t" \
建立存取 Windows 分享資料夾的帳號密碼檔案,請確定該使用者帳號存在於 Windows 機器內:
  x2 H$ a" P% C- Y! H0 a" n#vi /home/user1/secret.txt
+ r& t$ k2 I8 Q- S: _6 V' g7 _
, J, X' N, p! h7 B username=user16 n8 ?! d; [) `' ^; E5 ^1 M

& R* T5 {8 O. A4 Z) z password=1234565 F$ c8 L1 q5 y7 y
( e5 w" E% C/ T0 ^
設定完成後可使用 mount 指令來更新目前的檔案系統 (也就是讀取 /etc/fstab 更新)。
( H" G( ^" q+ I  M" g1 W  C7 \1 ^  ]#mount -a     //讀取 /etc/fstab 更新
2 y+ o% U: F7 e+ Z# Z7 M% e6 |: M  ^
#df -h        //檢查是否成功存取 Windows 資源
" C. R. ]2 E  p2 V* @+ |, p& N1 y) L9 [
Filesystem            Size  Used Avail Use% Mounted on
- [! u, k' D, ?4 E8 J
+ v7 K6 t4 x6 r8 L1 ^, q9 \ /dev/sda1             9.7G  2.3G  6.9G  25% /# d) U0 b/ J. \7 k! D+ T

# g0 V7 \9 |; H+ @/ w0 t/ L /dev/sda7             414G  211G  183G  54% /home9 R7 O4 h' I7 x6 g

# J) o9 `& I. v4 p: n /dev/sda5             4.9G  139M  4.5G   3% /tmp$ \4 T* F6 N1 _, ]0 f6 A  Y8 l
" k4 }* s6 [4 s7 E
/dev/sda3             9.7G  2.3G  6.9G  26% /usr" S  Y  v" F' M  ]

( u/ n" v* u  `0 q3 e /dev/sda2             9.7G  255M  9.0G   3% /var
" k. l' s& N3 n, H- A: l" u) Z/ h8 x8 {5 Z& J
tmpfs                 2.0G     0  2.0G   0% /dev/shm- U4 M5 P; w8 t7 M

; q- ]8 f* k$ I //user1-XP/Shares  251G  236G   15G  95% /mnt/shares  //存取 Windows 資源成功

% l! G0 \7 H) n; R/ H
7 v, H( G7 k, |: C% z" h
[Troubleshooting]; w' b) _8 e( @
從client連到server端時出現error:  
3 [* O$ `, ~- s) Z, p/ Ksamba mount error(110): Connection timed out
' K- S& @1 J" \# ?3 i$ k一般這都是防火牆的問題,包含server端跟client都要設定正確,尤其server端需開放port 139,client端需開放 port 445
4 f, u0 o8 [* a& u0 o+ a: H+ _8 w

- s) G( j; H* w至於 使用 sshfs 來掛載 別台主機上SSH server的檔案系統:
# @4 T( o/ O  S
" Z/ ^) _1 j$ H  m1 w8 C& m
用 yum 查一下有什麼 sshfs 相關的套件:
6 E. c1 R, _; k2 l' {: Z% c# yum search sshfs
7 h2 p% y- n8 S6 j! E" X=====================================================================" W; C% R0 x% E. q
fuse-sshfs.x86_64 : FUSE-Filesystem to access remote filesystems via SSH& c& `8 Q) r! V) d( x
安裝sshfs:
" ^. v# H; X) ]& J9 I* @7 w) s3 d. w#yum install fuse-sshfs 0 F0 Q7 q& H8 y% D. `5 T
建立掛載目錄:
1 D. ~3 p: o, V, |$ E$ v6 ?; f#mkdir /mnt/temp
# T7 C% u5 Q/ I" `9 e8 e用sshfs 掛載遠端的目錄:
9 g) @( N, i0 D6 P- Q+ M6 D, O$ J#sshfs -p 22 [email protected]:/root/  /mnt/temp     //-p port_number , 可以掛載遠端任一目錄,包含 / 根目錄9 n4 M3 i) g6 e: H* b8 p
[email protected]'s password:    //接著要你輸入遠端ssh root密碼
1 L; _; @6 Q( u, J正常情況此時應該可以看到 /mnt/temp/內已經有些檔案了,而不是空的
# A! _! B% v, r! p如果之前你有設定與主機 192.168.1.2建立公鑰私鑰免密碼連線,你就可以省略輸入密碼的程序,而直接掛載遠端目錄,比較方便
) S6 j5 ~9 G0 c; ]6 Q0 B* L7 ^2 Z3 ?
帶上密碼而不用手動輸入密碼3 V- ^$ |& j3 z: k5 F- B8 E. g
#
sshfs -o ssh_command='sshpass -p my_password ssh' -o cache=yes,allow_other -p 10022 [email protected]:/root/ /mnt/temp" g& M, |$ O( x" K$ r+ J
註: 如果掛載有問題,可以開啟 debug mode 觀察過程:0 I$ A9 c- w8 M6 Y+ h
sshfs -p 10022 -o sshfs_debug -o debug [email protected]:/  /mnt/temp
% E7 {2 ^  d" T( z, _- p9 J# s

8 W# E7 e; E1 g$ R* O  v+ S  Q以一般帳號(非root)掛載時,出現error :: i8 Y' E$ @% b, x+ }8 s
fuse: failed to exec fusermount: Permission denied ==> 因一般使用者沒fuse的使用權限
& T2 m) u9 G% Y& b# `) E: Tls -l /bin/fusermount
, _* @) p/ E5 j" n% @-rwsr-x--- 1 root fuse 32368 May 11  2016 /bin/fusermount
- t, D3 e, @, c( F$ u故 usermod -a -G fuse qqqbox 需加入群組才可使用 fuse+ P  z  `0 Y2 O! [0 I

% Q/ n/ y$ @, |6 ^4 i* ~+ {# R可參考 : 在 CentOS 上使用 sshfs 來掛載 SSH server 上的檔案系統     SSHFS:透過 SSH 掛載遠端 Linux 伺服器上的硬碟(適用於 Windows、Mac OS X 與 Linux)- d: f, {5 ?! S6 G3 l" ?) {
% P5 D$ e2 Q" Q/ A$ A$ M$ i

1 w5 p0 q& B2 Q4 H7 F# k
-->
沙發
發表於 2021-3-10 21:39:32 | 只看該作者

now the best way is to use WSL (Windows Subsystem for Linux)
-->
-->
板凳
發表於 2022-3-18 16:28:04 來自手機 | 只看該作者

原來如此
-->
您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則


-->

聚BT福利

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

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

GMT+8, 2024-10-8 08:57 , Processed in 0.077280 second(s), 15 queries .

連絡站長.廣告招商

[email protected] | QQ:2405733034     since 2015-01

裸聊妹 快速回復 返回頂部 返回列表