如何使文件对其所有者可写?

如何使文件对其所有者可写?

我是 Linux 新手,正在研究 Debian Jessie。

为什么chmod u+w不让文件所有者可写入?

我跑了:

sudo chmod u+w /var/log/myapp/gunicorn-error.log

但是现在如果我列出该文件的权限,它似乎仍然不可写:

ls -al /var/log/myapp/
total 52
drwxr-xr-x  2 opuser webapps  4096 Sep  1 11:08 .
drwxr-xr-x 10 root   root     4096 Sep  1 11:24 ..
-rw-r--r--  1 opuser webapps     0 Aug 23 07:11 gunicorn-access.log
-rw-r--r--  1 opuser webapps 38639 Sep  1 11:15 gunicorn-error.log

我究竟做错了什么?

答案1

您提供的命令和相关输出看起来不错;不太确定您认为哪里出了问题。您只需发出此命令即可chmod通过符号模式命令:

sudo chmod u+w /var/log/myapp/gunicorn-error.log

结果如下:

-rw-r--r--  1 opuser webapps 38639 Sep  1 11:15 gunicorn-error.log

从左到右

  • 第一个rw-是针对文件的用户/所有者。
  • 下一个r--表示组权限。
  • 最后r--是给他人的权限。

因此知道这一点,您chmod u+w就成功了,因为用户/所有者拥有rw-权限。

也就是说,如果您担心的是组和其他权限,则可以通过符号模式更改用户/所有者的权限不会否定现有的权限针对群组和其他权限。

如果你想为用户/所有者设置读写权限但否定该组和其他人的权限,您需要chmod使用绝对(八进制)模式设置运行,如下所示:

sudo chmod 600 /var/log/myapp/gunicorn-error.log

这将导致如下权限:

-rw-------  1 opuser webapps 38639 Sep  1 11:15 gunicorn-error.log

虽然对于大多数普通用户来说比较难记住,但绝对(八进制)模式方法的主要好处是您可以在一个命令中设置权限的多个方面。

相比之下,符号模式使设置权限更易于阅读和记忆,但您可能需要连续发出几个符号模式命令才能达到绝对(八进制)模式在一个命令中可以实现的相同最终结果。

相关内容