Linux伺服器 Linux伺服器

伺服器建置實務上課教材

伺服器建置實務 > 課程內容 > 第 8 堂課 - 網路芳鄰伺服器 (SMB server)

第 8 堂課 - 網路芳鄰伺服器 (SMB server)

上次更新日期 2018/12/10

當你有好多電腦可以使用,但是你需要使用的是某一份報告。舉例來說,在學校的電腦教室裡面,你原本使用 A 電腦,但是因為某些緣故, A 電腦有點壞掉了。因此,你要使用 B 電腦。但是,你的文件如果是儲存在 A 電腦的話,那麼該文件你就沒有辦法繼續編輯了。 想一想,如果你的文件是放在一個你專用的網路磁碟機的話,那麼無論你用的是哪一部電腦,都可以讀寫到同一個文件呢! 這樣當然就與你使用的電腦無關!這就是『網路磁碟機』的好處。

  • 8.1: Windows 的網路共享功能
  • 8.2: 實際設定 Samba 伺服器
  • 8.3: Linux 帳號資源與 Samba 額外的目錄分享設定
  • 8.4: 本日練習
  • 8.5: 課後練習

8.1: Windows 的網路共享功能

早期的 windows 系統,例如 Win 3.1 以及 Windows 95、Windows ME、Windows 2000 等等,這些 Windows 系統是部需要有 IP 位址, 就可以在區域網路裡面進行網路的探索,並且可以透過所謂的『電腦主機』來找到區域網路裡面的其他主機,然後透過『網路上的芳鄰』, 以及透過你設定『共享』之後,就可以直接以網路連接到對方的電腦內,使用對方分享的目錄喔!這就是早期的網芳。

  • 常見的檔案伺服器

其實,除了可以共享資料的網路磁碟機 (早期稱為網路上的芳鄰,或者是簡稱網芳) 之外,事實上原本許多 Unix-Like 的伺服器, 就有提供檔案分享的伺服器了!我們可以稱這個是『檔案伺服器』。常見的檔案伺服器根據檔案的讀寫方式,而有基本的兩種分類:

  1. 非同步的檔案伺服器 (在 Server/client 各保留一份)
    • FTP
    • HTTP
  2. 同步的檔案伺服器 (只保留在 Server 端,但用戶端看起來就跟本機的檔案系統沒兩樣)
    • NFS (Linux <--> Linux)
    • CIFS (Common Internet Filesystem)(Windows <--> Windows)
    • SMB (Server Message Block):事實上就是 CIFS 囉!透過逆向工程解析出來的一個通訊協定

早期其實只有 FTP 伺服器,當你需要某一個檔案資料時,得要從 Server 將檔案抓下來到本機的電腦上,等到完全下載完畢之後, 才可以開始進行檔案資料的編輯。當你編輯完畢之後,可能就得要將新的檔案再次傳送到 Server 上,將舊的檔案『覆蓋』後, 檔案才會更新。有時候你可能因為在太多電腦編輯過這個檔案,最終可能會造成不知道哪一個檔案才是最新的...這就是早期 FTP 伺服器的困擾。

後來的 NFS 或者是 CIFS 都是為了改善這方面的問題,它可以讓 Server 的檔案系統,直接讓你的客戶端電腦掛載, 掛載完畢之後,使用上,就像是本機的檔案系統一樣!直接在線上進行編輯!編輯完畢上下儲存,立刻就更新 Server 上面的文件了! 這樣就不會有以前遇到的版本問題的困擾囉!

  • Samba ? SMB ? NetBIOS

我們這個章節最終的目標是建立 Samba 伺服器,這是什麼東西呢?就讓我們來說一說:

  1. CIFS 最早的前身為使用 NetBIOS 這個辦公室內的通訊協定
    • 區域網路裡面透過 NetBIOS 的名稱解析功能,可以取得每一部網路主機的 NetBIOS 名稱 (就是 windows 上設定的名稱)
    • 每一個具有 NetBIOS 主機名稱的網路主機,就可以直接透過 NetBIOS 進行檔案的傳輸
    • 但是 NetBIOS 不能跨路由器 (不可在不同的網段間溝通)
    • 早期的 PC 不需要 IP 也能夠進行網芳溝通,就是透過這個機制!
  2. NetBIOS over TCP/IP
    • 後來因為 TCP/IP 的熱門,每一部主機上面都會有 IP,因此開發出讓 NetBIOS 跑在 TCP/IP 上面的通訊協定,就稱為 NetBIOS over TCP/IP
    • 因為這個協定開發出來的關係,所以網芳就能夠跨路由了!
  3. SMB ? Samba
    • Andrew Tridgell 在念博士班時,為了要解決 DOS, 與兩部 Unix 之間檔案傳輸的問題,考慮使用 CIFS 這個協定
    • 直接透過逆向工程,取得封包的資訊後,重新撰寫一個新的相容於 CIFS 的通訊協定,就稱為 Server Message Block (SMB)
    • 想要去註冊,但是被註冊局說 SMB 沒意義!不可以~所以就翻出字典,找到 SaMBa 這個字~
    • 於是,Samba 是註冊商標、是軟體名稱,但是通訊協定為 SMB,其實就是相容於 CIFS 的另一個通訊協定!
  • 開始前測試 Windows 的網芳 (共享) 功能

想要學習怎麼透過 Samba server 來架設網路磁碟機,那就先來瞭解一下怎麼透過 Windows 製作共享功能,讓你的一般 windows 可以作為網路磁碟機囉!

  1. 通常的設定方式:
    • 打開檔案總管,移動到你想要分享的目錄上
    • 按下右鍵,選擇『共用對象』,選擇『特定人員』
    • 選擇『Everyone』定為讀取
    • 最終按下『共用』後,螢幕就會出現你的資料夾共用名稱
  2. 資料夾名稱與共用名稱 (dir_name 與 share_name)
    • 資料夾共用名稱通常為『 \\netbios_name\share_name 』
    • 一般來說,預設 dir_name 會相等於 share_name
    • 若需要設定不同的 share_name ,就得要修改囉!也就是說,目錄名稱與共用名稱可以不同!
  3. 常用的,取得 server 的可用目錄共享名稱 (share_name) 的方式:
    • 請在檔案總管的網址列輸入 \\127.0.0.1,看看你的資料出現什麼?

經過上面的測試,我們可以知道要設定『共用』功能時,可能得要

  • 建置某些帳號,讓該帳號可以使用『共用』功能 (所以可以針對某些人給予登入,而不是 everyone)
  • 放行某個特定的目錄,並設定好分享的名稱,同時設定好權限 (唯讀或可寫入)
  • 對方要使用你的『共用目錄』時,得要知道你這部 windows 分享時設定的帳號/密碼才能登入!

另外, Windows 的共用,在不修改防火牆的情況下,只能提供給同一個區域網路的人使用而已。且最好用戶 windows 主機也有一個跟你這部 windows 一模一樣的帳號與密碼,這樣登入時才方便!

8.2: 實際設定 Samba 伺服器

現在就來架設 Samba 伺服器吧!另外,你得要知道的是,建置伺服器通常的流程會是:

  1. 安裝
  2. 啟動
  3. 開機啟動
  4. 防火牆
  5. 測試

上面可是相當重要的流程!每次都要記下來。只是由於 Samba 需要設定例如工作群組 (workgroup)、主機名稱、帳號等等,所以在 1 及 2 步驟中間,得要外加 1.5 步驟,進行一些基礎的設定這樣。底下就來慢慢的一項一項工作的進行下去。

  • Samba 所需要的服務

基本上 Samba 需要兩個主要的服務,分別如下:

  1. smb:
    • 就是 Samba 的主要服務,管理分享的目錄、傳輸檔案與身份驗證等等重要功能 (只要這個即可)
    • 因為涉及檔案傳輸,需要 TCP 封包,主要埠口為 port 139, 445
  2. nmb:
    • 相容於 NetBIOS,會去搜尋區網內的各個 NetBIOS name 來進行網路主機名稱的列表等。
    • 透過 UDP 封包的 port 137, 138 來進行 NetBIOS name 的網路主機名稱搜尋~
  • Samba 所需要的軟體與相關的設定檔

基本上,Samab 的運作需要幾個元件,包括伺服器元件與用戶端元件,需要的軟體大致如下:

  • samba:主要的 smb, nmb 等服務以及文件檔與開機設定檔等
  • samba-client:提供 Samba 用戶端掛載相關的功能,包括查詢 server 分享的資料等指令
  • samba-common:提供 server/client 都會使用到的資料,包括設定檔與語法檢驗指令等
  • cifs-utils:提供 CIFS 檔案系統相關設定與權限設定等工具軟體

至於設定檔的檔名,因為 Samba 簡化了許多設定項目,因此目前有兩個檔案你應該要瞭解一下:

  • 設定檔位於 /etc/samba/smb.conf (這就是需要被編輯的檔案)
  • 設定檔範例與說明檔案 /etc/samba/smb.conf.sample

在 /etc/samba/smb.conf 檔案內的設定方式大概如下,就是中括號後面放置該括號內的項目。其中比較特別的是 global 這個項目, global 是『全域』的意思,因此該項目底下為整部伺服器的重要資訊!大部分就是工作群組與類似防火牆的設定項目而已。

[root@localhost ~]# vim /etc/samba/smb.conf
[global]
   參數項目 = 設定內容
   ....

[分享資源名稱]
   參數項目 = 設定內容
   ....

趕緊來處理一下相關的任務吧!

設定伺服器的第一步驟:安裝所需要的軟體:
  1. 安裝並檢查 samba 相關的軟體與軟體所含的檔名資料
  2. 查看 smb.conf 設定檔的基礎內容
  • 基礎的 samba 設定項目
  1. 針對整個 samba 的伺服器設定主要的項目有底下這些:
    • workgroup = 工作群組名稱
    • netbios name = 現在預設為主機名稱喔!
    • server string = 主機的簡易說明
    • security = user 透過 samba 伺服器本身的帳號密碼資料庫
  2. 另外還有針對每個 Samba 用戶的家目錄設定與預設的印表機設定:
    [homes] # 這是每個用戶家目錄的規範
            comment = Home Directories   # 單純的說明
            valid users = %S, %D%w%S     # 可以使用家目錄的用戶設定 (允許的使用者)
            browseable = No              # 除了自己之外,不可以被其他任何人瀏覽
            read only = No               # 可以寫入
            inherit acls = Yes           # 可以具有 Access Control List 的設定
    
    [printers] # 預設印表機的設定值
            comment = All Printers
            path = /var/tmp
            printable = Yes
            create mask = 0600
            browseable = No
    
    [print$] # 預設印表機佇列的設定值
            comment = Printer Drivers
            path = /var/lib/samba/drivers
            write list = root
            create mask = 0664
            directory mask = 0775
    

    你可能會覺得,在網路上面公告你的家目錄所在,雖然人家不能進入你的私人目錄,不過,有列出來就覺得很恐怖對吧?不過沒關係的啦! 因為除非是已經登入 (login 到 Samba 的使用權當中) 的用戶,否則由於 browseable 設定為 no,所以你的家目錄並不會被別人查看到! 只有你自己才看得到啦!

    至於允許使用的用戶怎麼會是 %S 呢!?這是一個 Samba 的代號,你得知道,student 的家目錄應該就是 //IP/student/ 才對,但是, 上面的中括號裡面是 [homes] 喔!這個 %S 的意思是,會透過使用者的帳號名稱,去修訂 [homes] 成為 [student] 的意思啦! 這樣每個人就具有自己獨特的家目錄了!

上面就是最基礎的 Samba 設定,幾乎預設就是讓可以登入 Linux 的實體帳號可以加入 Samba 的使用權,然後就可以具有自己家目錄的網路磁碟使用了!

  • 啟動 Samba 服務

基礎設定大致上看一下,接下來 就可以啟動這兩個服務了!啟動的方法很簡單!

[root@localhost ~]# systemctl start  nmb smb
[root@localhost ~]# systemctl enable nmb smb
[root@localhost ~]# systemctl status nmb smb
● nmb.service - Samba NMB Daemon
   Loaded: loaded (/usr/lib/systemd/system/nmb.service; enabled; vendor preset: disabled)
   Active: active (running) since 一 2018-12-10 18:26:49 CST; 9s ago
     Docs: man:nmbd(8)
           man:samba(7)
           man:smb.conf(5)
 Main PID: 3250 (nmbd)
   Status: "nmbd: ready to serve connections..."
   CGroup: /system.slice/nmb.service
           └─3250 /usr/sbin/nmbd --foreground --no-process-group

12月 10 18:26:49 server100.example.com systemd[1]: Starting Samba NMB Daemon...

● smb.service - Samba SMB Daemon
   Loaded: loaded (/usr/lib/systemd/system/smb.service; enabled; vendor preset: disabled)
   Active: active (running) since 一 2018-12-10 18:26:49 CST; 9s ago
     Docs: man:smbd(8)
           man:samba(7)
           man:smb.conf(5)
 Main PID: 3251 (smbd)
   Status: "smbd: ready to serve connections..."
   CGroup: /system.slice/smb.service
           ├─3251 /usr/sbin/smbd --foreground --no-process-group
           └─3255 /usr/sbin/smbd --foreground --no-process-group

12月 10 18:26:49 server100.example.com systemd[1]: Starting Samba SMB Daemon...

[root@localhost ~]# netstat -tlunp | grep mbd
tcp        0      0 0.0.0.0:139             0.0.0.0:*       LISTEN      3251/smbd
tcp        0      0 0.0.0.0:445             0.0.0.0:*       LISTEN      3251/smbd
tcp6       0      0 :::139                  :::*            LISTEN      3251/smbd
tcp6       0      0 :::445                  :::*            LISTEN      3251/smbd
udp        0      0 192.168.0.255:137       0.0.0.0:*                   3250/nmbd
udp        0      0 192.168.0.100:137       0.0.0.0:*                   3250/nmbd
udp        0      0 0.0.0.0:137             0.0.0.0:*                   3250/nmbd
udp        0      0 192.168.0.255:138       0.0.0.0:*                   3250/nmbd
udp        0      0 192.168.0.100:138       0.0.0.0:*                   3250/nmbd
udp        0      0 0.0.0.0:138             0.0.0.0:*                   3250/nmbd
                    ↑ 這個欄位可以看出不同的 port       這個欄位看出 smb 與 nmb ↑

啟動了 Samba 之後,接下來,你可以使用匿名登入去查看你的 Samba 資料喔!

[root@localhost ~]# smbclient -L //127.0.0.1
Enter SAMBA\root's password:  (直接 enter 略過)
Anonymous login successful

        Sharename       Type      Comment
        ---------       ----      -------
        print$          Disk      Printer Drivers
        IPC$            IPC       IPC Service (Samba 4.8.3)(你的Server簡介)
Reconnecting with SMB1 for workgroup listing.
Anonymous login successful

        Server               Comment
        ---------            -------

        Workgroup            Master
        ---------            -------
        SAMBA                SERVER100 (主要的工作群組)
  • 讓 Linux 一般用戶 (實體帳號) 可以開始使用 Samba

關於帳號,有些重點你需要注意一下:

  • 由於牽涉到系統的檔案與權限,因此 Samba 的用戶必須是系統的實體用戶
  • 但是 Linux 實體用戶與 Samba 的用戶『密碼資料庫並不相同』,因此 Samba 必須要額外製作使用密碼

那如何建立 Samba 密碼呢?建置用戶 Samba 密碼的方式為:

[root@localhost ~]# pdbedit -a -u username                    (建立 Samba 用戶)
[root@localhost ~]# pdbedit -L                                (列出 Samba 用戶)
[root@localhost ~]# pdbedit -x -u username                    (刪除 Samba 用戶)

接下來就是處理帳號登入去查看你的家目錄與相關可以使用的目錄瀏覽!

[root@localhost ~]# smbclient -L //your.samba.ip -U username  (查詢 server 可用的資源)
[root@localhost ~]# mount -t cifs //server.ip/share_name /MP  (掛載 server 可用的資源)
  • 實務訓練

我們剛剛並沒有實際設定好相關的工作群組等資料 (或許你已經指定了)。這邊為了班上同學互相之間的使用權,我們統一規定一些資料, 方便大家未來互相掛載使用同學彼此的檔案資源:

Server 端
  • 1. 安裝:請再次確認 samba, samba-client, samba-common 與 cifs-utils 是否安裝;
  • 1.5 設定:假設工作群組為 DIC,主機名稱為 stationXX,主機說明寫你的學號,其他保留預設值
  • 1.5 設定檢查:使用 testparm 檢測一下是否設定語法有問題
  • 2 與 3 啟動與開機啟動:再重新啟動 smb 服務,且開機自動啟動,同時再次觀察
  • 4. 防火牆:請確認用戶端可使用本機網芳的防火牆規則是否放行
  • 5. 測試:建立一個名為 teacher 的用戶,這個用戶可以使用 Samba ,且密碼為 mypass
  • 5. 測試:使用 teacher 的身份瀏覽本機的可用資源為何?
練習 (client 端)
  • 使用 teacher 查詢 server 網芳所分享的資源
  • 掛載來自 server 的資源到本機的 /home/samba/teacher 目錄中
  • 測試完畢後就予以卸載

8.3: Linux 帳號資源與 Samba 額外的目錄分享設定

開學之初我們已經談過 Linux 帳號的建立與觀察,還有帳號相關的權限觀察與設定。這裡我們再次得來強調一次!畢竟 Samba 是相當倚重帳號資源的!

  • Linux 實體帳號的建立與觀察

關於 Linux 的實體帳號一些基礎知識再次強調:

  1. 其實所有的作業系統認的帳號都是認使用者識別碼與群組識別碼 (UID/GID) 等數字,但人類對數字的記憶力不佳,因此使用帳號名稱/群組名稱來取代。 其實這就跟台灣戶政系統一樣,戶政其實是認你的『身份證』,但是人們記得的則是你的『名字』。
  2. 每一個帳號預設會加入一個原生群組 (通常與自己帳號同名)
  3. 每一個帳號都可以加入其他次要群組的支援 (參加其他社團的感覺)
  4. 要查看某個帳號支援的群組有哪些,以及自己的 uid, gid,可以使用『 id 帳號名稱 』 來查看。

至於 Linux 實體帳號的建立,以其群組相關的建置,可以簡單的這樣做:

  1. 帳號建立使用: useradd [-G 次要群組支援] 帳號名稱
  2. 帳號建立密碼: passwd 帳號名稱
  3. 新群組建立: groupadd 群組名稱
  4. 已存在帳號加入其他次要群組支援:『 usermod -a -G 其他群組名稱 帳號名稱』

多說不如多做,請開始處理底下的練習:

  1. 建立名為 testing1 的用戶名稱,且密碼為 mypass
  2. 觀察 testing1 的 UID 與 GID 等資料
  3. 使用 grep users /etc/group 觀察系統是否具有 users 這個群組
  4. 請將 testing1 這個帳號加入 users 的群組支援。
  5. 再次觀察 testing1 的所有帳號相關資料,是否確定加入了 users 的群組支援?
  6. 增加名為 sambashare 群組
  7. 再將 testing1 加入 sambashare 群組的支援!
  • Linux 帳號的權限

再次複習:在 Linux 底下,每個檔名會有三種預設身份的存取權,主要身份為:

  1. 擁有者:檔名擁有者 (owner 或 user)
  2. 群組:檔名的所屬群組 (group 或可以稱為社團)
  3. 其他人:不是檔名擁有者也沒有加入檔名所屬群組 (例如不在你 FB 社團名單內的其他帳號)

承上,這三種身份,每種身份的用戶都可能會具有底下的三種權限

  • r :read, 可讀取
  • w :write, 可寫入
  • x :eXecute, 可執行

在 Linux 底下,觀察檔名的權限可以使用 ll 或 ls -l 這個指令來查看。例如使用底下的方式來觀察:

[root@localhost ~]# ll /etc/hosts /etc/chrony.keys
-rw-r-----. 1 root chrony   9   11月 24  2015 /etc/chrony.keys
-rw-r--r--. 1 root root   158    6月  7  2013 /etc/hosts
權限          帳號 群組   容量  時間          檔名 

修改上述資料可使用底下的指令:

  • 權限: chmod 分數 檔名
  • 帳號: chown 帳號 檔名
  • 群組: chgrp 群組 檔名
  • 檔名: mv 舊檔名 新檔名

修改權限時,每種身份會有一個分數,計算分數的方法為:

  • r: 出現時有 4 分,不出現 0 分
  • w: 出現時有 2 分,不出現 0 分
  • x: 出現時有 1 分,不出現 0 分

來進行個比較大的練習看看:

請確認使用 root 的身份執行底下的任務
  1. 檔案的複製,以及權限的觀察與基本修改:
    1. 前往 /dev/shm 這個目錄
    2. 將 /etc/hosts 複製到當前目錄下
    3. 讓 hosts 變成是 testing1 所有,同時屬於 sambashare 群組
    4. testing1 對 hosts 來說,可讀可寫,sambashare 的群組成員對 hosts 也是可讀可寫,但其他人僅唯讀
    5. 觀察 student 的帳號資料,說明 student 對 hosts 具有什麼權限?
  2. 建立共享目錄的資源:
    1. 前往 /dev/shm 這個目錄
    2. 建立 mydir 目錄
    3. mydir 目錄可以讓 sambashare 群組的成員具有完整的使用權限 (可讀可寫可執行),但是其他人則沒有任何權限。
    4. 但注意,通常共享的權限會在傳統三個身份前面再加一個 2 分的 s 權限。
  • Samba 額外目錄資源的設定

一般來說,我們可能會額外分享出一些『共享目錄』給自己專題組或者是工作團隊的夥伴們!例如要分享的目錄為 /srv/share 而分享的名稱為 myshare,則通常設定的項目有:

[root@localhost ~]# vim /etc/samba/smb.conf
[myshare]                                      資源名稱
        comment = Just share my directory      一些簡易說明
        path = /srv/share                      實際放行的目錄
        public = no                            要不要開放訪客進入 (當然不要)
        browseable = yes                       要不要能夠被瀏覽到名稱 (不是查看內容)
        writable = yes                         能否寫入 (smb 控制的)
        create mode = 0664                     建立檔案的預設權限
        directory mode = 0775                  建立目錄的預設權限
        write list = teacher, @teacher         哪個帳號或群組的用戶可以寫入

但最終能否寫入還是與目錄的權限有關喔!這也是為什麼我們在上面花了一些篇幅來重新說明權限的意義。 現在就請完成底下的練習:

練習:嘗試分享 /srv/share 給 teacher 群組使用,假設分享的資源名稱為 for_teacher
  1. 先建立 /srv/share 目錄,且注意該目錄必須要能夠讓 teacher 群組的所有用戶共用 (應該是需要 SGID 才對喔!)
  2. 修改 smb.conf 的內容,比較需要注意的是中括號 [] 內的名稱與路徑 (path) 喔!
  3. 設定完成依舊使用 testparm 檢查語法,若無問題請重新啟動 smb 服務。
  4. 再次以 smbclient -L //your.host.ip -U teacher 檢查看看可用的資源
  5. 若有個名為 teachertwo 用戶也想要使用這個目錄,該如何設定?
練習:嘗試掛載來自 server 的 for_teacher 資源到 /home/samba/forteacher 目錄喔!
  1. 使用 teacher 查詢 server 網芳所分享的資源
  2. 掛載來自 server 的資源到本機的 /home/samba/forteacher 目錄中
  3. 若此目錄需要開機即掛載,該如何處理?

你要知道的是,開機立即掛載是相當可怕的動作!因此,你在修改 /etc/fstab 的時候,填寫的資料一定要正確,否則開機恐怕會失敗! 導致系統損毀喔!要注意!要注意!上面最後一點 (若此目錄需要開機即掛載,該如何處理?) 的一般流程是這樣的:

  1. 先嘗試卸載該裝置 (umount //IP/for_teacher)
  2. 修改 /etc/fstab 大概成為如下的模樣:
    //IP/for_teacher   /home/samba/forteacer  cifs  defaults,username=哪個帳號,password=帳號密碼,_netdev  0  0
    
  3. 執行 mouont -a 測試能不能順利掛載?若不能,請勿必修改到沒問題!
  4. 重新開機測試看看能不能順利掛載!(當 Server 的。絕對不可以重新開機!所以兩兩成對,一個一個測試才行)

再次強調,要很注意的修改 /etc/fstab 喔!

8.4: 本日練習

現在來複習一下今日的動作,作為本日的點名與查驗資訊。請在目前的雲端機器上面完成底下的實做,要完成且讓老師檢查完畢後,才可以離開教室喔!

  1. 底下為 Server 的設定值:
    1. Linux帳號處理:建立名為 smb1, smb2, smb3 三個用戶,且這三個用戶加入一個名為 smbgroup 的群組
    2. Samba帳號處理:讓 smb1, smb2, smb3 三個用戶都可以使用 Samba,且密碼均為 passokok
    3. Linux檔案系統權限處理:讓加入 smbgroup 的用戶,都可以使用 /srv/smbgroup 目錄,且不加入 smbgroup 的其他用戶,都沒有任何權限 (注意本章節提到的, 共享目錄的權限最前面要加上 2 分!)
    4. Samba 設定:讓 /srv/smbgroup 透過 samba 分享,分享的名稱為 smbgroup,加入 smbgroup 的群組可以使用這個分享的目錄, 分享的權限為可寫入。
  2. 底下為 Client 的設定值:
    1. 找到你的夥伴,確認對方已經完成,將他的 Samba Server IP 進行底下的處理:
    2. 掛載來自 Server 端的 smb1 家目錄到 /mnt/smb1
    3. 掛載來自 Server 端的 smbgroup 到 /mnt/smbgroup

8.5: 課後練習

請撰寫一個 word 檔案,檔名為:『 unit01-A050cxxx-你的名字.docx 』,內容回答下列問題,然後每週作業上傳到對應的 EP 上面去:

  1. 簡單的回答一些網路磁碟機的問題:
    1. Windows 的網路磁碟機,簡寫的名稱為何?
    2. 承上,那麼完整的協定名稱為何?
    3. Samba 這個軟體所使用的協定完全相容於上述的協定,Samba 的協定名稱為何?
    4. Windows 的網路磁碟機瀏覽方式為: \\your_hostname,那 Linux 的呢?
    5. Samba 軟體啟用時,會使用到哪兩個服務?
    6. 承上,那麼這兩個服務分別會啟動哪些埠口?(說明 TCP 還是 UDP 且 port number 是多少)
    7. Samba 的設定檔完整檔名為何?
    8. 一般共享目錄的權限當中,最重要的是先修改目錄群組,然後給予的權限應該是幾分?
  2. 關於 Samba Server 端的使用:
    1. 假設有個同學,他想要有個 Linux 的帳號名稱為 alex ,且密碼為 myalex ,該如何處理?
    2. 假設這個同學想要使用 samba 網路磁碟機,且密碼也是 myalex ,該如何處理?
    3. 假設這個同學還要:
      • 可以額外使用 /srv/foralex/ 目錄
      • 該目錄擁有者為 alex 自己,且也只有 alex 可以使用該目錄。
      • 在 samba 設定檔當中,分享這個目錄的資源名稱也是 foralex
      • 在 samba 設定檔當中,這個目錄是可以被瀏覽的 (browsable),但是不公開 (public)
      • 那麼該如何在 samba 當中設定這個目錄資源?
  3. 關於 Samba 用戶端的使用中,假設上述 Server 的主機名稱為 myserver 時:
    1. 如何在用戶端匿名瀏覽 myserver 上面的 samba 資源?
    2. 如何在用戶端使用 alex 帳號瀏覽 myserver 上面的 samba 資源?
    3. alex 家目錄的資源名稱如何撰寫? (提示: //xxx/yyy)
    4. 如何將上述的資源手動方式掛載到 /mnt/alex 呢?
    5. 承上,如何卸載 /mnt/alex 呢?
    6. 由 myserver 分享的 /srv/foralex 目錄,它的 Samba 資源名稱如何撰寫 (提示: //xxx/yyy)
    7. 如何將上述的資源手動方式掛載到 /mnt/myalex 呢?
    8. 承上,如何卸載 /mnt/myalex 呢?

同場加映:不用上傳的資料,請 google 一下打字時,手指與鍵盤指法的對應,然後自由練習底下的資訊:

  • 小寫的 a~z (abcdefg...xyz) ,共打 10 次
  • 小寫的 0~9,a~z (012..89abcdefg...xyz) ,共打 10 次
  • 不要啟動大寫燈,用組合按鍵輸入 A-Z (ABCD...XYZ),共 10 次

每天上課各練一次,最慢 10 天,你的打字就會嚇嚇叫了!