抱歉,我问的问题太菜鸟了,我是 Linux 新手,正在尝试学习和实践安全的 LAMP 管理,以便用于我即将进行的小项目。
我已经安装了 vsftpd,但无法按我想要的方式设置权限。似乎 /var/www 中的文件必须由用户 www-data(ubuntu 上的默认用户)拥有,这样 apache 才能在那里读写,但我想将文件直接上传到 /var/www,并能够使用 Windows 框中的 notepad++ 通过 FTP 编辑它们。现在,我无法使用用户 www-data 访问 FTP,因为我不知道密码,所以我创建了新的用户 webmaster,但由于所有者不同,apache 无法访问文件。我怒气冲冲地试图设置匿名 FTP 访问,只是为了让它正常工作,所以在 vsftpd.conf 中,我允许匿名登录和创建文件,并将其设置为使新上传的文件不属于任何人,但我根本无法上传任何东西。
那么我该如何实现呢?我希望 /var/www 中的文件是安全的,只有系统内部的 apache 和 ftp 守护进程才能访问。我现在说的是无安全的 FTP,以后会尝试学习 FTPS 或 SFTP。
我在生产服务器上的想法是通过 SSH 登录,启用 FTP(S),传送文件,禁用 FTP,然后注销。在现实世界中就是这样做的吗?
谢谢您的回答。
答案1
参考 VSFTPD 手册页 conf (http://vsftpd.beasts.org/vsftpd_conf.html),在 vsftpd.conf 文件中,有一个名为本地掩码。
默认情况下,它是 077,它会产生 -rw------- 权限。要为每个文件赋予 -rw-r--r-- 权限,请设置本地掩码至 022。
一旦更改了 conf 文件,请记住重新启动 vsftpd 服务器。
答案2
请不要允许匿名连接上传任何文件。它将被用于传播病毒和色情内容。
Apache 只需要对它要服务的目录具有读取权限(在大多数配置中)。
chown -R john:www-data web-data-folder 和 chmod 755 web-data-folder 将授予 john 对目录及其内的每个文件/文件夹的写入权限,同时保留 apache 和系统上任何其他用户的读取和执行(文件夹列表)权限。如果您比较谨慎,可以使用 chmod 750。
现在我基本上已经给了你命令:请阅读 chmod 和 chown 如何协同工作。每个 unix/linux/bsd 安装都安装了它们的手册页。