我有一台包含 10 个用户的服务器。操作系统:Ubuntu 12.04.3 LTS 64 位
这些用户都是开发者(主要是Web开发者:HTML+JS+PHP+MYSQL)
我允许他们通过 XRDP 和 VNC 进行远程登录。
现在一切正常,但 /var/www 中的问题
这个目录的合适权限是什么,以便他们在共享一些代码时不会遇到问题,尽管他们不是 root。他们都是简单用户。
我想知道是否有一种安全的方法可以让他们共享源代码,同时每个人都有自己的存储库。我欢迎任何想法。
答案1
您将所有这些用户放在同一个组中
usermod -g {group} {user}
这样所有用户都具有相同的权限。我们通常使用 apache 设置的组(www-data 或 apache)。
对组中文件或目录的权限的任何更改都将改变所有人的权限。
一般而言,/var/www/ 中的文件最小值为 664。目录最小值为 775。切勿将任何文件设置为 777,但可以设置得更低。
答案2
另一种方法(由于赏金:))
如果您不想让所有用户都使用同一个 webroot,您可以这样做。您可以将不同的目录作为 /var/www/ 目录的 webroot 别名。假设您有两个用户 u1 和 u2。
我认为你已经安装了 apace2,如果没有,请安装它sudo apt-get install apache2
我将目录 /home/u1/web 和 /home/u2/web 设为用户 u1 和 u2 的 webroot。
sudo chmod 775 home/u1/web
sudo chmod 775 home/u2/web
sudo gedit /etc/apache2/sites-available/default
为用户 u1 创建别名(将以下内容添加到文件):
Alias /u1 /home/u1/web
<Directory /u1>
Options All
AllowOverride All
order allow,deny
allow from all
</Directory>
为用户 u2 创建别名(将以下内容添加到文件):
Alias /u2 /home/u2/web
<Directory /u1>
Options All
AllowOverride All
order allow,deny
allow from all
</Directory>
现在,每个用户都可以通过将 Web 浏览器指向 localhost/u1(用户 u1)和 localhost/u2(用户 u2)来访问自己的 Web 根目录
答案3
你可以这样做:
- 为每个用户在 /var/www 内创建一个目录
将每个目录的所有者更改为关联用户,并将组更改为 www-data 组
sudo chown user1:www-data /var/www/user1
sudo chown user2:www-data /var/www/user2
将每个目录的权限更改为 750,以便任何用户都无法弄乱其他用户的文件,但保留使用 www-data 组的权限在浏览器中打开其他人的 html 文件的能力。