现在我买了一个 Ubuntu Cloud 服务器。我今天早上安装了 Webmin,现在我有一个问题。是否可以创建只能使用一个目录的用户,SVN、FTP、PHP、Python、MySQL、Apache?例如,用户 Kevin 只能使用/var/www/kevin/?哦,目录创建后,SVN 结帐应该填满目录。管理所有数据库的最佳方法是什么?很多人都会使用数据库,那么我怎样才能保证它的安全呢?每次执行查询时是否可以备份数据库?
非常感谢,
问候,
凯文
最佳答案
这可能更适合 https://askubuntu.com/
也就是说,在每次查询后备份数据库听起来像是糟糕性能的秘诀,而且可能没有真正的好处。配置或修改您的应用程序以将审计日志发送到另一台机器可能更容易实现。
您可以配置您的标准 Unix permissions允许 kevin 只在 /var/www/kevin
中写入.限制 kevin 可以运行的程序可能需要一个更像 AppArmor 的工具。 , SElinux , TOMOYO , 或 SMACK .这些中的任何一个mandatory access control工具可以防止用户执行不受信任的程序或在标准 Unix 权限之上提供额外的安全层。
我已经在 AppArmor 上工作了十多年,这将是我为这项工作首先选择的工具,但其他工具非常出色,可能更适合您的环境。 (AppArmor 可能已经预装。检查 aa-status(8)
输出以查看。:)
但首先要确保您的 Unix 权限是正确的——它们可能是老派,但它们非常棒。
更新
But how can I make that when 'kevin' signs into SSH, he automatically goes to directory
/var/www/kevin/
(and can't go to/var/www/
or directories below)?
您可以添加
cd /var/www/kevin
凯文的命令~/.bash_profile
或 ~/.profile
文件。这可能比有用更烦人。 (我不建议将 kevin 的主目录(在 /etc/passwd
中)设置为 /var/www/kevin
,因为这会将 ~/.bash_history
和 ~/.ssh/*
信息存储在 /var/www/kevin/.bash_history
和 /var/www/kevin/.ssh/
中,可能会暴露过多的 kevin 私有(private)信息。 )让kevin进入
/var/www/kevin/
, kevin 需要能够输入 /var/www
-- 但他不一定需要看/var/www
的内容:root:root 755 /var
root:root 751 /var/www
kevin:kevin 755 /var/www/kevin
other:www 750 /var/www/other
priv:www 750 /var/www/private
如果您的网络服务器与组或补充组一起运行
www
,它将能够遍历和读取所有这些目录。凯文不能。 (假设 kevin 不在组或补充组中 www
。) Kevin 可以 cd /var/www
, 如果凯文猜到 /var/www/other
或 /var/www/private
,他可以确定它们存在,但他不能真正进入目录或列出它们的内容。
关于database - Ubuntu 网络服务器权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5578673/