www-data相关:CHOWN 的这些用法有什么区别?

www-data相关:CHOWN 的这些用法有什么区别?

我的用户名是 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-datasudo 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

我还强烈建议你阅读:

我的网站文件/文件夹在 Linux 网络服务器上应该具有什么权限?

相关内容