我有一个Django项目在Ubuntu服务器上运行。还有其他的开发人员能够通过ssh连接到设备中并查看文件。我希望这样做,以便settings.py
中的mysql凭据和api密钥可能被分离到一个不同的文件中,该文件只能由root用户查看,但也可以由django项目运行。在
我以前的方法是使密码文件只能访问根:根chmod 600
,但mysettings.py
在尝试导入密码文件的变量时抛出一个ImportError
。我读过关于setuid的文章,但这似乎一点都不安全。我想做的事情有什么好办法?谢谢。在
Tags:
我将把密码文件放在Django用户拥有600个权限的目录中。Django用户可以做它需要做的事情,其他人甚至不能在目录中查找(除了root和Django)
您可以做的另一件事是将它存储在数据库中并设置它,以便数据库中的root用户和Django用户具有唯一的密码,这样只有拥有这些密码的人才能访问它。IE系统根不再与DB根相同。在
看看文件系统ACL,setfacl manpage。在
您可以让questibled中的文件仅由root用户拥有和可读,但也允许Django代码以任何用户身份(您的用户名、apache用户等)具有读取权限。文件系统ACL允许比标准所有者/组/其他文件权限更精细的访问控制
这正是创建dj-database-url的目的!在
使用这个包,您可以在用户的环境变量中存储数据库信息。从不同帐户登录的任何人都无法访问数据库详细信息
如何使用?在
在中配置数据库设置.py从
DATABASE_URL
(默认为可选):然后在你的壳里
^{pr2}$这将使用您指定的连接运行服务器,如果
DATABASE_URL
未定义,则假定连接由可选的default
参数传递。在理想的情况是
^{3}$在主目录中的.bashrc文件中,以便只有您可以读取它
相关问题 更多 >
编程相关推荐