CentOS 自动挂载Windows 的共享目录

如何掛載遠端 Windows 共享資源

Contents

  1. 所需套件

  2. 基本的方法

  3. 較好的方法

  4. 更好的方法

  5. 另一個更好的方法

沒錯,我們生活在 Linux 的美好世界裡。然而對 我們當中不少人來說,面對 Windows 是生活的一部份。例如你可能想應用一個 Linux 伺服器來備份 Windows 檔案。將 Windows 共享資源掛載在伺服器上可以簡化這個程序。你將能夠存取 Windows 檔案如同它們是本地的一樣,基本上所有 Linux 指令都可以使用。掛載 Windows(或其它 samba)共享資源要應用到內核裡的 cifs 虛擬檔案系統客戶端(cifs vfs),與及 samba 軟件系列中的 mount.cifs 掛載輔助程式。

下列名稱會用在我們的例子裡。

  • 遠端 Windows 機器 winbox
    winbox 上的共享資源名稱:getme
    用戶名稱:sushi
    密碼:yummy

警告:mount.cifs 預設是不會為已掛載的共享資源加上安全性保障(http://bugs.centos.org/view.php?id=4537)。假如你管理多重用戶的系統,請考慮為你的掛載點加入 dir_mode 及 file_mode 的設定。

1. 所需套件

請確保以下套件已被安裝:

[root@host]# yum install samba-client samba-common cifs-utils

這樣亦會加入所有依賴性套件。留意 cifs-utils 只限 CentOS-6(或更新版本)。

2. 基本的方法

建立一個本地掛載點。例如:

[root@host]# mkdir /mnt/win

編輯 /etc/fstab 檔並加入如下一行:

\\winbox\getme /mnt/win cifs user,uid=500,rw,suid,username=sushi,password=yummy 0 0

Windows 共享資源將會在開機時被掛載。如果你想利用 mount /mnt/win 這個指令來手動掛載它,請加入 noauto 這個選項。在這個範例裡,本地用戶(uid=500)將會成為掛載檔案的擁有人。使用 uid 這個選項是選擇性的。然而,某些對權限較挑剔的應用程式(例如 Acrobat)或許會需要它。

你可能會想為 cifs 設定其它選項。舉例說,nocase 容許檔案路徑不按大小寫配對。請執行 man mount.cifs 來查看更多選項。

[註:如果你在較早版本的 CentOS 內使用 smbfs,你必須在 CentOS 5 內以 cifs 代替,因為 smbfs 已不宜使用。]

3. 較好的方法

以上的方法有一個小毛病 —— 用戶名稱與密碼是人人可見的。我們可以透過憑證檔案來避免這個問題。

\\winbox\getme /mnt/win cifs user,uid=500,rw,noauto,suid,credentials=/root/secret.txt 0 0

註:以下是 IRC 用戶 jbroome 提供的一個實際例子

\\jellyfish\DBRefreshLogs\beta2 /media/DBRefreshLogs/beta2 cifs credentials=/root/secret.txt,_netdev,uid=oracle,gid=dba 0 0

至於 /root/secret.txt 檔就看似這樣:

username=sushipassword=yummy

這個檔案可以放置在任何地方。你不能採用被加密的密碼。請確定它不能被所有人閱讀。另外請留意它不容有空格。

(註:用戶名稱的格式可以是 username=<域名>/<主機名>)

4. 更好的方法

當遠端的共享資源透過 /etc/fstab 被掛載後,它會維持這個狀況直至你卸下它。假若遠端的共享資源變為無效這便會構成問題,因為過時的掛載將會出現。舉個例說,你連線的 Windows 機器或許會當機(想不到吧!),或者網絡會倒閉。

這時自動掛載便大派用場(如果你仍未有 autofs,請使用 yum install autofs 來安它)。下面是你須要做的步驟。首先,建立一個掛載點

[root@host]# mkdir /mymount

[註:你可以使用任何目錄;請確定那個目錄存在]

在 /etc/auto.master 檔內加入如下一行:

/mymount /etc/auto.mymount

接著編輯你剛輸入的 /etc/auto.mymount 檔:

winbox  -fstype=cifs,rw,noperm,user=sushi,pass=yummy ://winbox/getme

或者如上面使用同一個憑證檔案:

winbox  -fstype=cifs,rw,noperm,credentials=/root/secret.txt ://winbox/getme

[註:你可以取消其它人對 /etc/auto.mymount 的閱讀權限,因此憑證檔案的應用並不像在上個方法中重要。]

[註:假若你無法用機器名稱,但可以透過它的 IP 位址連線,請在 etc/nsswitch.conf 的 hosts 行內加入 wins。]

當一切準備妥當後,請以 root 的身份執行 /sbin/service autofs restart。

現在嘗試透過 ls /mymount/winbox 或 cd /mymount/winbox 來存取共享資源。它會在被存取時自動被掛載。當活動靜止一段時間後(預設 60 秎),共享資源便會自動被卸下。

[註:進行卸下時,你可能會在 /var/log/messages 內看見 mount_cifs.so: cannot open shared object file 這個錯誤。這是無害的,可以安全地忽略。]

5. 另一個更好的方法

假若你有多個共享資源是用同一個憑證來掛載的,這裡有一個很方便的設置方法。

建立一個本地的掛載點(依你的喜好):

[root@host]# mkdir /mnt/smb

在 /etc/auto.master 內加入這行:

/mnt/smb /etc/auto.smb.top

建立 /etc/auto.smb.top 如下:

* -fstype=autofs,-Dhost=& file:/etc/auto.smb.sub

建立 /etc/auto.smb.sub 如下(按需要作修改):

* -fstype=cifs,credentials=/root/secret.txt,uid=500,gid=100 ://${host}/&

讓我們確保權限是正確的,然後重新啟動服務:

[root@host]# chmod 644 /etc/auto.smb.*[root@host]# /sbin/service autofs restart

現在要存取共享資源,你只須簡單地輸入:

[root@host]# cd /mnt/smb/winbox/getme

(多謝 Mia Via 提供這個提示)

額外提示:

假若你擁有多個設有不同用戶名稱及/或密碼的外置伺服器和共享資源,請採用這個格式:

* -fstype=cifs,credentials=/root/${host}.secret.txt,uid=${UID},gid=${EUID} ://${host}/&

如果要讓用戶在他們的主目錄內放置個別的用戶名稱/密碼(或許會進一步削弱安全性):

* -fstype=cifs,credentials=${HOME}/${host}.secret.txt,uid=${UID},gid=${EUID} ://${host}/&

要提升 Samba 伺服器的安全性的話,你也可以加入 sec=ntlmv2,並且以這個方法隱藏憑證檔案:

* -fstype=cifs,sec=ntlmv2,credentials=${HOME}/.${host}.secret.txt,uid=${UID},gid=${EUID} ://${host}/&

有關 sec- 及其它 cifs 掛載參數的細節,請參閱 mount.cifs 的使用手冊。

(多謝 Tapio Ryhänen 提供這個提示)

  • 給 CentOS 5.0 及 CentOS 4.5 用戶的備註。CentOS 5.0(RHEL 5.0)及 CentOS 4.5(RHEL 4.5)所採用的 2.6.18 內核中的 cifs 檔案系統模塊藏有一個錯誤。這個錯誤會在無法預測的情況下導致內核出錯或系統當機。詳情請參閱這個錯誤報告:http://bugs.centos.org/view.php?id=1776

    後加備註:這個錯誤在 CentOS 5.1(kernel-2.6.18-53)及 4.6(kernel-2.6.9-67)內已經穫得修正。

如何瀏覽 Windows 共享資源

如果你只是想瀏覽 Windows 檔案,你下必掛載它們。你可以透過檔案瀏覽器更容易地存取它們。

在 Konqueror:開始 -> 網絡資料夾 -> Samba 共享
在 Nautilus:位置 -> 網絡 -> Windows 網絡

要更快捷地前往指定的共享資源,你可以在 konqueror 的位置欄正接輸入:

smb://winbox/getme

假如你使用 nautilus,請先輸入一個 '/' 字元(多謝 JohnnyHughes 提供這個提示)。


转载于:https://my.oschina.net/xunzhizhe/blog/612139

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值