我的用户名是 jknoppf。我使用 Apache,并希望授予自己对 /var/www/html 的完全访问权限,并开始使用
$ sudo adduser jknoppf www-data
然后我有
$ sudo chown -R www-data:www-data /var/www/html
有用!
但在一些论坛上我也读到过
$ sudo chown -R jknoppf:www-data /var/www/html
而且它也能正常工作!这两种使用方法有什么区别chown
?
答案1
sudo adduser jknoppf www-data
和sudo chown -R www-data:www-data /var/www/html
:
第一个命令会将用户添加jknoppf
到组 中www-data
,第二个命令会将所有目录和文件(包括 )的所有者更改/var/www/html
为用户www-data
,同时将组所有者更改为组www-data
。由于 的权限/var/www/html
默认为775
,并且用户jknoppf
在 组中www-data
,因此该用户可以完全访问其中的所有内容。
sudo chown -R jknoppf:www-data /var/www/html
:
此命令将所有目录和文件(包括 )的所有者更改/var/www/html
为用户jknoppf
,并将组所有者更改为组www-data
。由于 的权限/var/www/html
默认为775
,而用户jknoppf
是该目录的所有者,因此该用户可以完全访问其中的所有内容。
备注:许可的775
意思为:
第一7
:文件的所有者对文件有完全的访问权限,即读4
+写2
+执行1
。
第二7
:该组所有者组内的所有用户对文件都有完全访问权限,即读取4
+写入2
+执行1
。
第三5
:既不是所有者也不是组成员的所有其他人都只有读取4
+ 执行的权限1
。
答案2
一切都取决于您想要实现的目标。
如果您是想要处理其中文件/var/www/html
的人,那么您可以选择第二条语句。它使您的用户成为所有者,/var/www/html
然后您可以保存、编辑...该目录中的文件,同时www-data
将成为目录的组,因此您的 Web 服务器也能够处理这些文件。
如果您的 PC 上有许多人正在从事不同的项目,那么您可以选择第一条语句,它允许所有成员www-data
使用/var/www/html
.
第一个是更好的选择,但是如果不同的人在你的系统上从事不同的项目,我建议将不同的组作为项目组和www-data
项目所有者。
这里有一个例子,我有 3 个用户,bob、john 和 pyter。
- bob 和 john 正在从事一个名为“foo”的项目。
- bob 和 pyter 正在从事一个名为“bar”的项目。
建议的是:
sudo mkdir /var/www/html/foo
sudo mkdir /var/www/html/bar
sudo addgroup foo
sudo addgroup bar
sudo gpasswd -a bob foo
sudo gpasswd -a john foo
sudo gpasswd -a bob bar
sudo gpasswd -a pyter bar
chown foo:www-data /var/www/html/foo
chown bar:www-data /var/www/html/bar
我还强烈建议你阅读: