linux python源码目录结构,一台 Web 用途 Python 的Linux 服务器的目录结构、用户分组应该是怎样的?...

我在之前以及现在,在编写一套虚拟主机面板,因此对权限控制略有想法。在这里分享一下我设计的权限控制方案,应该算是比较严格的,当然,这可能并不是主流方案。

下文服务指的是数据库这类软件,应用是指自己编写的程序。

所有数据都放在 /home, 例如 mysql 的数据放在 /home/mysql/data; 应用的文件放在 /home/myapp/web, 每个应用用单独的用户,以隔离权限。因为数据都在 /home, 只单独挂载 /home 就可以了。

每个服务都用单独的用户来跑,各种服务不监听本地端口,而是监听 unix socket, 因为这样可以用文件系统来进行更灵活的权限控制。

大部分文件都用 750 的权限,即自己有完整权限,同组用户可以读取和运行,其他用户不可读。当一个服务需要读取另一个应用的文件的时候,把服务的用户加到被用到文件的应用的组。例如 nginx 需要读取 myapp 的静态文件,那么就把 http 加到 myapp 组里。

unix socket 略有不同,例如 myapp(Python App) 监听了一个 unix socket 提供 HTTP 服务,Nginx 需要反代这个服务,那么这个 unix socket 文件的权限需要是 770 才行,不然 Nginx 没法写这个文件就没法反代请求。

在使用数据库的时候,每个应用都要用不同的帐号,例如 MySQL 自带的非常好的权限系统。

而对于 memcached 这类没有权限控制的服务,应该为每个应用跑一个单独的实例,然后用 unix socket 做权限控制。

至于源代码的部署,我个人倾向于先将代码 push 到一个单独的源代码服务器(可以是 Github 或者自建的 GitLab), 然后发布时手动从服务器 pull. 这样的好处是生产环境有独立的历史,源码服务器上不必包含一些如帐号密码等敏感信息,这些信息只存在于生产环境的历史中。

SELinux 没用过。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值