据我所知,构建 LAMP 堆栈后,会Apache
创建一个www-data
用户。但您不能直接以用户身份登录www-data
(出于安全原因)。相反,如果您想以用户身份执行某些操作,www-data
则必须运行以下命令:
su -s /bin/bash www-data
我可以接受。但我有两个问题:
- 当您想通过 FTP 上传文件时,您会怎么做?目前,我必须以 root 用户身份访问 FTP,然后在上传后将
chown
文件返回到。我运行 Magento,并且该设置坚持要求我仅授予权限。否则,我只会授予访问权限。www-data
owner
write
write
group
- 当您想允许非 root 用户以
su
身份运行 时,您会怎么做www-data
?因为如果您su -s /bin/bash www-data
以普通用户身份运行,那么他们会看到This account is currently not available
。
答案1
据我了解,Apache 创建了一个 www-data 用户
不。大多数包管理系统都会在部署软件时创建一个用户。
您无法直接以[该用户]身份登录
是的 - 正如你所说,这通常是出于安全原因。
你必须......su -s /bin/bash www-data
如果系统配置为允许这样做 - 有时甚至会禁用此功能。
当您想通过 FTP 上传文件时,您会怎么做?
你制定了一个权限模型,允许相关用户部署和修改文件,并允许 Web 服务器 uid 读取这些文件。在非常在极少数受控的情况下,您可以配置 Web 服务器 uid 可以写入的文档根目录之外的位置。
在我配置的每个 Web 服务器上,Web 服务器 uid 都是权限最低的帐户,因此我通过“其他”权限槽授予它读取访问权限,例如
colin@animal /var/www/html $ ls -l
total 28
-rw-rw-r-- 1 colin webdev 11321 Dec 27 2016 index.html
drwxrwsr-x 2 colin webdev 4096 Jan 10 2017 session
-rw-rw-r-- 1 colin webdev 148 Feb 18 2018 login.php
drwxrwsr-- 1 colin grafx 4096 Jan 9 2017 images
-rw-rw-r-- 1 colin grafx 8334 Jul 4 21:59 logo.png
权限是您分享访问,而不是拒绝访问。
允许非 root 用户以 www-data 身份执行 su
我不这么认为。这根本就没有必要。