2009-08-06 81 views
2

因此,對於我的客戶端,在我的服務器上託管站點的用戶,我使用/ home內的標準主文件夾創建用戶帳戶。Debian Lenny中的訪問控制列表

我爲所有collective用戶設置了SSH監獄,因爲我真的反對使用單獨的FTP服務器。然後,我安裝了ACL並添加了acl到我的/etc/fstab - 都很好。

  1. 我cd到/homechmod 700 ./*
    • 此時用戶無法查看到其他用戶的主目錄(耶),但是Apache無法看到它們要麼(BOO)
    • 。我跑了setfacl u:www-data:rx ./*。我也嘗試過個人目錄。
    • 現在apache可以再次看到這些網站,但所有的用戶都可以看到。 ACL將主文件夾的權限更改爲750

如何設置ACL的這樣Apache可以看到用戶的主文件夾和2.用戶託管他們的家之外,進入別人的文件不能看到網站。我已經在共享盒使用

回答

2

由於I交叉張貼的問題(我不知道ServerFault,直到後,我問),我會交叉張貼的答案,因爲我個人覺得這個問題是適當的兩個社區。

hayalci的(上ServerFault)評論說,

chmod和setfacl的不工作也很好。

幫了大忙。除了使用chmod來防止其他組訪問數據的,我用:

cd /home 
setfacl -m g::0 joeuser # Removes permissions for the owning group. 
setfacl -m g:www-data:r joeuser # Adds read permissions for Apache 
cd joeuser/joeuser.com/static/ 
setfacl -m g:www-data:rwx uploads # So apache can write to the uploads directory. 
1

一個竅門是:

  • 遞歸設置主目錄的內容不允許訪問「其他」用戶

    chmod -R o-rwx /home/*

  • 設置所有的頂級用戶的主目錄權限爲「其他」用戶是可執行

    chmod o+x /home/*

  • 更改每個用戶的public_html目錄組www數據(或者你的Apache組)

    chgrp命令www數據/家庭/ * /的public_html

  • 改變所有的目錄在/ home/*/public_html被設置爲

    find/home/user/public_html -type d -exec chmod 2750 {} \;

不要將任何用戶添加到www-data(或apache組)中。即使它們不是成員,setgid技巧仍然會使這些文件可以被apache讀取。它不是完全防護的(移動文件並不總是會改變組的所有者,有時候其他用戶權限在移動之前留下),但它在我的盒子上工作。希望這有所幫助!也許別人會有更好的解決方案。

+0

我可以看到它是如何工作的,但我不喜歡/ home/joeuser/joeuser.com文件夾被除joeuser:collective以外的其他任何東西所擁有的想法。 – arbales 2009-08-16 04:36:06

1

我做這件事,假設所有用戶是「用戶」組中的典型方式:

chmod 701 /home/* 
chgrp users /home/* 

可選在/ home上執行相同的操作,以防止用戶看到主目錄列表。但是,他們可以從/ etc/passwd或getent passwd

中獲取幾乎相同的列表。現在,用戶組中的每個人都將被拒絕訪問所有homedirs(除他們自己之外)。非用戶成員(如Apache和其他服務)仍然能夠進入家庭,但不能做ls。

chmod 755 /home/*/public_html < - 替換任何WWW路徑使用

現在Apache和其他服務將免費CD /家庭/ foobar的/的public_html列出文件和其他任何一個網絡服務器的需求。