作为一名 Web 开发人员,我在从 SSH 客户端更新 PHP(和其他)文件时总是遇到问题,因为我是以用户身份登录的,或者只是 root 用户登录的。 在那次更新之后,我总是必须从终端“chown -R apache:apache *”手动运行以使文件可访问。
我尝试创建一个用户 ID 并将其添加到组 'apache' 并将 apache 用户添加到我的用户 ID 的组中。这仅适用于服务器文件系统上的现有文件,因为新创建的文件具有权限 rwxr--r-- 不允许我的用户写入,即使它位于“apache”组中。
我想为 Apache 用户进行登录(不需要 shell),所以我可以使用基于 SSH 的文件浏览器(如 Forklift)以 Apache 身份登录或使用 sshfs 以 Apache 用户身份挂载。
另一种方法是使 umask 我的用户 id 始终设置来自 sshfs 挂载或文件浏览器(使用我的用户 id,而不是 root 挂载)的新创建文件的属性,它们默认具有权限 rwxrwxr--(即 0775)。
有没有办法可以将文件上传到服务器(更新现有的操作创建新的)而不必担心 Apache 的权限?
【问题讨论】:
- 在专业环境中,您将无法使用服务帐户(即软件用来运行的用户)连接或登录服务器。
setgid
是最简单的。在目录下添加setgid
,把你的用户放到组里,设置你的umask,使用sftp
传输文件。如果需要图形界面,可以使用WinSCP或者Filezilla客户端做sftp
。
标签: linux apache ubuntu permissions centos