1,必備知識。已經知道的請跳過。
首先科普壹下這兩個東西:samba和chmod其實是完全不同層面的東西,壹個是***享服務協議,壹
個是權限設置語句。但是他們有壹個***同的用途:可以用來實現設置壹個***享文件夾的訪問權限。
Samba:
Samba是用來實現SMB的壹種軟件,咱們在這裏在了解壹下SMB(Server?
MessageBlock,服務信息塊)。SMB協議可以看作是局域網上的***享文件/打印機的壹種協議,它
可以為網絡內部的其它Windows和Linux機器提供文件系統、打印服務或是其他壹些信息。
Chmod:
可以使用命令chmod來為文件或目錄賦予權限。Linux/Unix 的檔案存取權限分為三級 : 檔案擁有
者、群組、其他。利用 chmod 可以藉以控制檔案如何被他人所存取。
abc權限設置:
其中a,b,c各為壹個數字,分別表示User、Group、及Other的權限。
r=4,w=2,x=1
若要rwx屬性則4+2+1=7;
若要rw-屬性則4+2=6;
若要r-x屬性則4+1=5。
2,使用方法。
Samba設置壹個文件夾的權限步驟:
(1)編輯samba配置文件:sudo vi /home/etc/samba/smb.conf
內容如下:
[***享文件夾名]
Path=/home/?/文件夾名
Valid user=用戶名1,用戶名2,用戶名3?
Create mask=0777(此處權限設定依具體情況而定)
(2)重啟samba使之生效:sudo smbd restart
chmod更改壹個文件夾的權限步驟:
格式:chmod [-cfvR] [--help] [--version] abc /home/?/文件夾名
3,比較實驗。
那麽這兩個家夥誰的權力大,誰的級別高呢,我做了如下壹系列的實驗:
創建壹個文件夾,修改smb.conf設置其為***享文件夾。此時,同時修改chmod和valid user來進行
比較。
(1)chmod abc>770 (如771,772,773,775,776,777) ; ?valid user= user name A ?=> ?A有讀,寫,執行權限
(2)chmod abc<760 ; valid user= user name A ? => ?A的權限完全受制於chmod abc,與samba設置無關
(3)chmod abc>770 (如771,772,773,775,776,777) ; ?valid user內不包含 user name A (A為group user或者owner) => ?A無讀,寫,執行權限
(4)chmod abc<760 ?; ?valid user內無 user name A (A為group user或者owner) ?=> ?A無讀,寫,執行權限
4,結論。
chmod和samba在近端和遠端***同控制著壹個文件夾的訪問權限,相當於壹條路的兩道關卡,要想通過,缺壹不可。chmod是本地控制,對各級用戶使用權限具有本地決定權;samba是網端控制,在開放chmod權限的前提下(通常是至少770),才能使用samba進壹步設置特定用戶權限,具有網端決定權。
5,特殊說明。
(1)若所***享的文件夾處於某壹用戶目錄下,則對於該目錄訪問權限,該用戶僅受本地chmod abc控制,samba對於設置無效。若將文件夾置於root目錄下,則不存在這個問題。
(2)samba中的valid user對文件夾的owner,group user ,other具有同等的權限賦予能力。