其實是這樣的,今天因為某些原因需要再VSFTP上面做一些小設定。
需求如下,A、B帳號:
A帳號只可上傳無法下載及刪除,B帳號則可以上傳下載刪除。
(共用同個目錄,也有點像是老師跟學生的關係!)
感覺起來好像蠻簡單的,就開始爬爬爬.....(爬文、GOOGLE、鳥哥....!)
關鍵字:VSFTP 限定使用者只能上傳、VSFTP 個別設定使用者權限...
就這樣不斷的嘗試.........,天阿!!怎麼都沒有...
(一定是我太弱了.....真想砍了VSFTP換PROFTP....!)
就在快放棄的時候,突然想到另外一種作法...如果從權限去著手呢!
可是問題來拉,A帳號上傳....權限是他,要怎麼不讓他下載呢?
突然間有個聲音從旁邊出來,不會用ACL喔....
那是瞎密?(大驚~!)
趕快去鳥哥那邊拜讀一下....
哇~原來有這種好物,以前怎麼都不知道---- (可見有多混~!)
簡單提一下ACL 的設定方法。
getfacl - 取得檔案/目錄 ACL 設定項目
setfacl - 針對檔案/目錄設定ACL 設定項目
#先來取得一下看看
getfacl /home/A
getfacl: Removing leading '/' from absolute path names
# file: home/A/
# owner: A
# group: users
user::rwx
group::r-x
other::r-x
接下來讓A只能寫入不能讀(哈哈哈~離成功只有一小步了!)
setfacl -m u:A:wx /home/A
正爽快的按下ENTER時,瞎密發生錯誤........
我沒有打錯吧!!不信邪~再來,還是失敗(錯誤訊息忘記了!!就是失敗就是了!)
趕快上網爬一下,有人說是OS太老舊。
我承認這個時候還跑FedoraCore 5(等等~這邊不是openSUSE嗎?)
但畢竟不是我的機器,問題還是要先解決!
試了很久,放棄....(謎之音:換CENTOS吧!)
我也想說好吧可能真的是系統太老舊了...繼續爬一下鳥哥的文章,拜讀ACL
突然間喵到這段
引用鳥哥文章的內容:
由於目前新的 distributions 常常會主動加入某些預設功能, 如上表所示,其實 CentOS 5.x 在預設的情況下 (Default mount options:) 就幫你加入 acl 的支援了! 那如果你的系統預設不會幫你加上 acl 的支援呢?那你可以這樣做:
心中暗自竊喜,一定是這個原因拉!
mount -o remount,acl /
測試一下,果然成功了!(太好了,問題解決了!)
趕快去fstab編輯一下(#vi /etc/fstab),把需要此功能的分割區加上,acl
大概如下
/dev/sda2 / ext3 acl,default
回到家拿一下openSUSE測試,果然預設就支援了拉。果然是好系統。
(硬要拉回這,也太會扯了...!)
看來不能老是只玩桌面(openSUSE已經變我主要系統了,WINDOWS 掰掰嚕!)
伺服器應用也該好好研讀才是了!
=========
正當我以為一切都設定好後
沒想到使用者反應無法刪除檔案
仔細查了一下 是權限的問題A上傳的檔案B無法刪除。
後來仔細回想一下原來是沒有繼承到
這時
setfacl -m d:u:A:wx /home/A
終於搞定,收工!!
如果說我們想把設定的某一筆規則刪除該怎麼做呢(一樣很簡單,使用x這個參數)
setfacl -x d:u:A /home/A
最後更新日期:2012/12/11
====
延伸閱讀
第十四章、Linux 帳號管理與 ACL 權限設定