我们正在设置一个 CentOS 6.2/Apache 网络服务器,其安全要求比我习惯的更高。
我已经建立了一个名为“web”的用户组,并且我想限制它的成员只能在 /var/www/html/ 及其子目录中读取、写入和执行。
“web”组的成员不应该能够访问服务器的任何其他部分(尽管单个用户主目录可以)。
我以为这会很简单但在过去的半个小时里一直在兜圈子。
我需要使用哪些 bash 命令来实现这一点?
答案1
嗯,在我看来,你需要把你的小组成员关起来,否则他们将能够看到你的文件系统的内容。
如果您要允许用户 ssh 访问,您可能需要查看此教程以了解 chrooted ssh/sftp 访问:http://www.howtoforge.com/chrooted-ssh-sftp-tutorial-debian-lenny
此外,如果这是 apache 将在其下运行的组,并且您要托管 PHP 应用程序,请检查 php open_basedir 指令以实现此类限制:http://www.php.net/manual/en/ini.core.php#ini.open-basedir
最后,如果您要提供 FTP 访问,我相信 vsftpd 和 proftpd 等 ftp 服务器将默认 chroot 其用户,但限制将由其各自的主目录进行。
希望这能帮助你实现你的目标。