Was this page helpful?

RHEL5 - Samba(一) 什麼是 Samba

    內容表格
    沒有標頭

    前言:
    Windows 的系統透過 SMB (Session Message Block protocol, 也叫做 NetBIOS 或 LanManager protocol.) ,來進行檔案分享的傳輸協定,而 samba 是在 Linux 系統下使用 SMB (NetBIOS) 協定來進行檔案分享的傳輸方式.也因此藉由 samba 來讓 Windows 與 Linux 系統的檔案能夠使用同一種方式來進行分享. Windows 與 Linux 之間 SMB /NMB 協定關聯如下圖所:

    那什麼是 SMB(NetBIOS)呢!!下面可以看到這個協定的演化過程.
     
    NetBIOS
    最早由 IBM 開發出來的 NetBIOS API(Network Basic Input/Output System Application Program Interface),這個 NetBIOS 由 18 個 API 組成,可以用來命令當時的電腦建立連線服務. 因為 NetBIOS 使用廣播(broadcasts)來傳送資料.也因此資料無法繞送(routed).所以只能用在小型網路中傳輸.NetBIOS 屬於 session layer protocol(第5層,交談層)

    NetBEUI

    接下來就有了NetBIOS的改良版,NetBEUI(NetBIOS Extened User Interface),不過他已經是一個完整的傳輸協定了.NetBEUI 屬於 data-link layer protocol (第2層,資料連結層).

    SMB(NetBIOS)
    Windows NT4.0 之前的網路芳鄰(檔案和印表機分享),名稱解析(wins)...皆是使用 NetBIOS over NetBEUI所實而做成.後來的 NetBIOS 也可以 over TCP/IP 如 Windows 2000 的網路芳鄰(檔案和印表機分享), Linux 的 samba server or NETBIOS over IPX(Internetwork Packet Exchange) 如 NT 下的 NWLINK

    note:
    1.使用廣播的方式傳遞資料,在遇到 Roter 時, Router 是會直接將此封包丟棄.原因是不能讓這種封包傳送到 InterNet 上,而產生無限封包.
    2.NetBEUI 屬於 data-link layer protocol (第2層,資料連結層)

    Samba 的官方網站為 http://www.samba.org

    RHEL5 - Samba (二) 認識 samba 設定檔
    首先檢查 samba 是否安裝,一般在光碟 /Server 目錄都可以找到 samba 的 rpm 檔案或是可以透過 yum 去下載.

    [root@benjr ~]# rpm -aq | grep samba
    samba
    samba-common
    samba-client
    system-config-samba

    安裝 samba 在 RedHat 光碟片中的目錄 /Server 可以找到所需的程式

    [root@benjr ~]# rpm -ivh samba-common.rpm
    [root@benjr ~]# rpm -ivh samba-client.rpm
    [root@benjr ~]# rpm -ivh samba.rpm
    [root@benjr ~]#
    rpm -ivh system-config-samba

    檢查 samba 服務是否在開機時一並啟動

    [root@benjr ~]# chkconfig smb on
    [root@benjr ~]#
    chkconfig --list smb
    smb      0:off 1:on 2:on 3:on 4:on 5:on 6:off

    立即啟動 samba 服務

    [root@benjr ~]# service smb start
    Starting SMB services:                   [ OK ]
    Starting NMB services:                   [ OK ]

    RHEL 5 提供了 #system-config-samba 工具可以讓我們很方便針對 samba 做設定,不過這一隻工具主要都還是去修改 samba 的設定檔 /etc/samba/smb.conf ,所以我們先來看看 samba 的設定檔.

    [root@benjr ~]# cat /etc/samba/smb.conf
    #======================= Global Settings =====================================
    [global]
        workgroup = mygroup
        server string = Samba Server Version %v

        netbios name = benjr
        security = user
        passdb backend = tdbsam
    #======================= Share Definitions====================================
    [homes]
        comment = Home Directories
        browseable = no
        writeable = yes
    ;    valid users = %S
    ;    valid users = MYDOMAIN\%S

    [printers]
        comment = All Printers
        path = /var/spool/samba
        browseable = no
    ;    guest ok = no
    ;    writeable = no
        printable = yes

    設定檔主要可以分成兩個區塊
    1.[global] 中主要設定整個 samba 系統的組態
    其中的 [global] 的 security 決定身份驗證要由誰處理,samba 3.X 提供了五種安全等級可設定
    2.[share] 中都是要分享的檔案目錄以及印表機

    /etc/samba/ 目錄
    相關的檔案

    [root@benjr ~]# ll /etc/samba/
    total 52
    -rw-r--r-- 1 root root    20 Apr  3  2008 lmhosts
    -rw------- 1 root root  4096 Apr 12 06:59 passdb.tdb
    -rw------- 1 root root  8192 Apr 12 06:59 secrets.tdb
    -rw-r--r-- 1 root root 10043 Apr 14 03:37 smb.conf
    -rw-r--r-- 1 root root    97 Apr  3  2008 smbusers

    1."/etc/samba/lmhosts" 存放 NetBIOS name 與 IP 相對應關係
    2."/etc/samba/passdb.tdb" 存放使用者登入 samba server 時所需的使用者帳號以及密碼
    3."/etc/samba/secrets.tdb" 存放 samba 的密碼檔
    4."/etc/samba/smb.conf" samba 的設定檔
    5."/etc/samba/smbusers" UNIX name 與 samb name 相對應關係

    最早的 samba 的使用者帳號密碼是存成成文字檔 /etc/samba/smbpassword ,對於較少使用者的 samba server 並不會有太大的問題,但是當使用者眾多時就會有以下的問題產生:
    1.查詢是循序進行,所以效能將會是瓶頸.
    2.每一台 samba server 必須自己維護 smbpasswd 檔,當有多台 samba server 帳號的同步就是問題了.
    3.smbpasswd 檔的格式限制了每個使用者可以維護的屬性.
    4.除了可以增加效能外還可以同步多台的 samba server 帳號密碼,

    也因此在 RHEL5 帳號密碼皆是以資料庫的形式做儲存,這樣會較符合企業用戶的需求.除了預設的 tdbsam(.tdb) 的資料庫外 Samba 提供下面多種方式,甚至於跟 LDAP 目錄服務結合.

    1.Plain Text: :
    2.smbpasswd : Encrypted Password Database
    3.tdbsam:
    4.ldapsam
    :
    5.MySQL:
    6.XML:

    RHEL5 - Samba (三) samba 相關的指令
    RHEL 5 除了提供了 #system-config-samba 工具外 samba 還提供了很多工具來幫助我們除錯相關的指令如下:
    nmblookup : 查詢 NetBIOS 所對應的 IP addresses

    [root@benjr ~]# nmblookup benjr
    querying benjr on 192.8.1.255
    192.8.1.85 benjr<00>

    smbstatus : 查詢 samba server 分享資源被使用的情況

    [root@benjr ~]# smbstatus

    Samba version 3.0.28-0.el5.8
    PID     Username      Group         Machine                      
    -------------------------------------------------------------------

    Service      pid     machine       Connected at
    -------------------------------------------------------
    share        4600   192.8.1.242   Tue Apr 14 03:47:18 2009

    Locked files:
    Pid          Uid        DenyMode   Access      R/W        Oplock           SharePath   Name   Time
    --------------------------------------------------------------------------------------------------
    4600         99         DENY_NONE  0x100001    RDONLY     NONE             /share   .   Tue Apr 14 03:47:18 2009

    testparm  : 如果你是習慣使用文字編輯器去修改 /etc/samba/smb.conf 檔案時,Samba 提供了一之程式 testparm 來驗證檢查 /etc/samba/smb.conf 設定檔是否正確,有無拼錯字等問題.

    [root@benjr ~]# testparm /etc/samba/smb.conf
    Load smb config files from /etc/samba/smb.conf
    Processing section "[homes]"
    Processing section "[printers]"
    Loaded services file OK.
    Press enter to see a dump of your service definitions
    .....................略............................

    進階使用還可以指定其他 samba server 的設定檔

    [root@benjr ~]# testparm /etc/samba/smb.conf 192.13.9.9

    smbclient : 查詢 samba server 提供哪些分享目錄

    [root@benjr ~]# smbclient -L benjr
    Password:
    Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.0.28-0.el5.8]

            Sharename       Type      Comment
            ---------       ----      -------
            share           Disk    
            IPC$            IPC       IPC Service (Samba Server Version 3.0.28-0.el5.8)
    Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.0.28-0.el5.8]

            Server               Comment
            ---------            -------
            BENJR                Samba Server Version 3.0.28-0.el5.8

            Workgroup            Master
            ---------            -------
            MYGROUP            

    "mount or smbmount" :mount smaba 所提供的 share 目錄

    [root@unsvr root]# mount -t smbfs  //benjr/share  /mnt
    Password:
    [root@unsvr root]# smbmount  //benjr/share  /mnountpoint
    Password:

    RHEL5 - Samba (四) 防火牆(iptables)

    當作 samba Server 一定需要24小時不斷電的開機,即使是使用在公司內部網路上也是有可能遭受到攻擊,所以有必要設定防火牆,除了有需要的 port 開啟外,其餘就不需要開啟.因為 iptables(firewall) 和 SElinux 都會影響到 Samba 分享目錄的結果.如果是要先測試使用結果建議先關閉 iptables(firewall) 和 SElinux.在Linux下常用的就是 iptables.而在 RHEL5 設定 iptables 也是很簡單.方法如下:

     

    [root@benjr ~]#system-config-securitylevel

    信任服務: 就是只有哪些服務可以透過防火牆(iptables)下的情況還繼續工作.
    只要開啟我們想要開放的 port 即可,基本上要開的 port 也只有 SMB /NMB 而已其他你可以依據需求來開啟.預設是沒有選項可以勾選你可以透過其他連接阜做設定.要開啟的也只有NetBIOS (UDP ports 137 and 138, TCP ports 139) 和 TCP port 445 for SMB file sharing without NetBIOS.

    如果你是透過遠端的 SSH 這邊還有一個可以在 Text mode 下執行的.

    [root@benjr ~]#system-config-securitylevel-tui

    因為設定方式差不多,所以這裡就不多加以說明了.而設定檔會存放在 /etc/sysconfig/iptables

    [root@benjr ~]# cat /etc/sysconfig/iptables
    # Firewall configuration written by system-config-securitylevel
    # Manual customization of this file is not recommended.
    *filter
    :INPUT ACCEPT [0:0]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [0:0]
    :RH-Firewall-1-INPUT - [0:0]
    -A INPUT -j RH-Firewall-1-INPUT
    -A FORWARD -j RH-Firewall-1-INPUT
    -A RH-Firewall-1-INPUT -i lo -j ACCEPT
    -A RH-Firewall-1-INPUT -i ppp0 -j ACCEPT
    -A RH-Firewall-1-INPUT -i eth0 -j ACCEPT
    -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
    -A RH-Firewall-1-INPUT -p 50 -j ACCEPT
    -A RH-Firewall-1-INPUT -p 51 -j ACCEPT
    -A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
    -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
    -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    -A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT
    -A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT
    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT

    -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
    COMMIT

    說明:
    下面是有關於 samba 的要開啟的 port.
    -A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT
    -A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT
    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
    如果要開機時就啟動 iptables ,使用下面這個指令,就會在每次開機時啟動 iptables .

    [root@benjr ~]#chkconfig iptables on

    當然我不希望現在再重開機所以直接用下面的指令將 iptables 打開.

    [root@benjr ~]#service iptables start
    Starting httpd [OK]

    將目前的 iptables 設定儲存下來

    [root@benjr ~]#/sbin/service iptables save
    #會將設定檔儲存在 /etc/sysconfig/iptables

    RHEL5 - Samba (五) 身分驗證的種類
    目前 RHEL5 使用的 samba 版本為 3.X,而 samba 3.X 提供了五種不同的身分驗證模式

    那我們就來看看這五種不同模式的 samba server 要怎麼樣來與現有的 Windows 網域結合
    1.Share Level Security : 不使用密碼做身份驗證
    security = share
    2.User Level Security : 本身這台 samba server 做身份驗證,這也是設定檔的預設值
    security = user
    3.Server Security :  交由其他台 Windows NT/2000/2003 或 samba server 做身份驗證
    encrypt passwords = Yes
    security = server
    password server = "NetBIOS_name_of_a_DC"
    4.Domain Security Mode : 身份驗證交由 Windows AD (Domain 為 mixed mode)或者由 Windows NT 4 處理
    workgroup = "name_of_NT_domain"
    security = domain
    5.ADS Security Mode : 身份驗證交由 Windows AD 處理(Domain 為 native mode)
    realm = your.kerberos.REALM
    security = ADS
    ads server = your.kerberos.server

    RHEL5 - Samba (六) Share 的身分驗證
    第一種是 Share Level Security : 不使用密碼做身份驗證,任何使用者在存取目錄時並不會詢問密碼.先在 X-windows 下執行 #system-config-samba 選擇 "Authentication Mode" 為 Share.

    透過 #system-config-samba 去設定驗證模式,主要都還是去修改 samba 的設定檔 /etc/samba/smb.conf ,我們先來看看使用 share 身份驗證時 samba 的設定檔是如何設定的.

    [root@benjr ~]# vi /etc/samba/smb.conf
    [global]
       workgroup = MYGROUP
       netbios name = benjr
       security = share

    1.主要不使用密碼做身份驗證 security = share
    2.netbios name 是自己加上的,也就是 Windows 的電腦名稱,如果沒有設定 netbios name 時 samba 預設是使用 hostname 為電腦名稱.

    不過要注意的是 samb 只管網路連結過來的使用者是否有權限,當然使用者還是要有 Linux 檔案的權限才可以.這概念跟 Windows 網路芳鄰一樣.

    首先選擇你要想分享的目錄這裡我開啟一個 /share 分享目錄,請自行建立(#mkdir /share).建立好目錄還要開檔案的權限(#chmod -R 777 /share),雖然使用者不需要輸入密碼,但是再做存取檔案時還是會受限於 Linux 的檔案權限的影響.在回到 #system-config-samba

    新增 Add Share 剛剛建立好的目錄,目前 samba 並沒有任何的使用者存在所以在 Access 也只能選擇 "Allow access to everyone".在 Basic 中分享名稱 Share name 可以依你的需要做修改,預設是使用目錄名稱.不使用密碼做身份驗證,並不代表有寫入的權限這裡可依據是否勾選 "writable" 來決定使用者(Guest User) 可以寫入的權限.我們先來看看剛剛那些動作 samba 的設定檔 /etc/samba/smb.conf 做了哪些設定.

    [root@benjr ~]# vi /etc/samba/smb.conf
    ============================ Share Definitions ==============================
    [tmp]
       comment = Temporary file space
       path = /tmp
       read only = no
       public = yes
    [share]
       path = share
       public = yes
       writable = yes

    [share] 就是分享的名稱 , path = /share 就是實際在 Linux 的目錄,writable 來決定使用者可以寫入的權限.
    Linux client 端需要使用的程式
    I.smbclient 查詢 samba server 提供哪些分享目錄

    [root@benjr ~]# smbclient -L benjr
    Password:
    Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.0.28-0.el5.8]

            Sharename       Type      Comment
            ---------       ----      -------
            share           Disk     
            IPC$            IPC       IPC Service (Samba Server Version 3.0.28-0.el5.8)
    Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.0.28-0.el5.8]

            Server               Comment
            ---------            -------
            BENJR                Samba Server Version 3.0.28-0.el5.8

            Workgroup            Master
            ---------            -------
            MYGROUP             

    上面的 passwd 可以不用輸入,直接打 enter 鍵即可跳過
    II."mount or smbmount" mount smaba 所提供的 share 目錄

    [root@unsvr root]# mount -t smbfs  //benjr/share  /mnt
    Password:
    [root@unsvr root]# smbmount  //benjr/share  /mnountpoint
    Password:

    上面的 passwd 可以不用輸入,直接打 enter 鍵即可跳過,這樣就可以直接使用smaba 所提供的目錄.

    Windows client 端需要使用的程式
    可以用網路的芳鄰來尋找,或者在 開始/執行 中鍵入 IP 或者電腦名稱(netbios name),就可以看到 samba server 所分享的目錄,此時就可以來存取由 samba server 所提供的檔案了.

    RHEL5 - Samba (七) 新增 samba User
    當 samba server security 選 user 安全等級時是用本身這台 samba server 做身份驗證.因為需要身分所以第一步就是要先新增使用者.不像之前的版本是將資料儲存在 /etc/samba/smbpasswd,RHEL5 將預設的使用者資料庫放在 passdb.tdb .

    [root@benjr ~]# cat /etc/samba/smb.conf
    # ----------------------- Standalone Server Options ------------------------
    #
    # Security can be set to user, share(deprecated) or server(deprecated)
    #
    # Backend to store user information in. New installations should
    # use either tdbsam or ldapsam. smbpasswd is available for backwards
    # compatibility. tdbsam requires no further configuration.

            security = user
            passdb backend = tdbsam

    不過當我們在建立使用者帳號密碼時這個使用者必須儲存在 Linux 本機上,這跟當地硬碟權限有關.新增兩位使用者 "Bob" 和 "John"

    [root@benjr ~]# adduser bob
    [root@benjr ~]# adduser john
    [root@benjr ~]#
    passwd bob
    Changing password for user bob.
    New UNIX password:
    Retype new UNIX password:
    passwd: all authentication tokens updated successfully.
    [root@benjr ~]# passwd john
    Changing password for user john.
    New UNIX password:
    Retype new UNIX password:
    passwd: all authentication tokens updated successfully.

    此時你可以透過 system-config-samba 新增使用者,在開啟 #system-config-samba 後,選擇 Preferences / Samba Users 增加使用者 "Add User"

    因為我們只能選擇已經存在的 Linux User 所以在 Unix Username:選擇剛剛新增的 bob 和 john.Windows Username 就設的跟 Unix Username 一樣即可.

    或是透過 #pdbedit -au 來新增使用者.

    [root@benjr ~]# pdbedit -au bob
    new password:
    retype new password:
    Unix username:        bob
    NT username:         
    Account Flags:        [U          ]
    User SID:             S-1-5-21-1634407166-380897321-584037179-1001
    Primary Group SID:    S-1-5-21-1634407166-380897321-584037179-513
    Full Name:           
    Home Directory:       \\benjr\bob
    HomeDir Drive:       
    Logon Script:        
    Profile Path:         \\benjr\bob\profile
    Domain:               BENJR
    Account desc:        
    Workstations:        
    Munged dial:         
    Logon time:           0
    Logoff time:          never
    Kickoff time:         never
    Password last set:    Fri, 17 Apr 2009 03:38:39 CST
    Password can change:  Fri, 17 Apr 2009 03:38:39 CST
    Password must change: never
    Last bad password   : 0
    Bad password count  : 0
    Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
    [root@benjr ~]# pdbedit -au john
    new password:
    retype new password:
    Unix username:        john
    NT username:         
    Account Flags:        [U          ]
    User SID:             S-1-5-21-1634407166-380897321-584037179-1002
    Primary Group SID:    S-1-5-21-1634407166-380897321-584037179-513
    Full Name:           
    Home Directory:       \\benjr\john
    HomeDir Drive:       
    Logon Script:        
    Profile Path:         \\benjr\john\profile
    Domain:               BENJR
    Account desc:        
    Workstations:        
    Munged dial:         
    Logon time:           0
    Logoff time:          never
    Kickoff time:         never
    Password last set:    Fri, 17 Apr 2009 03:38:51 CST
    Password can change:  Fri, 17 Apr 2009 03:38:51 CST
    Password must change: never
    Last bad password   : 0
    Bad password count  : 0
    Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

    #pdbedit 透過參數 -L 可以查詢所有儲存在 samba 的使用者.

    [root@benjr ~]# pdbedit -L
    john:501:
    bob:500:

    note:
    不是我愛嫌棄 RedHat 很多圖形介面的東西要做也不做好,像是我在使用 system-config-samba 新增使用者的時候,挖勒!!新增好就看不到了.再新增一次又被告知使用者已經存在(An account for this user already exists.  Please try again).

    恩!!!!這是怎麼一回事!!不過透過指令方式 #pdbedit -L 使用者真的已經加入,上網查了一下,果然是 system-config-samba 固定使用 /etc/samba/smbpasswd 當作他的使用者資料庫,但是我記得 RHEL5 不是已經將預設的使用者資料庫放在 passdb.tdb ,而且這一錯到 RHEL5.2 以前都沒修正,一直到 RHEL5.3 才修正.不過使用 RHEL5.2 之前版本也不用急著更新找到 system-config-samba-1.2.40 的版本就修正了,更新就可以使用了.

    https://bugzilla.redhat.com/show_bug.cgi?id=236557

    RHEL5 - Samba (八) 檔案權限
    雖然剛剛有大概談了一下使用者需要哪一些權限才能讀取到,這邊在詳細說明 Linux 的檔案權限.

    1.當 Bob 想對 Samba Server 提出讀取分享資料夾時,第一步就是需要透過身分驗證.除了 Share Level Security  不使用密碼做身份驗證其他都需要身分驗證,所以 Bob 必須為 Samba Server 所認識的使用者(有些身分驗證是透過其他 Windows 或 LDAP 來驗證,驗證機制一樣).

    2.當 Bob 為系統上可驗證的使用者時,接下來 Samba Server 會根據這個使用者可以讀寫分享哪些目錄.

    3.雖然 Samba 讓 Bob 可以讀寫分享特定目錄時,但是在 Linux 上還有一個叫做權限的問題我們現在就來看看 Linux 權限是如何設定的.

    Linux 系統下的檔案有所謂的權限設定,系統會依據這些權限的設定來決定使用者是否能讀取,寫入或執行指令 .
    #ls -l (ls "list directory contents",-l "use a long listing format")就可以看到檔案權限目前是如何設定的.

    這邊和檔案權限有關的是[檔案屬性][擁有者][所有者群組]
    以上 -rw-r--r-- [檔案屬性]的每一個位置都有他所代表的意思,每三個為一組,每一組皆為 rwx ,因為每一組皆代表不同人所有擁有的權限.

    第一組 User 代表的權限是針對自己所擁有的權限,也又是剛剛看到的[擁有者].
    第二組 Group代表同一群組的使用者所擁有的權限,也又是剛剛看到的[所有者群組].
    第三組 Other 代表[其他的使用者]所擁有的權限.
     
    而權限可以區分為 rwx ,而當我們在看 rwx 時檔案和目錄是具有不同的意義
    I. 對檔案而言:
    可讀(r):可以cat檔案內容
    可寫(w):可以cp,move檔案的內容
    可執行(x):可以執行檔案
    II. 對目錄而言:
    可讀(r):對目錄而言單獨有此權限是沒有用的,還要同時有x的權限.才能有 ls 讀取目錄的內容.
    可寫(w): 對目錄而言單獨有此權限是沒有用的,還要同時有x的權限.才能有cp,move,touch目錄內的檔案.
    note: 當目錄擁有 w 的權限而目錄下的檔案並沒有設定 w 的權限,此時檔案還是可以編輯及刪除.
    可執行(x): 具有 cd (change directory)進入目錄的權限
     
    note:當檔案的User,group為同一人時,權限是看 User 的.

    目錄的預設權限:

    [root@benjr ~]# mkdir /share
    [root@benjr ~]#
    ll -d /share
    drwxr-xr-x 2 root root 4096 Apr 20 08:31 /share

    不管是誰建立目錄的基本上所有的人都有 rx 可進入目錄的權限.但是你要讓 Bob 也要寫入 /share 目錄時必須具備.
    1.other 必須開啟 w (寫) 的權限.
    2.將 /share 的 user 改為 Bob.
    3.建立群組(Group),並讓目錄使用者群組修改.並加上  w (寫) 的權限.

    如果是在測試環境時就不需要考慮太多一率將權限改為 777.

    Was this page helpful?
    標籤 (Edit tags)
    • No tags
    您必須 登入 才能發佈評論。
    Powered by MindTouch Core