我是 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
虽然对于大多数普通用户来说比较难记住,但绝对(八进制)模式方法的主要好处是您可以在一个命令中设置权限的多个方面。
相比之下,符号模式使设置权限更易于阅读和记忆,但您可能需要连续发出几个符号模式命令才能达到绝对(八进制)模式在一个命令中可以实现的相同最终结果。