我正在一台机器上部署我的 Django/Python 服务器,该Ubuntu 17.04
机器还包括Postgres
、Redis
、Nginx
和。 Postgres 和 Redis 仅通过 unix 套接字进行监听,而不是在 TCP 端口上进行监听。我使用选项将我的服务器同步到我的云目录,并且我已经设置了一个希望安全的配置。uwsgi
Exim4
-avP
home
iptables
我知道上述信息可能与问题不太相关,但我想提供一些有关我的环境的详细信息。更改服务器根目录的权限会让700
我更安全吗?当我在更改.py
开发计算机中的某些文件或添加一些新文件后同步时会发生什么?是会自动更改还是每次操作后700
都必须重新更改?chmod
rsync
答案1
要访问类 Unix 系统上的任何文件,您需要搜索对通向它们的所有目录组件的权限。
例如,为了能够打开/a/b/c
以供阅读,您需要 的搜索权限(输出x
中的位) ,以及的搜索权限(输出中的位)。ls -l
/
/a
/a/b
read
r
/a/b/c
因此,如果限制 的搜索权限/
,实际上就是限制对每个文件的访问。
通常/
所有者 ID 为 0,拥有 700 权限意味着除 root 之外的任何用户都无法访问任何文件。无论如何都root
可以访问任何文件,无论权限如何。
这意味着,要使该系统能够执行任何操作(因为大多数操作都涉及打开一个文件或另一个文件),所有操作都必须以 运行root
,即可以执行任何操作的用户。
因此,实际上,您将放弃用户访问控制带来的安全优势。与其说是通过更改/
0700 的权限,不如说是通过更改您的系统,以便所有内容都以 root 身份运行,以便可以通过/
0700 权限使用。
答案2
你的意思是chmod 700 --recursive /
?这只会引起问题。既然你说服务器不是共享的,那么文件夹权限就不那么重要了。应用程序的安全性很重要。检查SELinux
,虽然是高级的东西。
rsync
有处理权限的开关。您可以--chmod=CHMOD affect file and/or directory permissions
在同步期间对目标应用适当的权限。