Permissions Debian Lenny中的访问控制列表

Permissions Debian Lenny中的访问控制列表,permissions,apache2,debian,acl,chroot,Permissions,Apache2,Debian,Acl,Chroot,因此,对于在我的服务器上托管站点的客户,我创建了用户帐户,在/home中包含标准的主文件夹 我为所有collective用户设置了一个SSH监狱,因为我确实反对使用单独的FTP服务器。然后,我安装了ACL并将ACL添加到我的/etc/fstab-一切正常 我将cd插入/home和chmod 700./*。 此时,用户无法查看其他用户的主目录(yay),但apache也无法查看它们(boo) 。我运行了setfaclu:www-data:rx./*。我还尝试了单独的目录 现在apache可以再次

因此,对于在我的服务器上托管站点的客户,我创建了用户帐户,在/home中包含标准的主文件夹

我为所有
collective
用户设置了一个SSH监狱,因为我确实反对使用单独的FTP服务器。然后,我安装了ACL并将ACL添加到我的
/etc/fstab
-一切正常

  • 我将cd插入
    /home
    chmod 700./*
    • 此时,用户无法查看其他用户的主目录(yay),但apache也无法查看它们(boo)
    • 。我运行了
      setfaclu:www-data:rx./*
      。我还尝试了单独的目录
    • 现在apache可以再次看到这些站点,但所有用户也可以看到。ACL将主文件夹的权限更改为
      750

  • 如何设置ACL,以便Apache可以查看用户主文件夹和2中托管的站点。用户看不到家外和他人的文件。

    我在共享框上使用的一个技巧是:

    • 递归地将主目录的内容设置为不允许“其他”用户访问

      chmod-ro-rwx/home/*

    • 将所有顶级用户的主目录权限设置为可由“其他”用户执行

      chmod o+x/home/*

    • 将每个用户的public_html目录组更改为www数据(或您的apache组)

      chgrp www-data/home/*/public\u html

    • 将/home/*/public\u html下的所有目录更改为setgid

      find/home/user/public_html-typed-execchmod2750{}


    不要向www数据(或apache组)添加任何用户的。即使它们不是成员,setgid技巧仍然可以使文件被apache读取。它不是完全可靠的(移动文件并不总是更改组所有者,有时如果在移动之前存在其他用户权限,则会保留其他用户权限),但它确实适用于“我的盒子”。希望这有点帮助!也许其他人会有更好的解决方案。

    因为我交叉发布了这个问题(我在问过之后才知道ServerFault),所以我会交叉发布答案,因为我个人认为这个问题适合两个社区

    hayalci(关于服务器故障)评论说

    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.
    

    我的典型做法是,假设所有用户都在“用户”组中:

    也可以在/home本身上执行相同的操作,以防止用户看到主目录列表。但是,它们可以从/etc/passwd或
    getentpasswd

    现在,用户组中的每个人都将被拒绝访问所有HomeDir(他们自己的除外)。非用户成员(如Apache和其他服务)仍可以将cd刻录到HomeDir中,但无法执行ls


    chmod 755/home/*/public\u html
    我可以看到它的工作原理,但我不喜欢将/home/joeuser/joeuser.com文件夹归joeuser:collective以外的任何人所有的想法。
    chmod 701 /home/*
    chgrp users /home/*