微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ssh – 我应该与运行网站的同一用户一起部署吗?

我有一个Nginx提供服务的网站,我最近为它设置了travis构建和部署.

Nginxwww-data用户身份运行网站.我创建了一个用户部署,以便Travis可以通过SSH登录服务器并部署网站.部署的文件与部署用户一起存储为所有者,这与运行网站的用户(www-data)不同.

我害怕使用此设置运行网站时出现权限问题.我应该使用相同的用户www-data / deploy来运行和部署网站吗?使用这种方法,通过允许运行网站的用户通过SSH远程登录,我会遇到问题吗?

关于这一点请赐教.

解决方法:

实际上,文件不应该由www-data拥有,因为这意味着Nginx可以修改它们,在大多数情况下这不是你想要的(除非它是需要自我更新的CMS.)

所以所有文件都应该由deploy拥有.

如果它是一个CMS而你需要在几个文件夹中写入,那么那些极少数(一个?)文件夹确实应该由www-data拥有.如果部署也进行了第一次安装,那么这可能会导致问题.既可以让用户运行手动步骤,也可以让一个特殊的工具来完成这项工作,但是如果它是一次性的事情,只需手动完成,就会很容易(特别是因为你只有一个这样的文件夹,对吗?)CMS也可以告诉你是否存在这样的问题并停止而不是提供页面.这样您就可以立即知道,并且当您尝试上传文件或某些类似操作时可以避免出现问题.

当然,文件不归www-data所有,但需要通过www-data读取.因此要么让其他人可读(-rw-r -r–),要么将组设置为www-data(-rw-r —–).在大多数情况下,我看到人们甚至没有冒险使用该组.他们只是让其他人访问这些文件,因为它更安全.

当然,这也意味着Nginx对部署用户和组没有访问权限.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐